Anmelden von Benutzern und Benutzerinnen und Aufrufen einer geschützten Web-API in einer iOS-Beispiel-App (Swift)
In diesem Leitfaden wird gezeigt, wie Sie eine mobile iOS-Beispielanwendung für die Anmeldung von Benutzern und Benutzerinnen konfigurieren und eine geschützte ASP.NET Core-Web-API aufrufen.
In diesem Artikel führen Sie die folgenden Aufgaben aus:
- Registrieren Sie eine Anwendung im Microsoft Entra Admin Center.
- Hinzufügen einer Plattformumleitungs-URL
- Aktivieren des öffentlichen Clientflows
- Aktualisieren Sie die Codebeispieldatei für die iOS-Konfiguration, um Ihre eigene externe Microsoft Entra ID-Instanz für Kundenmandantendetails zu verwenden.
- Ausführen und Testen der mobilen iOS-Beispielanwendung
Voraussetzungen
Ein externer Mandant. Wenn Sie noch nicht darüber verfügen, registrieren Sie sich für eine kostenlose Testversion.
Eine API-Registrierung, die mindestens einen Bereich (delegierte Berechtigungen) und eine App-Rolle (Anwendungsberechtigung) wie ToDoList.Read verfügbar macht. Falls noch nicht geschehen, befolgen Sie die Anweisungen zum Aufrufen einer API in einer mobilen iOS-Beispiel-App, um eine funktionierende geschützte ASP.NET Core-Web-API zu erhalten. Führen Sie unbedingt die folgenden Schritte aus:
- Registrieren einer Web-API-Anwendung
- Konfigurieren von API-Bereichen
- Konfigurieren von App-Rollen
- Konfigurieren optionaler Ansprüche
- Klonen oder Herunterladen der Beispiel-Web-API
- Konfigurieren und Ausführen der Beispiel-Web-API
Eine Anwendung registrieren
Damit Ihre Anwendung Benutzer mit Microsoft Entra anmelden kann, muss Microsoft Entra External ID auf die von Ihnen erstellte Anwendung aufmerksam gemacht werden. Durch die App-Registrierung wird eine Vertrauensstellung zwischen der Anwendung und Microsoft Entra eingerichtet. Wenn Sie eine Anwendung registrieren, generiert External ID einen eindeutigen Bezeichner, die Anwendungs-ID (Client). Dieser Wert wird zum Identifizieren Ihrer Anwendung beim Erstellen von Authentifizierungsanforderungen verwendet.
Die folgenden Schritte veranschaulichen, wie Sie Ihre Anwendung im Microsoft Entra Admin Center registrieren:
Melden Sie sich beim Microsoft Entra Admin Center mindestens mit der Rolle Anwendungsentwickler an.
Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Einstellungen-Symbol im oberen Menü, um über das Menü Verzeichnisse + Abonnements zu Ihrem externen Mandanten zu wechseln.
Navigieren Sie zu Identität>Anwendungen>App-Registrierungen.
Wählen Sie + Neue Registrierung aus.
Auf der Seite Anwendung registrieren die angezeigt wird.
- Geben Sie im Abschnitt Name einen aussagekräftigen Anwendungsnamen ein, der den Benutzern der Anwendung angezeigt wird (z. B. ciam-client-app).
- Wählen Sie unter Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis aus.
Wählen Sie Registrieren.
Der Bereich Übersicht der Anwendung wird bei erfolgreicher Registrierung angezeigt. Notieren Sie sich die Anwendungs-ID (Client), die im Quellcode Ihrer Anwendung verwendet werden sollen.
Hinzufügen einer Plattformumleitungs-URL
Führen Sie die folgenden Schritte aus, um den App-Typ für Ihre App-Registrierung anzugeben:
- Wählen Sie unter Verwalten die Option Authentifizierung aus.
- Wählen Sie auf der Seite Plattformkonfigurationen die Option Plattform hinzufügen und dann die Option iOS/macOS aus.
- Geben Sie die Bündel-ID Ihres Projekts ein. Wenn Sie den Beispielcode heruntergeladen haben, lautet dieser Wert
com.microsoft.identitysample.ciam.MSALiOS
. - Wählen Sie Konfigurieren aus, und speichern Sie die MSAL-Konfiguration, die im Bereich iOS/macOS-Konfiguration angezeigt wird, damit Sie diese später beim Konfigurieren Ihrer App eingeben können.
- Wählen Sie Fertig aus.
Aktivieren des öffentlichen Clientflows
Führen Sie diese Schritte aus, um Ihre App als öffentlichen Client zu identifizieren:
Wählen Sie unter Verwalten die Option Authentifizierung aus.
Wählen Sie unter Erweiterte Einstellungen für Öffentliche Clientflows zulassen die Option Ja aus.
Wählen Sie Speichern aus, um Ihre Änderungen zu speichern.
Administratoreinwilligung erteilen
Nachdem Sie die Anwendung registriert haben, wird ihr die Berechtigung User.Read zugewiesen. Da der Mandant jedoch ein externer Mandant ist, können die Kundenbenutzer selbst in diese Berechtigung einwilligen. Als Administrator müssen Sie im Namen aller Benutzer im Mandanten dieser Berechtigung zustimmen:
Wählen Sie auf der Seite App-Registrierungen die von Ihnen erstellte Anwendung (z. B. ciam-client-app) aus, um die Seite Übersicht zu öffnen.
Wählen Sie unter Verwalten die Option API-Berechtigungen.
- Wählen Sie Administratorzustimmung für <Name Ihres Mandanten> erteilen und dann Ja aus.
- Wählen Sie Aktualisieren aus, und vergewissern Sie sich, dass für die Berechtigung unter Status der Status Erteilt für <Name Ihres Mandanten> angezeigt wird.
Zuweisen von Web-API-Berechtigungen zur iOS-Beispiel-App
Nachdem Sie die Client-App und die Web-API registriert und die API durch das Erstellen von Bereichen verfügbar gemacht haben, können Sie die Berechtigungen der Client-App für die API konfigurieren, indem Sie die folgenden Schritte ausführen:
Wählen Sie auf der Seite App-Registrierungen die von Ihnen erstellte Anwendung (z. B. ciam-client-app) aus, um die Seite Übersicht zu öffnen.
Wählen Sie unter Verwalten die Option API-Berechtigungen.
Wählen Sie unter Konfigurierte Berechtigungen die Option Berechtigung hinzufügen aus.
Wählen Sie die Registerkarte Von meiner Organisation verwendete APIs aus.
Wählen Sie in der Liste der APIs die API aus, z. B. ciam-ToDoList-api.
Wählen Sie Delegierte Berechtigungen aus.
Wählen Sie in der Berechtigungsliste ToDoList.Read, ToDoList.ReadWrite aus (verwenden Sie bei Bedarf das Suchfeld).
Wählen Sie die Schaltfläche Berechtigungen hinzufügen aus.
An diesem Punkt haben Sie die Berechtigungen ordnungsgemäß zugewiesen. Da der Mandant jedoch der Mandant eines Kunden ist, können die Consumer-Benutzer selbst diesen Berechtigungen nicht zustimmen. Zum Beheben dieses Problems müssen Sie unter einem Administratorkonto im Namen aller Benutzer im Mandanten diesen Berechtigungen zustimmen:
Wählen Sie Administratorzustimmung für <Name Ihres Mandanten> erteilen und dann Ja aus.
Wählen Sie Aktualisieren aus, und vergewissern Sie sich, dass für beide Berechtigungen unter Status der Status Gewährt für <Name Ihres Mandanten> angezeigt wird.
Wählen Sie in der Liste Konfigurierte Berechtigungen die Berechtigungen ToDoList.Read und ToDoList.ReadWrite nacheinander aus, und kopieren Sie dann den vollständigen URI der Berechtigung zur späteren Verwendung. Der vollständige Berechtigungs-URI ähnelt
api://{clientId}/{ToDoList.Read}
oderapi://{clientId}/{ToDoList.ReadWrite}
.
Beispiel für das Klonen einer mobilen iOS-Anwendung
Um die Beispielanwendung zu erhalten, können Sie sie entweder von GitHub klonen oder als ZIP-Datei herunterladen.
Öffnen Sie zum Klonen des Beispiels eine Eingabeaufforderung, navigieren Sie zu der Stelle, an der Sie das Projekt erstellen möchten, und geben Sie den folgenden Befehl ein:
git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-ios-sample.git
Konfigurieren der mobilen Beispielanwendung für iOS
Um die Authentifizierung und den Zugriff auf Web-API-Ressourcen zu aktivieren, konfigurieren Sie das Beispiel anhand der folgenden Schritte:
Öffnen Sie in Xcode das Projekt, das Sie geklont haben.
Öffnen Sie die Datei /MSALiOS/Configuration.swift.
Suchen Sie den folgenden Platzhalter:
Enter_the_Application_Id_Here
, und ersetzen Sie ihn mit der Anwendungs-ID (Client-ID) der zuvor von Ihnen registrierten Anwendung.Enter_the_Redirect_URI_Here
, und ersetzen Sie sie durch den Wert von kRedirectUri in der MSAL-Konfigurationsdatei (Microsoft Authentication Library), die Sie zuvor heruntergeladen haben, als Sie die Plattformumleitungs-URL hinzugefügt haben.Enter_the_Protected_API_Full_URL_Here
, und ersetzen Sie sie durch die URL zu Ihrer Web-API. Der Wert in Enter_the_Protected_API_Full_URL_Here sollte die Basis-URL (die URL der bereitgestellten Web-API) und den Endpunkt (/api/todolist) für Ihre ASP.NET-Web-API enthalten.Enter_the_Protected_API_Scopes_Here
, und ersetzen Sie sie durch die Bereiche, die Sie in Zuweisen von Web-API-Berechtigungen zur iOS-Beispiel-App aufgezeichnet haben.Enter_the_Tenant_Subdomain_Here
, und ersetzen Sie ihn durch die Unterdomäne des Verzeichnisses (des Mandanten). Wenn Ihre primäre Mandantendomäne beispielsweisecontoso.onmicrosoft.com
lautet, verwenden Siecontoso
. Wenn Sie Ihre Mandantendomäne nicht kennen, erfahren Sie, wo Sie Ihre Mandantendetails nachlesen können.
Sie haben die App konfiguriert und können sie ausführen.
Ausführen der iOS-Beispiel-App und Aufrufen der Web-API
Führen Sie die folgenden Schritte aus, um Ihre App zu erstellen und auszuführen:
- Klicken Sie im Menü Produkt in Xcode auf Ausführen, um den Code zu erstellen und auszuführen. Nach einer erfolgreichen Erstellung startet Xcode die Beispiel-App im Simulator.
- Wählen Sie Token interaktiv abrufen aus, um ein Zugriffstoken anzufordern.
- Wählen Sie die API „GET ausführen“ aus, um die zuvor eingerichtete ASP.NET Core-Web-API aufzurufen. Ein erfolgreicher Aufruf der Web-API gibt HTTP
200
zurück, während HTTP403
einen nicht autorisierten Zugriff kennzeichnet.