Authentifizierung und Autorisierung in Azure App Service für mobile Apps
Anmerkung
Dieses Produkt wird eingestellt. Eine Ersetzung für Projekte mit .NET 8 oder höher finden Sie in der Community Toolkit Datasync-Bibliothek.
In diesem Artikel wird beschrieben, wie die Authentifizierung und Autorisierung beim Entwickeln nativer mobiler Apps mit einem App Service-Back-End funktioniert. Der App-Dienst bietet integrierte Authentifizierung und Autorisierung, sodass Ihre mobilen Apps Benutzer anmelden können, ohne code in App Service zu ändern. Es bietet eine einfache Möglichkeit, Ihre Anwendung zu schützen und mit Benutzerdaten zu arbeiten.
Warnung
Dieser Artikel behandelt v4.2.0 des Azure Mobile Apps Client SDK. Die aktuelle Version verwendet einen neuen Authentifizierungsmechanismus und unterstützt die Azure App Service-Authentifizierung & Autorisierung nicht auf die gleiche Weise.
Informationen dazu, wie Authentifizierung und Autorisierung in App Service funktionieren, finden Sie unter Authentifizierung und Autorisierung in Azure App Service.
Authentifizierung mit Anbieter-SDK
Nachdem alles in App Service konfiguriert wurde, können Sie mobile Clients so ändern, dass sie sich mit App Service anmelden. Hier gibt es zwei Ansätze:
- Verwenden Sie ein SDK, das ein bestimmter Identitätsanbieter veröffentlicht, um eine Identität herzustellen und dann Zugriff auf App Service zu erhalten.
- Verwenden Sie eine einzelne Codezeile, damit das Client-SDK für mobile Apps Benutzer anmelden kann.
Trinkgeld
Die meisten Anwendungen sollten ein Anbieter-SDK verwenden, um eine konsistentere Benutzererfahrung zu erzielen, wenn Benutzer sich anmelden, die Unterstützung für die Tokenaktualisierung zu verwenden und weitere Vorteile zu erhalten, die der Anbieter angibt.
Wenn Sie ein Anbieter-SDK verwenden, können sich Benutzer bei einer Benutzeroberfläche anmelden, die enger in das Betriebssystem integriert wird, auf dem die App ausgeführt wird. Diese Methode bietet Ihnen auch ein Anbietertoken und einige Benutzerinformationen auf dem Client, wodurch es viel einfacher ist, Graph-APIs zu nutzen und die Benutzeroberfläche anzupassen. Diese Methode wird als "Clientfluss" oder "clientgesteuerter Fluss" bezeichnet, da code auf dem Client Benutzer anmeldet.
Nachdem ein Anbietertoken abgerufen wurde, muss es zur Überprüfung an den App-Dienst gesendet werden. Azure App Service überprüft das Token. Der Dienst erstellt dann ein neues Token für den Client. Das Client-SDK für mobile Apps verfügt über Hilfsmethoden zum Verwalten dieses Austauschs und fügt das Token automatisch an alle Anforderungen an das Back-End der Anwendung an. Sie können auch einen Verweis auf das Anbietertoken beibehalten.
Anmerkung
Einige Plattformen, z. B. Windows (WPF), funktionieren NUR mit einem clientgesteuerten Fluss. Andere funktionieren gleichermaßen gut mit Server- und Clientablauf. Wenn die Plattform nur mit clientgesteuertem Fluss funktioniert, zeigt das Schnellstarthandbuch dies.
Weitere Informationen zum Authentifizierungsfluss finden Sie unter App Service-Authentifizierungsfluss.
Authentifizierung ohne Anbieter-SDK
Wenn Sie kein Anbieter-SDK einrichten möchten, können Sie den Azure App Service die Anmeldung für Sie zulassen. Das Azure Mobile Apps-Client-SDK öffnet eine Webansicht für den Anbieter Ihrer Wahl, und melden Sie sich beim Benutzer an. Diese Methode wird als "Serverfluss" oder "servergesteuerter Fluss" bezeichnet, da der Server den Prozess verwaltet, der sich bei Benutzern anmeldet. Das Client-SDK empfängt nie das Anbietertoken.
Senden eines Tokens aus dem clientgesteuerten Fluss
Wenn Sie den clientgesteuerten Fluss verwenden, rufen Sie zuerst die relevanten Informationen ab, die Azure App Service zum Überprüfen des Tokens benötigt. In den meisten Fällen ist das Token ein Zugriffstoken. Weitere Informationen finden Sie in der Dokumentation zu Azure App Service.
Anschließend können Sie das entsprechende JSON-Objekt erstellen. Wenn Sie z. B. MSAL zum Ausführen eines clientgesteuerten Flusses in .NET in einer WPF-Anwendung verwenden, können Sie den folgenden Code verwenden:
var requestBody = new JObject(new JProperty("access_token", authResult.AccessToken));
var userInfo = await mobileClient.login("aad", requestBody);
Der Anforderungstext muss den Erwartungen entsprechen, wie in der Dokumentation.