Freigeben über


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 veranschaulicht, wie eine systemeigene iOS- oder macOS-Anwendung Benutzer anmelden und ein Zugriffstoken abrufen kann, um die Microsoft Graph-API aufzurufen.

Die Schnellstartanleitung gilt sowohl für iOS- als auch für macOS-Apps. Einige Schritte sind nur für iOS-Apps erforderlich und werden als solche angegeben.

Voraussetzungen

Funktionsweise des Beispiels

Zeigt, wie die in diesem Schnellstart generierte Beispiel-App funktioniert

Schritt 1: Konfigurieren der Anwendung

Fügen Sie einen mit dem Authentifizierungsbroker kompatiblen Umleitungs-URI hinzu, damit das Codebeispiel für diese Schnellstartanleitung funktioniert.

Bereits konfiguriert: Ihre Anwendung ist mit diesen Attributen konfiguriert.

Schritt 2: Herunterladen des Beispielprojekts

Codebeispiel für iOS- herunterladen

Codebeispiel für macOS- herunterladen

Schritt 3: Installieren von Abhängigkeiten

  1. Extrahieren Sie die ZIP-Datei.
  2. Navigieren Sie in einem Terminalfenster zum Ordner mit dem heruntergeladenen Codebeispiel, und führen Sie pod install aus, um die neueste MSAL-Bibliothek zu installieren.

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

  1. Wenn Sie eine App für Microsoft Entra national cloudserstellen, ersetzen Sie die Zeile beginnend mit "let kGraphEndpoint" und "let kAuthority" durch die richtigen Endpunkte. Verwenden Sie für den globalen Zugriff Standardwerte:

    let kGraphEndpoint = "https://graph.microsoft.com/"
    let kAuthority = "https://login.microsoftonline.com/common"
    
  2. Informationen zu anderen Endpunkten finden Sie hier. Wenn Sie beispielsweise die Schnellstartanleitung mit Microsoft Entra Deutschland ausführen möchten, verwenden Sie Folgendes:

    let kGraphEndpoint = "https://graph.microsoft.de/"
    let kAuthority = "https://login.microsoftonline.de/common"
    
  3. Öffnen Sie die Projekteinstellungen. Geben Sie im Abschnitt Identität den Bundle Identifier (Paket-ID) ein, den Sie im Portal angegeben haben.

  4. Klicken Sie mit der rechten Maustaste auf Info.plist, und wählen Sie Öffnen als>Quellcode aus.

  5. 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äfix msauth. in der Zeichenfolge.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    
  6. Erstellen und ausführen Sie die App!

Weitere Informationen

Lesen Sie diese Abschnitte, um mehr über diese Schnellstartanleitung zu erfahren.

MSAL herunterladen

MSAL (MSAL.framework) ist die Bibliothek, die zum Anmelden von Benutzern und Anfordern von Token verwendet wird, um auf eine API zuzugreifen, die von Microsoft Identity Platform geschützt ist. Sie können IHRER Anwendung MSAL mithilfe des folgenden Prozesses hinzufügen:

$ vi Podfile

Fügen Sie folgendes zu dieser Poddatei hinzu (mit dem Ziel Ihres Projekts):

use_frameworks!

target 'MSALiOS' do
   pod 'MSAL'
end

Ausführen des CocoaPods-Installationsbefehls:

pod install

MSAL initialisieren

Sie können den Verweis für MSAL hinzufügen, indem Sie den folgenden Code hinzufügen:

import MSAL

Initialisieren Sie DANN MSAL mithilfe des folgenden Codes:

let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)

let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Wo: BESCHREIBUNG
clientId Die Anwendungs-ID der in portal.azure.com registrierten Anwendung.
authority Die 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 oder den benutzerdefinierten Umleitungs-URI zu verwenden.

Nur für iOS, zusätzliche App-Anforderungen

Ihre App muss auch Folgendes in AppDelegate enthalten. Auf diese Weise kann MSAL SDK die Tokenantwort von der Auth-Broker-App verarbeiten, wenn Sie die Authentifizierung durchfü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+ UISceneDelegate anstelle von UIApplicationDelegateübernehmen, platzieren Sie diesen Code stattdessen in die scene:openURLContexts:-Rückrufmethode (siehe die Apple-Dokumentation). Wenn Sie sowohl UISceneDelegate als auch UIApplicationDelegate zur Kompatibilität mit älteren iOS-Versionen unterstützen, muss der MSAL-Callback an beiden Stellen platziert 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 App einen LSApplicationQueriesSchemes Eintrag in Ihrer Info.plist neben dem CFBundleURLTypeshaben. 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 zum Abrufen von Token: acquireToken und acquireTokenSilent.

acquireToken: Interaktives Abrufen eines Tokens

In einigen Situationen müssen Benutzer mit der 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:

  • Wenn sich Benutzer zum ersten Mal bei der Anwendung anmelden
  • Wenn ein Benutzer sein Kennwort zurücksetzt, muss er seine Anmeldeinformationen eingeben.
  • Wenn Ihre Anwendung den Zugriff auf eine Ressource zum ersten Mal anfordert
  • Wenn MFA- oder andere Richtlinien für bedingten Zugriff erforderlich sind
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Wo: BESCHREIBUNG
scopes Enthält die angeforderten Bereiche (d. a. [ "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 lautlos

Apps sollten ihre Benutzer nicht jedes Mal anmelden müssen, wenn sie ein Token anfordern. Wenn sich der Benutzer bereits angemeldet hat, ermöglicht diese Methode Apps das automatische Anfordern von Token.

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 */}
}
Wo: 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 geht es um eine einzelne Kontoanwendung. 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 richtigen accountIdentifier übergeben.

Hilfe und Support

Wenn Sie Hilfe benötigen, ein Problem melden oder mehr über Ihre Supportoptionen erfahren möchten, lesen Sie Hilfe und Support für Entwickler.

Nächste Schritte

Fahren Sie mit dem schrittweisen Lernprogramm fort, in dem Sie eine iOS- oder macOS-App erstellen, die ein Zugriffstoken von der Microsoft Identity Platform abruft und sie zum Aufrufen der Microsoft Graph-API verwendet.