Dela via


Konfigurera en mobilapp som anropar webb-API:er

Gäller för: Grön cirkel med en vit bockmarkeringssymbol som anger att följande innehåll gäller för personalklienter. Personalklienter (läs mer)

När du har skapat ditt program får du lära dig hur du konfigurerar koden med hjälp av appregistreringsparametrarna. Mobila program har vissa extra komplexiteter som rör anpassning till deras ramverk för skapande.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt. Det här kontot måste ha behörighet att hantera program. Använd någon av följande roller som behövs för att registrera programmet:
    • Appadministratör
    • Programutvecklare
  • Registrera en ny app i administrationscentret för Microsoft Entra, som endast konfigurerats för konton i den här organisationskatalogen. Mer information finns i Registrera ett program . Registrera följande värden från programöversiktssidan för senare användning:
    • App-ID (klient-ID)
    • Katalog-ID (hyresgäst)

Lägga till en plattformsomdirigerings-URI

Följ dessa steg om du vill ange din apptyp för din appregistrering:

  1. Under Hanteraväljer du -autentisering>Lägg till en plattform>iOS/macOS-.
  2. Ange ditt paket-ID och välj sedan Konfigurera. Omdirigerings-URI:n beräknas åt dig.

Om du föredrar att manuellt konfigurera omdirigerings-URI:n kan du göra det via programmanifestet. Här är det rekommenderade formatet för manifestet:

  • iOS-enheter: msauth.<BUNDLE_ID>://auth
    • Ange till exempel msauth.com.yourcompany.appName://auth
  • Android: msauth://<PACKAGE_NAME>/<SIGNATURE_HASH>
    • Du kan generera Android-signaturens hash med hjälp av versionsnyckeln eller felsökningsnyckeln via kommandot KeyTool.

Aktivera offentligt klientflöde

Om din app endast använder autentisering med användarnamn och lösenord behöver du inte registrera en omdirigerings-URI för ditt program. Det här flödet gör en tur och retur till Microsofts identitetsplattform. Din applikation kommer inte att återkallas på någon specifik URI. Men du bör aktivera det offentliga klientflödet.

Följ dessa steg för att identifiera din app som en offentlig klient:

  1. Under Hantera väljer du Autentisering.

  2. Under Avancerade inställningar väljer du Ja för Tillåt offentliga klientflöden.

  3. Välj Spara för att spara dina ändringar.

Microsoft-bibliotek som stöder mobilappar

Följande Microsoft-bibliotek stöder mobilappar:

Plattform Projekt om
GitHub
Paket Att få
komma igång
Logga in användare Åtkomst till webb-API:er Allmänt tillgänglig (GA) eller
Offentlig förhandsversion1
Android (Java) MSAL Android MSAL (på engelska) Snabbstart Biblioteket kan begära ID-token för användarinloggning. Biblioteket kan begära åtkomsttoken för skyddade webb-API:er. GA
Android (Kotlin) MSAL Android MSAL (på engelska) Biblioteket kan begära ID-token för användarinloggning. Biblioteket kan begära åtkomsttoken för skyddade webb-API:er. GA
iOS (Swift/Obj-C) MSAL för iOS och macOS MSAL (på engelska) Handledning Biblioteket kan begära ID-token för användarinloggning. Biblioteket kan begära åtkomsttoken för skyddade webb-API:er. GA

1Universella licensvillkor för onlinetjänster gäller för bibliotek i offentlig förhandsversion.

Instansiera applikationen

Android

Mobila program använder PublicClientApplication klassen . Så här instansierar du det:

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

Ios

Mobilprogram i iOS måste instansiera MSALPublicClientApplication klassen. Om du vill instansiera klassen använder du följande kod.

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 */}

Ytterligare MSALPublicClientApplicationConfig-egenskaper kan åsidosätta standardauktoritet, ange en omdirigerings-URI eller ändra beteendet för cachning av MSAL-token.

Universal Windows-plattform (UWP)

I det här avsnittet beskrivs hur du instansierar programmet för UWP-appar.

Instansiera applikationen

I UWP är det enklaste sättet att instansiera programmet med hjälp av följande kod. I den här koden ClientId är GUID för din registrerade app.

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

Ytterligare With<Parameter> metoder ställer in UI-förälder, åsidosätter standardauktoritet, specificerar ett klientnamn och en version för telemetri, anger en omdirigerings-URI och specificerar den HTTP-fabrik som ska användas. HTTP-fabriken kan till exempel användas för att hantera proxyservrar och för att ange telemetri och loggning.

Följande avsnitt innehåller mer information om instansiering av programmet.

Ange det överordnade användargränssnittet, fönstret eller aktiviteten

På Android skickar du den överordnade aktiviteten innan du utför den interaktiva autentiseringen. På iOS, när du använder en mäklare, skickar du in ViewController. På samma sätt i UWP kanske du vill skicka in det överordnade fönstret. Du skickar in den när du skaffar token. Men när du skapar appen kan du också ange ett återanrop som en delegat som returnerar UIParent.

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

På Android rekommenderar vi att du använder CurrentActivityPlugin. Den resulterande PublicClientApplication builder-koden ser ut som i det här exemplet:

// Requires MSAL.NET 4.2 or above
var pca = PublicClientApplicationBuilder
  .Create("<your-client-id-here>")
  .WithParentActivityOrWindow(() => CrossCurrentActivity.Current)
  .Build();
Hitta fler appbyggparametrar

En lista över alla metoder som är tillgängliga på PublicClientApplicationBuilderfinns i listan Metoder.

En beskrivning av alla alternativ som visas i PublicClientApplicationOptions finns i referensdokumentationen.

Uppgifter för MSAL för iOS och macOS

Dessa uppgifter är nödvändiga när du använder MSAL för iOS och macOS:

Uppgifter för UWP

På UWP kan du använda företagsnätverk. I följande avsnitt beskrivs de uppgifter som du bör utföra i företagsscenariot.

Mer information finns i UWP-specifika överväganden med MSAL.NET.

Konfigurera programmet för att använda broker

På Android och iOS aktiverar mäklare:

  • Enkel inloggning (SSO): Du kan använda enkel inloggning för enheter som är registrerade med Microsoft Entra-ID. När du använder enkel inloggning behöver användarna inte logga in på varje program.
  • Enhetsidentifiering: Den här inställningen aktiverar principer för villkorlig åtkomst som är relaterade till Microsoft Entra-enheter. Autentiseringsprocessen använder enhetscertifikatet som skapades när enheten anslöts till arbetsplatsen.
  • Verifiering av applikationsidentifiering: När ett program anropar mäklaren, skickar det sin omdirigerings-URL. Sedan verifierar mäklaren det.

Aktivera broker för MSAL för Android

Information om hur du aktiverar en broker på Android finns i Asynkron autentisering på Android.

Aktivera broker för MSAL för iOS och macOS

Asynkron autentisering är aktiverat som standard för Microsoft Entra-scenarier i MSAL för iOS och macOS.

Följande avsnitt innehåller instruktioner för hur du konfigurerar programmet för stöd för asynkron autentisering för iOS och macOS. I de två uppsättningarna med instruktioner skiljer sig vissa steg åt.

Förmedlad autentisering för MSAL för iOS och macOS

Mäklad autentisering är aktiverat som standard för Microsoft Entra-scenarier.

Steg 1: Uppdatera AppDelegate för att hantera återanropet

När MSAL för iOS och macOS anropar mäklaren, anropar mäklaren tillbaka till ditt program genom openURL metoden. Eftersom MSAL väntar på svar från en mellanhand behöver ditt program samarbeta för att anropa MSAL. Konfigurera den här funktionen genom att uppdatera AppDelegate.m filen för att åsidosätta metoden, som följande kodexempel visar.

- (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)
    }

Om du har antagit UISceneDelegate i iOS 13 eller senare, placera då MSAL-återanropet i scene:openURLContexts: av UISceneDelegate i stället. MSAL handleMSALResponse:sourceApplication: får bara anropas en gång för varje URL.

Mer information finns i Apple-dokumentationen.

Steg 2: Registrera ett URL-schema

MSAL för iOS och macOS använder URL:er för att anropa brokern och sedan returnera broker-svaret till din app. Slutför rundturen genom att registrera ett URL-schema för din app i Info.plist filen.

Så här registrerar du ett schema för din app:

  1. Prefixa ditt anpassade URL-schema med msauth.

  2. Lägg till paketidentifieraren i slutet av schemat. Följ det här mönstret:

    $"msauth.(BundleId)"

    Här identifierar BundleId enheten som unik. Till exempel, om BundleId är yourcompany.xforms, är ditt URL-schema msauth.com.yourcompany.xforms.

    Det här URL-schemat blir en del av omdirigerings-URI:n som unikt identifierar din app när den tar emot koordinatorns svar. Kontrollera att omdirigerings-URI:n i formatet msauth.(BundleId)://auth är registrerad för ditt program.

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

Steg 3: Lägg till LSApplicationQueriesSchemes

Lägg till LSApplicationQueriesSchemes för att tillåta anrop till Microsoft Authenticator-appen om den är installerad.

Anteckning

Schemat msauthv3 behövs när appen kompileras med Xcode 11 och senare.

Här är ett exempel på hur du lägger LSApplicationQueriesSchemestill :

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

Nästa steg

Gå vidare till nästa artikel i det här scenariot, Hämta en token.