WCF LiveID Authentication einer Windows 8 Store App – Teil 1

12. Dezember 2012

div class=”articleAbstract”>Hiermit startet eine kleine Artikelserie in der gezeigt wird, wie ein Windows Live authentifizierter Benutzer aus einer Windows 8 Store App einen abgesicherten Service aufrufen kann. In überschaubaren Schritten werden die Windows Store App und der Azure WCF Service implementiert und konfiguriert.

Teil 1 – Übersicht über Technologien und Portale

Das Anwendungsbeispiel geht von dem gebräuchlichen Szenario aus, dass der Benutzer mit einem Live-Account angemeldet ist und der Service nur als angemeldeter Live-Benutzer aufgerufen werden darf. Der WCF-Service stellt dabei sicher, dass es sich um eine gültige Live-Anmeldung handelt. In einem optionalen Schritt wird der Service in Windows Azure gehostet.
Im Endausbau sieht die Anwendungslandschaft wie folgt aus:
 
image

Überblick zur Artikelserie

Teil 1 gibt eine Übersicht über die eingesetzten Technologien und Portale
Teil 2 beschäftigt sich mit der Erzeugung und Konfiguration der Windows 8 Store App mit Live Anmeldung
Teil 3 erzeugt den WCF Service und sichert diesen über SSL ab
Teil 4 autorisiert den angemeldeten Live-Benutzer an den WCF Services
Teil 5 hosted den Service in Windows Azure

Anforderung

Die Aufgabenstellung ist wie folgt definiert:

  • Eine Windows Store App wird mit C# entwickelt. Sie greift auf WCF Services über eine abzusichernde Verbindung zu.
  • Der Anwender authentifiziert sich bei Windows Live. Die Anmeldung dient zugleich als Autorisierung für die WCF Services.

Die zu entwickelnde Lösung besteht nicht nur aus einem einfachen Stück Software in Form von Webservices und Executables, sondern zusätzlich auch aus einem Set an Konfigurationen, die in den entsprechenden Portalen “Windows Live”, “Windows App Store” und “Windows Azure” hinterlegt werden müssen.

Die Beispielanwendung

Ausgangspunkt des Szenarios bildet eine kleine Windows 8 Store App. Diese bietet dem Benutzer die Möglichkeit sich bei Windows Live anzumelden und einen WCF Service aufzurufen. In der Endausbaustufe sieht dies wie folgt aus:
image
Folgende Controls sind zu sehen:

  • „Sign in“: Das SignInButton Control aus dem Live SDK. Dieses zeigt einen Dialog zur Anmeldung bei Windows Live an.
  • „Login AuthClient“: Ein Standard-Button, der im Code-Behind die Live Anmeldung über das AuthClient-Control des Live SDK durchführt.
  • „Logout AuthClient“: Ein Standard-Button, der im Code-Behind die Abmeldung ausführt.
  • „AuthToken“: Anzeige des AuthenticationToken eines Login-Versuchs
  • „AccessToken“: Anzeige des AccessToken eines Login-Versuchs
  • „Call WCF“: Aufruf des WCF Services mit Ergebnisanzeige

Der Anwender kann sich entweder mit „Sign in“ oder alternativ mit „Login AuthClient“ an Windows Live anmelden. Das Ergebnis der Anmeldung wird in den Feldern AuthToken und AccessToken angezeigt. Im Anschluss kann der WCF-Service aufgerufen werden, dessen Ergebnis im Textfeld angezeigt wird.

Windows Store App

Die Client-Anwendung wird als Windows 8 Store App entwickelt. Wie der Name schon sagt, ist dieser Anwendungstyp dafür vorgesehen aus dem Windows App Store geladen zu werden. Store Apps basieren auf WinRT und laufen in einem eigenen Security-Kontext.
Die Bereitstellung der Anwendung kann neben dem App Store alternativ über die Entwicklungsumgebung bereitgestellt werden oder über Side-Loading im Enterprise Umfeld direkt auf die Geräte verteilt werden.
Ein guter Einstiegspunkt für die Entwicklung von Windows Store Apps ist das Windows Store Dev Center. Die Anwendungen – auch zur Entwicklung – müssen im App Store registriert werden, damit sie im Tab „Dashboard“ verwaltet werden können.
Entwicklung von Windows Store Apps:
http://msdn.microsoft.com/en-us/library/windows/apps/br229519.aspx
Dashboard zur Verwaltung von Windows Store Apps:
https://appdev.microsoft.com/StorePortals/en-us

Windows Live

Windows Live stellt die Benutzeranmeldung für die Windows Store App zur Verfügung d.h. die Anwendung selber bekommt keinen Zugriff auf Benutzernamen und Passwort. Eine Windows Store App ist per se in der Live Umgebung sichtbar, so dass sich die Integration sehr leicht gestaltet. Trotzdem müssen auch im Live Portal einige Eintragungen vorgenommen werden.
Entwicklung mit Live Connect
http://msdn.microsoft.com/en-us/live/ff519582.aspx
Management der Anwendungen
https://manage.dev.live.com

Windows Azure

In einem optionalen Schritt wird der Service in Windows Azure gehostet. Für die „Miete“ des Rechners sind eine entsprechende Anmeldung und Hinterlegung der Kreditkarte notwendig.
Entwicklung von Windows Azure Anwendungen
http://www.windowsazure.com/en-us/develop/overview/
Management der Windows Azure Services
https://manage.windowsazure.com/

Voraussetzungen

Anhand der eingesetzten Technologien ergeben sich folgende Entwicklungsvoraussetzungen:

Viel Spaß mit der Serie