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
    Microsoft Account Login via ASP.NET Identity

    Der Microsoft Account ist die zentrale Identifikationsstelle in der “Consumer-Microsoft-Welt”, allerdings ist das Einbinden eben dieser in die eigene Applikation eher schwierig. Das “Live SDK” ist nun unter dem OneDrive Dev Center zu finden und ganz professionell wurden auch alle Links zum alten Live SDK damit unbrauchbar gemacht. Beim Microsoft Account ist es auch unmöglich […]

  • image.png
    Zeitgesteuerte Azure WebJobs – so einfach kann Azure sein

    Das noch in Entwicklung befindliche Azure WebJob SDK bietet einige coole Features zum Verarbeiten und Bereitstellen von Daten. Bekanntes Beispiel ist das Sample welches auf eine Azure Queue lauscht und sobald ein Item da vorhanden ist anfängt dies zu verarbeiten. Szenario: Zeitgesteuerte Aktivitäten – ohne Queue und co. Mein Szenario war allerdings wesentlich trivialer: Ich […]

  • image.png
    Get Involved in OSS! Ja, aber wie geht das denn mit GitHub?

    Auch im .NET Lager gibt es Bewegung im OSS Bereich und es gibt verschiedene Arten wie man bei einem Open Source Projekt “Contributed”. Was zählt alles zu “Contribution”? Unter “Contribution” läuft eigentlich alles – ob es Fragen/Probleme zu dem Projekt via Issues ist oder Dokumentation nachreicht oder ob man darüber bloggt oder das Projekt vorstellt. […]

  • HowTo: Web.config samt eigener ConfigSection zur Laufzeit ändern

    In dem HowTo geht es darum wie man die Web.config zur Laufzeit ändert und was es dabei zu beachten gilt. Das ganze klappt auch mit komplexeren ConfigSections. Eigene ConfigSection? Vor einer ganzen Weile habe ich mal über das Erstellen einer eigenen ConfigSection geschrieben – im Grunde nutzen wir jetzt fast dieselbe Config. Zur Laufzeit? Startet […]

  • image.png
    HowTo: RSS Feeds mit ASP.NET MVC erstellen

    Ich hatte hier schon öfters geschrieben wie man RSS oder Atom Feeds konsumieren kann – jetzt geht es aber mal um das erstellen bzw. publishen eines eigenen Feeds. Trotz des Alters von den Feed Standards und die vielen Abgesänge von Facebook, Twitter und Google auf RSS/Atom halte ich diese einfach zu konsumierende API für ziemlich […]

Support us!