Schnellstart: Anmelden von Benutzern und Aufrufen der Microsoft Graph-API aus einer iOS- oder macOS-App
Willkommen! Dies ist wahrscheinlich nicht die Seite, die Sie erwartet haben. Während wir an einer Korrektur arbeiten, sollten Sie über diesen Link zum richtigen Artikel gelangen:
Schnellstart: Anmelden von Benutzern und Aufrufen von Microsoft Graph aus einer iOS- oder macOS-App
Wir entschuldigen uns für die Unannehmlichkeiten und bitten Sie um Geduld, während wir an einer Lösung arbeiten.
In dieser Schnellstartanleitung laden Sie ein Codebeispiel herunter und führen es aus, das zeigt, wie eine native iOS- oder macOS-Anwendung Benutzer anmelden und ein Zugriffstoken abrufen kann, um die Microsoft Graph-API aufzurufen.
Die Schnellstartanleitung gilt für iOS- und macOS-Apps. Einige Schritte sind nur für iOS-Apps erforderlich und entsprechend gekennzeichnet.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- XCode 10 oder höher
- iOS 10 oder höher
- macOS 10.12 oder höher
Funktionsweise des Beispiels
Schritt 1: Konfigurieren der Anwendung
Fügen Sie einen mit dem Authentifizierungsbroker kompatiblen Umleitungs-URI hinzu, damit das Codebeispiel für diese Schnellstartanleitung funktioniert.
Ihre Anwendung ist mit diesen Attributen konfiguriert.
Schritt 2: Herunterladen des Beispielprojekts
Schritt 3: Installieren von Abhängigkeiten
- Extrahieren Sie die ZIP-Datei.
- Navigieren Sie in einem Terminalfenster zu dem Ordner, der das heruntergeladene Codebeispiel enthält, und führen Sie
pod install
zum Installieren der MSAL-Bibliothek aus.
Schritt 4: Ihre App ist konfiguriert und betriebsbereit
Wir haben das Projekt mit Werten Ihrer App-Eigenschaften konfiguriert. Es ist nun ausführungsbereit.
Hinweis
Enter_the_Supported_Account_Info_Here
Wenn Sie eine App für nationale Microsoft Entra-Clouds erstellen, ersetzen Sie die Zeile, die mit „let kGraphEndpoint“ und „let kAuthority“ beginnt, durch die richtigen Endpunkte. Verwenden Sie für globalen Zugriff die Standardwerte:
let kGraphEndpoint = "https://graph.microsoft.com/" let kAuthority = "https://login.microsoftonline.com/common"
Informationen zu anderen Endpunkten finden Sie hier. Verwenden Sie beispielsweise zum Ausführen der Schnellstartanleitung mit Microsoft Entra Deutschland Folgendes:
let kGraphEndpoint = "https://graph.microsoft.de/" let kAuthority = "https://login.microsoftonline.de/common"
Öffnen Sie die Projekteinstellungen. Geben Sie im Abschnitt Identität den Wert für Bundle Identifier (Paket-ID) ein, den Sie im Portal angegeben haben.
Klicken Sie mit der rechten Maustaste auf Info.plist, und wählen Sie Öffnen als>Quellcode aus.
Ersetzen Sie unter dem Stammknoten „dict“
Enter_the_bundle_Id_Here
durch den Wert für *Bündel-ID_, den Sie im Portal verwendet haben. Beachten Sie das Präfixmsauth.
in der Zeichenfolge.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>
Erstellen Sie die App, und führen Sie sie aus.
Weitere Informationen
Lesen Sie diese Abschnitte, um mehr über diesen Schnellstart zu erfahren.
Abrufen von MSAL
MSAL (MSAL.framework) ist die Bibliothek zum Anmelden von Benutzern und zum Anfordern von Token, die für den Zugriff auf eine durch Microsoft Identity Platform geschützte API verwendet werden. Sie können Ihrer Anwendung MSAL mithilfe des folgenden Vorgangs hinzufügen:
$ vi Podfile
Fügen Sie der Podfile-Datei den folgenden Code (mit dem Ziel Ihres Projekts) hinzu:
use_frameworks!
target 'MSALiOS' do
pod 'MSAL'
end
Ausführen des CocoaPods-Installationsbefehls:
pod install
MSAL initialisieren
Sie können den Verweis auf MSAL hinzufügen, indem Sie den folgenden Code hinzufügen:
import MSAL
Initialisieren Sie MSAL anschließend mit dem folgenden Code:
let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)
let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Hierbei gilt: BESCHREIBUNG clientId
Die Anwendungs-ID der in portal.azure.com registrierten Anwendung. authority
Microsoft Identity Platform. In den meisten Fällen ist dies https://login.microsoftonline.com/common
>.redirectUri
Der Umleitungs-URI der Anwendung. Sie können „nil“ übergeben, um den Standardwert zu verwenden, oder Ihren benutzerdefinierten Umleitungs-URI angeben.
Nur iOS: zusätzliche App-Anforderungen
Ihre App muss auch Folgendes in AppDelegate
enthalten. Dadurch kann das MSAL SDK die Tokenantwort der Authentifizierungsbroker-App verarbeiten, wenn Sie die Authentifizierung ausführen.
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
Hinweis
Wenn Sie unter iOS 13 oder höher UISceneDelegate
anstelle von UIApplicationDelegate
übernehmen, platzieren Sie diesen Code stattdessen im scene:openURLContexts:
-Rückruf (siehe Dokumentation von Apple).
Wenn Sie sowohl UISceneDelegate als auch UIApplicationDelegate für die Kompatibilität mit älteren iOS-Versionen unterstützen, muss der MSAL-Rückruf für beide Optionen zur Verfügung gestellt werden.
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let urlContext = URLContexts.first else {
return
}
let url = urlContext.url
let sourceApp = urlContext.options.sourceApplication
MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: sourceApp)
}
Schließlich muss Ihre Anwendung einen LSApplicationQueriesSchemes
Eintrag in Ihrer Info.plist neben dem CFBundleURLTypes
haben. Im Beispiel ist dies enthalten.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Anmelden von Benutzern und Anfordern von Token
MSAL verfügt über zwei Methoden, die zum Abrufen von Token verwendet werden: acquireToken
und acquireTokenSilent
.
acquireToken: Interaktives Abrufen eines Tokens
In einigen Situationen müssen Benutzer mit Microsoft Identity Platform interagieren. In diesen Fällen muss der Endbenutzer möglicherweise sein Konto auswählen, seine Anmeldeinformationen eingeben oder den Berechtigungen Ihrer App zustimmen. Beispiel:
- Erstmaliges Anmelden von Benutzern bei der Anwendung.
- Wenn ein Benutzer sein Kennwort zurücksetzt, muss er seine Anmeldeinformationen eingeben.
- Wenn Ihre Anwendung zum ersten Mal Zugriff auf eine Ressource anfordert
- Wenn MFA oder andere Richtlinien für bedingten Zugriff erforderlich sind
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParamaters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Hierbei gilt: BESCHREIBUNG scopes
Enthält die angeforderten Bereiche (d. h. [ "user.read" ]
für Microsoft Graph oder[ "<Application ID URL>/scope" ]
für benutzerdefinierte Web-APIs (api://<Application ID>/access_as_user
))
acquireTokenSilent: Abrufen eines Zugriffstokens im Hintergrund
Apps sollten nicht verlangen, dass sich die Benutzer jedes Mal anmelden, wenn sie ein Token anfordern. Wenn sich der Benutzer bereits angemeldet hat, haben Apps durch diese Methode die Möglichkeit, Token im Hintergrund anzufordern.
self.applicationContext!.getCurrentAccount(with: nil) { (currentAccount, previousAccount, error) in
guard let account = currentAccount else {
return
}
let silentParams = MSALSilentTokenParameters(scopes: self.kScopes, account: account)
self.applicationContext!.acquireTokenSilent(with: silentParams) { (result, error) in /* Add your handling logic */}
}
Hierbei gilt: BESCHREIBUNG scopes
Enthält die angeforderten Bereiche ( [ "user.read" ]
für Microsoft Graph oder[ "<Application ID URL>/scope" ]
für benutzerdefinierte Web-APIs (api://<Application ID>/access_as_user
))account
Das Konto, für das ein Token angefordert wird. In dieser Schnellstartanleitung wird eine einzelne Kontoanwendung angezeigt. Wenn Sie eine App mit mehreren Konten erstellen möchten, müssen Sie die Logik zum Identifizieren des gewünschten Kontos für Tokenanforderungen mit accountsFromDeviceForParameters:completionBlock:
definieren und den richtigenaccountIdentifier
übergeben.
Hilfe und Support
Wenn Sie Hilfe benötigen, ein Problem melden möchten oder sich über Ihre Supportoptionen informieren möchten, finden Sie weitere Informationen unter Hilfe und Support für Entwickler.
Nächste Schritte
Fahren Sie mit dem Schritt-für-Schritt-Tutorial fort, in dem Sie eine iOS- oder macOS-App erstellen, aus der ein Zugriffstoken von der Microsoft Identity Platform abgerufen wird, das dann in der App verwendet wird, um die Microsoft Graph-API aufzurufen.