Freigeben über


Konfigurieren einer mobilen App, die Web-APIs aufruft

Gilt für: Grüner Kreis mit einem weißen Häkchensymbol. Mitarbeitermieter Weißer Kreis mit einem grauen X-Symbol. Externe Mieter (weitere Informationen)

Nachdem Sie Ihre Anwendung erstellt haben, erfahren Sie, wie Sie den Code mithilfe der App-Registrierungsparameter konfigurieren. Mobile Anwendungen halten im Hinblick auf ihre Einpassung in ihr Erstellungsframework eine Reihe von Schwierigkeiten bereit.

Microsoft-Bibliotheken, die mobile Apps unterstützen

Die folgenden Microsoft-Bibliotheken unterstützen mobile Apps:

Plattform Projekt auf
GitHub
Paket Erste Schritte
gestartet
Anmelden von Benutzern Auf Web-APIs zugreifen Allgemein verfügbar (Generally Available, GA) oder
Öffentliche Vorschau1
Android (Java) MSAL Android MSAL Schnellstart Bibliothek kann ID-Token für die Benutzeranmeldung anfordern Bibliothek kann Zugriffstoken für geschützte Web-APIs anfordern GA
Android (Kotlin) MSAL Android MSAL Bibliothek kann ID-Token für die Benutzeranmeldung anfordern Bibliothek kann Zugriffstoken für geschützte Web-APIs anfordern GA
iOS (Swift/Obj-C) MSAL für iOS und macOS MSAL Tutorium Bibliothek kann ID-Token für die Benutzeranmeldung anfordern Bibliothek kann Zugriffstoken für geschützte Web-APIs anfordern GA

1Universelle Lizenzbedingungen für Onlinedienste gelten für Bibliotheken in der öffentlichen Vorschau.

Instanziierung der Anwendung

Android

Mobile Anwendungen verwenden die PublicClientApplication-Klasse. Hier sehen Sie, wie sie instanziiert wird:

PublicClientApplication sampleApp = new PublicClientApplication(
                    this.getApplicationContext(),
                    R.raw.auth_config);

Ios

Mobile Anwendungen unter iOS müssen die MSALPublicClientApplication-Klasse instanziieren. Verwenden Sie zum Instanziieren der Klasse den folgenden Code.

NSError *msalError = nil;

MSALPublicClientApplicationConfig *config = [[MSALPublicClientApplicationConfig alloc] initWithClientId:@"<your-client-id-here>"];
MSALPublicClientApplication *application = [[MSALPublicClientApplication alloc] initWithConfiguration:config error:&msalError];
let config = MSALPublicClientApplicationConfig(clientId: "<your-client-id-here>")
if let application = try? MSALPublicClientApplication(configuration: config){ /* Use application */}

Zusätzliche MSALPublicClientApplicationConfig-Eigenschaften können die Standardautorität überschreiben, einen Umleitungs-URI angeben oder das Verhalten der MSAL-Tokenzwischenspeicherung ändern.

UWP (Universelle Windows-Plattform)

In diesem Abschnitt wird erläutert, wie Sie die Anwendung für UWP-Apps instanziieren.

Instanziierung der Anwendung

In UWP wird die einfachste Methode zum Instanziieren der Anwendung mithilfe des folgenden Codes verwendet. In diesem Code ist ClientId die GUID der registrierten App.

var app = PublicClientApplicationBuilder.Create(clientId)
                                        .Build();

Mithilfe zusätzlicher With<Parameter>-Methoden werden die übergeordnete Benutzeroberfläche festgelegt, die Standardautorität außer Kraft gesetzt, ein Clientname und eine Version für die Telemetrie angegeben, ein Umleitungs-URI sowie die zu verwendende HTTP-Factory angegeben. Die HTTP-Factory kann beispielsweise für das Behandeln von Proxys und das Angeben von Telemetrie und Protokollierung verwendet werden.

In den folgenden Abschnitten finden Sie weitere Informationen zum Instanziieren der Anwendung.

Angeben der übergeordneten Benutzeroberfläche, des übergeordneten Fensters oder der übergeordneten Aktivität

Unter Android müssen Sie vor der interaktiven Authentifizierung die übergeordnete Aktivität übergeben. Wenn Sie unter iOS einen Broker verwenden, müssen Sie ViewController übergeben. Auf dieselbe Weise möchten Sie möglicherweise auf der UWP das übergeordnete Fenster übergeben. Sie übergeben es beim Abrufen des Tokens. Sie können aber beim Erstellen der App auch einen Rückruf als Delegat festlegen, der UIParent zurückgibt.

IPublicClientApplication application = PublicClientApplicationBuilder.Create(clientId)
  .ParentActivityOrWindowFunc(() => parentUi)
  .Build();

Unter Android empfehlen wir, CurrentActivityPlugin zu verwenden. Der resultierende Code des PublicClientApplication-Generators sieht wie in diesem Beispiel aus:

// Requires MSAL.NET 4.2 or above
var pca = PublicClientApplicationBuilder
  .Create("<your-client-id-here>")
  .WithParentActivityOrWindow(() => CrossCurrentActivity.Current)
  .Build();
Suchen weiterer Parameter für die App-Erstellung

Eine Liste aller Methoden, die in PublicClientApplicationBuilder verfügbar sind, finden Sie in der Methodenliste.

Eine Beschreibung aller Optionen, die in PublicClientApplicationOptions verfügbar gemacht werden, finden Sie in der Referenzdokumentation.

Aufgaben für MSAL für iOS und macOS

Diese Aufgaben sind erforderlich, wenn Sie MSAL für iOS und macOS verwenden:

Aufgaben für UWP

Auf der UWP können Sie Unternehmensnetzwerke verwenden. In den folgenden Abschnitten werden die Aufgaben erläutert, die Sie im Unternehmensszenario ausführen sollten.

Weitere Informationen finden Sie unter Für UWP spezifische Überlegungen mit MSAL.NET.

Konfigurieren der Anwendung für die Verwendung des Brokers

Unter Android und iOS ermöglichen Broker Folgendes:

  • Einmaliges Anmelden (Single Sign-On, SSO): Sie können SSO für Geräte verwenden, die mit Microsoft Entra ID registriert sind. Wenn Sie SSO verwenden, müssen sich Ihre Benutzer nicht bei jeder Anwendung anmelden.
  • Geräteidentifikation: Diese Einstellung ermöglicht bedingte Zugriffsrichtlinien im Zusammenhang mit Microsoft Entra-Geräten. Der Authentifizierungsprozess verwendet das Gerätezertifikat, das beim Hinzufügen des Geräts zum Arbeitsplatz erstellt wurde.
  • Überprüfung der Anwendungsidentifikation: Wenn eine Anwendung den Broker aufruft, übergibt sie ihre Umleitungs-URL. Diese wird dann vom Broker überprüft.

Aktivieren des Brokers für MSAL für Android

Informationen zum Aktivieren eines Brokers unter Android finden Sie unter Brokerauthentifizierung in Android.

Aktivieren des Brokers für MSAL für iOS und macOS

Brokerauthentifizierung ist standardmäßig für Microsoft Entra-Szenarien in MSAL für iOS und macOS aktiviert.

In den folgenden Abschnitten finden Sie Anweisungen zum Konfigurieren Ihrer Anwendung für die Unterstützung der brokerierten Authentifizierung für iOS und macOS. Einige der Schritte in den beiden Anweisungslisten unterscheiden sich.

Brokerauthentifizierung für MSAL für iOS und macOS

Brokerauthentifizierung ist für Microsoft Entra-Szenarien standardmäßig aktiviert.

Schritt 1: Aktualisieren von AppDelegate zum Verarbeiten des Rückrufs

Wenn MSAL für iOS und macOS den Broker aufruft, führt der Broker einen Rückruf Ihrer Anwendung mithilfe der openURL-Methode aus. Da MSAL auf die Antwort vom Broker wartet, muss Ihre Anwendung kooperieren, um MSAL zurückzurufen. Sie richten diese Funktionalität durch Aktualisieren der Datei AppDelegate.m zum Überschreiben der Methode ein, wie aus den folgenden Codebeispielen zu ersehen.

- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
    return [MSALPublicClientApplication handleMSALResponse:url
                                         sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
}
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {

        guard let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String else {
            return false
        }

        return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: sourceApplication)
    }

Wenn Sie UISceneDelegate unter iOS 13 oder höher eingeführt haben, platzieren Sie den MSAL-Rückruf stattdessen in den scene:openURLContexts: von UISceneDelegate. MSAL handleMSALResponse:sourceApplication: darf für jede URL nur ein Mal aufgerufen werden.

Weitere Informationen finden Sie in der Apple-Dokumentation.

Schritt 2: Registrieren eines URL-Schemas

MSAL für iOS und macOS verwendet URLs, um den Broker aufzurufen und die Brokerantwort dann an Ihre App zurückzugeben. Um den Roundtrip abzuschließen, registrieren Sie in der Datei Info.plist ein URL-Schema für Ihre App.

So registrieren Sie ein Schema für Ihre App:

  1. Stellen Sie dem benutzerdefinierten URL-Schema msauth als Präfix voran.

  2. Fügen Sie Ihren Paketbezeichner am Ende Ihres Schemas hinzu. Folgen Sie diesem Muster:

    $"msauth.(BundleId)"

    Hier identifiziert BundleId Ihr Gerät eindeutig. Wenn BundleId z. B. yourcompany.xforms ist, lautet Ihr URL-Schema msauth.com.yourcompany.xforms.

    Dieses URL-Schema wird Teil des Umleitungs-URI, der Ihre App eindeutig identifiziert, wenn er die Antwort des Brokers empfängt. Stellen Sie sicher, dass der Umleitungs-URI im Format msauth.(BundleId)://auth für Ihre Anwendung registriert ist.

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>msauth.[BUNDLE_ID]</string>
            </array>
        </dict>
    </array>
    

Schritt 3: Hinzufügen von LSApplicationQueriesSchemes

Fügen Sie LSApplicationQueriesSchemes hinzu, um Aufrufe an die Microsoft Authenticator-App zuzulassen, wenn sie installiert ist.

Hinweis

Das msauthv3-Schema wird benötigt, wenn Ihre App mithilfe von Xcode 11 und höher kompiliert wird.

Hier sehen Sie ein Beispiel für das Hinzufügen von LSApplicationQueriesSchemes:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>msauthv2</string>
  <string>msauthv3</string>
</array>

Nächste Schritte

Fahren Sie mit dem nächsten Artikel in diesem Szenario fort: Abrufen eines Tokens.