Schnellstart: Herstellen einer Verbindung mit einem Online-Identitätsanbieter (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

In diesem Thema wird erläutert, wie Sie Ihre Windows Store-App mit einem Online-Identitätsanbieter verbinden, der Internetauthentifizierungs- und Autorisierungsprotokolle wie OpenID oder OAuth verwendet.

Windows Store-Apps verwenden den Webauthentifizierungsbroker, um eine Verbindung mit Online-Identitätsanbietern herzustellen. Eine App ruft die AuthenticateAsync-Methode auf, die eine Anforderung an einen Online-Identitätsanbieter sendet, und erhält als Antwort ein Zugriffstoken, das die für die App zugänglichen Anbieterressourcen beschreibt. Ein vollständiges Beispiel finden Sie unter Beispiel für einen Webauthentifizierungsbroker. Weitere Informationen zum Webauthentifizierungsbroker finden Sie unter Webauthentifizierungsbroker. Referenzdokumentation finden Sie unter Windows.Security.Authentication.Web.

Lesen Sie im Anschluss an dieses Thema Folgendes:

Voraussetzungen

  • Sie sollten mit JavaScript vertraut sein.
  • Die Authentifizierungsanforderungen Ihres Online-Identitätsanbieters sollten Ihnen bekannt sein.

Registrieren der App beim Onlineanbieter

Sie müssen Ihre App bei dem Online-Identitätsanbieter registrieren, mit dem Sie eine Verbindung herstellen möchten. Informationen zur Registrierung erhalten Sie vom Identitätsanbieter. Nach der Registrierung wird Ihnen in der Regel vom Onlineanbieter eine ID für Ihre App zugewiesen.

Erstellen des Authentifizierungsanforderungs-URIs

Der Anforderungs-URI besteht aus der Adresse, unter der Sie die Authentifizierungsanforderung an den Onlineanbieter senden, und angefügten anderen benötigten Informationen, z. B. eine App-ID oder ein Schlüssel, ein Umleitungs-URI, zu dem der Benutzer nach Abschluss der Authentifizierung umgeleitet wird, und der erwartete Antworttyp. Informationen zu den erforderlichen Parametern erhalten Sie von Ihrem Anbieter.

Der Anforderungs-URI wird als requestUri-Parameter der authenticateAsync-Methode gesendet. Es muss sich dabei um eine sichere Adresse (beginnend mit "https://") handeln.

Das folgende Beispiel zeigt, wie der Anforderungs-URI erstellt wird.


        var startURL = "https://<providerendpoint>?client_id=<clientid>&scope=<scopes>&response_type=token"; 

        var startURI = new Windows.Foundation.Uri(startURL);

Herstellen einer Verbindung mit dem Onlineanbieter

Um eine Verbindung mit dem Online-Identitätsanbieter herzustellen und ein Zugriffstoken abzurufen, rufen Sie die authenticateAsync-Methode auf. Für die Methode wird der im vorhergehenden Schritt erstellte URI als requestUri-Parameter und ein URI, zu dem der Benutzer umgeleitet werden soll, als callbackUri-Parameter angegeben.

Das folgende Beispiel zeigt, wie Sie eine Verbindung mit einem Online-Identitätsanbieter herstellen.

authzInProgress = true; 
        Windows.Security.Authentication.Web.WebAuthenticationBroker.authenticateAsync( 
            Windows.Security.Authentication.Web.WebAuthenticationOptions.none, startURI,endURI) 
            .done(function (result) { 
                document.getElementById("AnyServiceReturnedToken").value = result.responseData; 
                document.getElementById("AnyServiceDebugArea").value += "Status returned by WebAuth broker: " + result.responseStatus + "\r\n"; 
                if (result.responseStatus === Windows.Security.Authentication.Web.WebAuthenticationStatus.errorHttp) { 
                    document.getElementById("AnyServiceDebugArea").value += "Error returned: " + result.responseErrorDetail + "\r\n"; 
                } 
                authzInProgress = false; 
            }, function (err) { 
                WinJS.log("Error returned by WebAuth broker: " + err, "Web Authentication SDK Sample", "error");         
                document.getElementById("AnyServiceDebugArea").value += " Error Message: " + err.message + "\r\n"; 
                authzInProgress = false; 
            }); 

Herstellen einer Verbindung mit einmaligem Anmelden (Single Sign On, SSO)

Der Webauthentifizierungsbroker lässt das Beibehalten von Cookies standardmäßig nicht zu. Daher muss sich der App-Benutzer jedes Mal anmelden, wenn er auf Ressourcen für diesen Anbieter zugreifen möchte – auch wenn er angibt, dass er angemeldet bleiben möchte (z. B. durch Aktivieren eines Kontrollkästchens im Anmeldedialogfeld des Anbieters). Um die Anmeldung mit SSO durchführen zu können, muss der Online-Identitätsanbieter SSO für den Webauthentifizierungsbroker aktiviert haben, und Ihre App muss die Überladung von authenticateAsync aufrufen, für die kein callbackUri-Parameter angegeben wird.

Zur Unterstützung von SSO muss der Onlineanbieter die Registrierung eines Umleitungs-URIs im Format ms-app://appSID zulassen (appSID ist die SID für Ihre App). Die SID Ihrer App finden Sie auf der Windows Store-Entwicklerseite Ihrer App. Sie können auch die getCurrentApplicationCallbackUri-Methode aufrufen, um die SID festzustellen.

Das folgende Beispiel zeigt, wie Sie mit SSO eine Verbindung mit einem Online-Identitätsanbieter herstellen.

var redirectURL = Windows.Security.Authentication.Web.WebAuthenticationBroker.getCurrentApplicationCallbackUri().absoluteUri;
        var startURL = "https://<providerendpoint>?client_id=<clientid>&redirect_uri=" + encodeURIComponent(redirectURL) + "&scope=<scopes>&response_type=token"; 

        var startURI = new Windows.Foundation.Uri(startURL); 

        Windows.Security.Authentication.Web.WebAuthenticationBroker.authenticateAsync( 
            Windows.Security.Authentication.Web.WebAuthenticationOptions.none, startURI) 
            .done(function (result) { 
                if (result.responseStatus === Windows.Security.Authentication.Web.WebAuthenticationStatus.errorHttp) { 
                    document.getElementById("FacebookDebugArea").value += "Error returned: " + result.responseErrorDetail + "\r\n"; 
                } 

                // Parse out the OAuth token from result.responseData 

            }, function (err) { 
                WinJS.log("Error returned by WebAuth broker: " + err, "Web Authentication SDK Sample", "error"); 
            });

Anzeigen einer Vorschau des authentifizierten App-Zustands in Blend

Wenn Sie Ihre App zur Laufzeit mithilfe von authenitcateUserAsync authentifizieren, können Sie dieselben Anmeldeinformationen zum Zugreifen auf den authentifizierten Zustand Ihrer App in Blend für Microsoft Visual Studio 2013 verwenden. Das bedeutet, dass Sie eine authentifizierte Version Ihrer App öffnen, Änderungen an der Darstellung vornehmen und dann eine Vorschau der soeben vorgenommenen Änderungen anzeigen können, ohne Blend zu verlassen.

  1. Aktivieren Sie in Blend im Bereich Gerät in der Kategorie Entwurfszeit die Option Authentifizierung.Bereich "Gerät" in Blend
  2. Drücken Sie F5, um Ihre App zu erstellen und auszuführen.
  3. Melden Sie sich mit Ihren Anmeldeinformationen bei Ihrer App an.
  4. Rufen Sie Blend erneut auf, und laden Sie Ihre App neu.
  5. Wechseln Sie zurück in die bereitgestellte App, und drücken Sie ALT+F4, um sie zu schließen. Hinweis  Es kann jeweils nur eine Instanz der App-Paketidentität ausgeführt werden. Da die authentifizierte Ansicht der App in Blend dieselbe Paketidentität wie die bereitgestellte Version Ihrer App verwendet, kann Ihre App nicht gleichzeitig im Hintergrund und in Blend ausgeführt werden.  
  6. Rufen Sie Blend erneut auf, und setzen Sie Ihre Arbeit fort.

Zusammenfassung

In diesem Thema haben Sie erfahren, wie Sie mit und ohne SSO eine Verbindung mit einem Online-Identitätsanbieter herstellen.

Verwandte Themen

Entwickeln von Windows Store-Apps

Beispiel für einen Webauthentifizierungsbroker

Webauthentifizierungsbroker

Windows.Security.Authentication.Web