HowTo: Windows Live ID Web Authentication (Grundlagen & Installation)

Jeder der schonmal irgendein Microsoft Dienst genutzt hat, hat entweder mit dem (“gescheiterten”) Passport oder der Windows Live ID schon zu tun gehabt.
Mir persönlich gefällt es nicht, dass ich mich bei jedem Dienst immer eine neues Passwort merken muss – warum bindet man denn zum Beispiel nicht den Windows Live ID Dienst mit in seine eigene Website ein?

image 

Erstmal ein Wort der Warnung:

SingleSignOn Dienste wie zum Beispiel Windows Live ID sind immer wieder in der Kritik unsicher & datenschutztechnisch bedenklich zu sein. Angenommen viele Websiten würden sich nur auf den Windows Live ID Dienst als Anmeldeverfahren speziallisieren, dann gäbe es das Problem, dass Microsoft die Profile der Nutzer quasi immer weiter ausbauen könnte. Datenschutztechnisch nicht gerade so toll.
Auf der anderen Seite muss man nur ein Sicherheitsloch bei Microsofts Windows Live ID finden und man würde viele Websiten aushebeln – Sicherheitstechnisch auch nicht gerade super.

Ich persönliche würde es so angehen wenn ich eine ernsthafte Anwendung entwickeln würde: Die Windows Live ID zu nutzen finde ich praktisch, allerdings würde ich dem Nutzer die Wahl stellen ob er sich mit Windows Live ID anmeldet oder über einen eigenes Anmeldesystem. OpenID wäre auch mal ein Blick wert.
Windows Live ID vorauszusetzen wäre etwas frech, aber als Feature einen Blick wert – daher der Blogeintrag.

Fangen wir jetzt mal an was man alles dazu braucht, um die Windows Live ID zu nutzen:

 

SDK von Windows Live ID herunterladen

Auf der MSDN Seite findet man allgemeine Informationen zum Web Autentication SDK. Das direkte SDK kann man direkt bei Microsoft Download runterladen. Dabei gibt es das SDK nicht nur für Microsofts hauseigenes ASP.NET, sondern auch für:

- Java
- PHP
- Phyton
- Ruby
- Perl

(wie gut oder schlecht diese Beispiele sind, möchte ich hier jetzt nicht sagen)

Achtung: Die MSI läuft auf nicht-englischen Windows Versionen nicht durch und bricht ab, Grund: Der Installer sucht nach zwei Benutzergruppen, welche in der englischen vorhanden sind, aber in der deutschen nicht: Power Users & Users. D.h. damit der Installer durchläuft einfach die beiden Gruppen anlegen.

 

Windows Live ID Applikation anmelden

Um den Windows Live ID Dienst zu nutzen, muss man sich auf dieser Website registrieren. Hier ist der Vorgang kurz beschrieben.

 

Überblick über die Datein des SDKS (ASP.NET Implementation)

(Ich hab die Ordnerstruktur leicht geändert – Original liegen die ASPX Seiten in einem “Sample” Ordner, den hab ich einfachheitshalber entfernt und die Datein direkt ins Root Verzeichnis verschoben)

image

Wichtigste Datei ist die “WindowsLiveLogin.cs” welche die Kernarbeit übernimmt.
Im Überblick habe ich mir diese Datei mal angesehen, allerdings kann man diese so als gegeben betrachten.

Datei: Default.aspx

Die Default.aspx ist für die Anzeige des “Sign In” / “Sign Out” verantwortlich und bindet dazu ein ÍFrame ein:

image

In der “src” wird als Parameter noch eine Schriftart/größe etc. mitgegeben, damit man den Sign In / Sign Out entsprechend noch formatieren kann – es gibt bestimmt auch Bilder die man einblenden kann. Außerdem hängt man dort noch seine AppID dran – das sieht man aber gut in der SDK Datei.

Im Codebehinde wird geprüft ob das Logincookie schon abgelegt wurde, wenn nicht ist man nicht angemeldet.

Die “Zugangsdaten” stehen dabei in der Web.Config:

image 
(aus dem SDK)

Datei: webauth-handler.aspx

Diese legt das Cookie an oder löscht es und dient als ReturnURL für den Windows Live ID Dienst. Im Anschluss leitet die Seite an die Default.aspx weiter.

In dem Schaubild hab ich mal den Datenfluss zusammengestellt:

image 
(Ich brauch unbedingt Visio daheim)

 

Anwendung des ganzen

Ich hab die SDK Datein mal online gestellt, damit jeder sehen kann, was der Seitenbetreiber nach dem Anmelden eigentlich sieht:
Eine eindeutige User ID zum Weiterverarbeiten.

Hier die Demoseite zum Anschauen. 

Wichtige Links im Überblick:

- Windows Live ID Anmeldung
- Windows Live ID Blog
- Windows Live ID MSDN Seite
- Windows Live Application ID
- Windows Live ID Web Authentication SDK Download
- Windows Live ID Web Authentication Sample Demopage

Letzte Posts

  • image.png
    RavenHQ–RavenDB in der Cloud

    Ayende Rahien hat es heute verkündet – RavenHQ, der RavenDB Cloud Hoster (natürlich von und mit Ayende) ist ab heute raus aus der Beta und man kann es von überall aus nutzen. In der Betaphase waren nur Nutzer von AppHarbor zugelassen. Was ist RavenHQ? RavenHQ ist im Grunde ein gehostes RavenDB in den Rechenzentren von ...

  • image.png
    GitHub for Windows–erste Eindrücke

    Git ist schon eine tolle Sachen und eröffnet viele neue Möglichkeiten – allerdings ist der Einstieg recht hart und selbst wenn man die guten Hilfsanleitungen auf GitHub befolgt, kommt man am Anfang nur langsam vorwärt. Insbesondere ist das Tooling für Windows / .NET Entwickler auch nicht gerade “bekanntes Terrain”. GitHub to the rescue! Die GitHub ...

  • image.png
    Chocolatey–apt-get für Windows

    Durch Zufall bin ich auf das Tool “Chocolatey” gestoßen. Wer die Website sich anschaut, wird evtl. eine Verwandschaft mit NuGet ausmachen. Was macht Chocolatey? Chocolatey ist ein “Maschine Package Manager”, das bedeutet, dass man für seine Maschine einfach Tools runterladen und Updaten kann – direkt über die Konsole. Was ist der Unterschied zu NuGet? NuGet ...

  • image.png
    SASS, LESS & Coffeescript in Visual Studio mit der Web Workbench

    CSS und Javascript sind die “kleinste” Schnittmenge von allen Browsern für die Erstellung von Web-Applikationen. Leider geht dabei etwas komfort verloren, daher lieben alle Webentwickler jQuery! SASS und LESS sind zwei Varianten, wie man “schöner” CSS schreiben kann und Coffeescript versucht Javascript Entwicklung zu vereinfachen. Aber immer der Reihe nach… Was ist SASS? SASS steht ...

  • image.png
    Code-Inside Sample nun auf GitHub: Google Code zu GitHub Migration

    Seit einiger Zeit habe ich Beispielcode auf Google Code bereitgestellt. Einfach nur noch weg von Google Code O-Ton damals war: Ich hatte mich für Google Code entschieden, weil ich hoffe dass früher oder später die Google Code Suche nutzbar ist und es dadurch wenigstens ein kleiner Mehrwert entsteht. Allerdings wirft es momentan noch ein Fehler. ...

Support us!