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
    IIS & Windows Authentication – Troubleshooting mit Negotiate & NTLM

    Windows Authentifizierung ist eine einfache (und naheliegende) Authentifizierungs-Option für “Haus-interne” Webapplikationen. Setup Im IIS selbst kann man die Windows Authentifzierung sehr leicht anschalten: Natürlich kann man dies auch über die web.config steuern: <system.web> ... <authentication mode="Windows"/> ... </system.web> ... Fehlermeldung “HTTP Error 401.2 – Unauthorized”: Dies kann (wie fast immer) viele Gründe haben, z.B. weil ...

  • image.png
    Json-Online-Tools: Viewer & Json2Csharp Generator

    Wo APIs im Spiel sind, ist das JSON Format nicht weit. Da ich immer mal wieder zwei Tools benutze, möchte ich diese hier auch mal kurz würdigen. JSON Viewer Wer nur den JSON-Text vor sich hat sieht meist die Struktur nicht. Über JSON Viewer kann man sich recht einfach einen Überblick verschaffen: [URL] JSON2CSharp Der ...

  • image.png
    Tools & Vorgehen für Entwicklung rund um OpenXml oder wie erstelle ich Office Dokumente mit .NET?

    Durch meine Tätigkeit bei der  OneOffixx AG habe ich recht tiefe Einblicke in die Erstellung von Microsoft Office Dokumente mit .NET bekommen. Da das Problem “Office Dokumente per Code” zu erstellen recht verbreitet ist, schreib ich mal Empfehlungen für die ersten Schritte. Must Have Tools Ganz klar sollte man das Office in der jeweiligen Version ...

  • image.png
    Windows Phone SDK- & “System”-Icons

    Zwar legt das Metro Design viel Wert auf Typografie – jedoch sind auch Icons sehr wichtig. Wer das Windows Phone SDK installiert hat, bekommt 36 Icons mitgeliefert. Diese sind unter diesem Pfad zu finden: C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Icons Viele Icons, welche man von den eingebauten Anwendungen kennt, sind allerdings nicht enthalten. Pedro Lamas hat ...

  • image.png
    Wie finde ich heraus ob mein ADFS 2.0 funktioniert?

    Ich hatte mich recht lange mti dem Thema ADFS 2.0 (“Active Directory Federation Services”) beschäftigt und da kam die recht einfache Frage auf: Wie stelle ich fest ob die Verbindung zwischen ADFS und AD “funktioniert”? Hier eine simple Variante es zu testen… Was ist ein ADFS überhaupt? Wenn man über AD-Grenzen hinweg “Vertrauensstellungen” braucht, dann ...

Support us!