Udostępnij przez


Konfigurowanie aplikacji mobilnej wywołującej internetowe interfejsy API

Dotyczy: Zielony okrąg z białym symbolem znacznika wyboru, który wskazuje, że poniższa zawartość dotyczy najemców zatrudnienia. Najemcy zatrudnienia (dowiedz się więcej)

Po utworzeniu aplikacji dowiesz się, jak skonfigurować kod przy użyciu parametrów rejestracji aplikacji. Aplikacje mobilne stanowią pewną dodatkową złożoność związaną z dopasowaniem do ich ram tworzenia.

Wymagania wstępne

  • Konto Azure z aktywną subskrypcją. Utwórz konto bezpłatnie. To konto musi mieć uprawnienia do zarządzania aplikacjami. Aby zarejestrować aplikację, użyj dowolnej z następujących ról:
    • Administrator Aplikacji
    • Deweloper aplikacji
  • Zarejestruj nową aplikację w centrum administracyjnym usługi Microsoft Entra, skonfigurowaną tylko dla kont w tym katalogu organizacyjnym. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji . Zapisz następujące wartości na stronie Przegląd aplikacji do późniejszego użycia:
    • Identyfikator aplikacji (klienta)
    • Identyfikator katalogu (klienta)

Dodaj identyfikator URI przekierowania platformy

Aby określić typ aplikacji do rejestracji aplikacji, wykonaj następujące kroki:

  1. W obszarze Zarządzajwybierz pozycję Uwierzytelnianie>Dodaj platformę>iOS/macOS.
  2. Wprowadź identyfikator pakietu, a następnie wybierz pozycję Konfiguruj. Identyfikator URI przekierowania jest obliczany dla Ciebie.

Jeśli wolisz ręcznie skonfigurować identyfikator URI przekierowania, możesz to zrobić za pośrednictwem manifestu aplikacji. Oto zalecany format manifestu:

  • Urządzenia z systemem iOS:msauth.<BUNDLE_ID>://auth
    • Na przykład wprowadź msauth.com.yourcompany.appName://auth
  • Urządzenia z systemem Android: msauth://<PACKAGE_NAME>/<SIGNATURE_HASH>
    • Skrót podpisu systemu Android można wygenerować przy użyciu klucza wydania lub klucza debugowania za pomocą polecenia KeyTool.

Włącz publiczny przepływ klienta

Jeśli aplikacja używa tylko uwierzytelniania typu username-password, nie musisz rejestrować identyfikatora URI przekierowania dla aplikacji. Ten przepływ wykonuje zaokrąglenie do Platforma tożsamości Microsoft. Aplikacja nie zostanie wywołana ponownie dla żadnego konkretnego URI. Należy jednak włączyć przepływ klienta publicznego.

Aby zidentyfikować aplikację jako klienta publicznego, wykonaj następujące kroki:

  1. W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.

  2. W Ustawieniach Zaawansowanych dla opcji Zezwalaj na przepływy klientów publicznych wybierz opcję Tak.

  3. Wybierz Zapisz, aby zapisać zmiany.

Biblioteki firmy Microsoft obsługujące aplikacje mobilne

Następujące biblioteki firmy Microsoft obsługują aplikacje mobilne:

Platforma Projekt na temat
GitHub
Pakiet Uzyskiwanie
rozpoczęto
Logowanie użytkowników Dostęp do interfejsów API sieci Web Ogólnie dostępne (GA - ogólna dostępność) lub
Publiczna wersja zapoznawcza1
Android (Java) MSAL Android MSAL Szybki start Biblioteka może żądać tokenów identyfikatorów logowania użytkownika. Biblioteka może żądać tokenów dostępu dla chronionych internetowych interfejsów API. ogólna dostępność
Android (Kotlin) MSAL Android MSAL Biblioteka może żądać tokenów identyfikatorów logowania użytkownika. Biblioteka może żądać tokenów dostępu dla chronionych internetowych interfejsów API. ogólna dostępność
iOS (Swift/Obj-C) MSAL dla systemów iOS i macOS MSAL Samouczek Biblioteka może żądać tokenów identyfikatorów logowania użytkownika. Biblioteka może żądać tokenów dostępu dla chronionych internetowych interfejsów API. ogólna dostępność

1Uniwersalne postanowienia licencyjne dotyczące usług online mają zastosowanie do bibliotek w publicznej wersji zapoznawczej.

Tworzenie instancji aplikacji

Android

Aplikacje mobilne używają PublicClientApplication klasy . Oto, jak je zainicjować:

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

iOS

Aplikacje mobilne w systemie iOS muszą utworzyć instancję klasy MSALPublicClientApplication. Aby stworzyć wystąpienie klasy, użyj następującego kodu.

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

Dodatkowe właściwości MSALPublicClientApplicationConfig mogą zastąpić domyślny autorytet, określić URI przekierowania lub zmienić zachowanie buforowania tokenów MSAL.

platforma UWP

W tej sekcji wyjaśniono, jak zainicjować aplikację dla aplikacji platformy UWP.

Tworzenie instancji aplikacji

W systemie UWP najprostszym sposobem utworzenia wystąpienia aplikacji jest użycie następującego kodu. W tym kodzie ClientId jest identyfikatorem GUID twojej zarejestrowanej aplikacji.

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

Dodatkowe With<Parameter> metody ustawiają element nadrzędny UI, przesłaniają domyślny autorytet, określają nazwę klienta i wersję w telemetrii, określają identyfikator URI przekierowania oraz fabrykę HTTP do użycia. Fabryka HTTP może służyć na przykład do obsługi serwerów proxy i określania telemetrii i rejestrowania.

Poniższe sekcje zawierają więcej informacji na temat inicjalizacji aplikacji.

Określanie nadrzędnego interfejsu użytkownika, okna lub działania

W systemie Android przekaż macierzystą aktywność przed wykonaniem uwierzytelniania interaktywnego. W systemie iOS, gdy używasz brokera, przekaż parametr ViewController. W ten sam sposób w systemie UWP możesz przekazać okno nadrzędne. Przekazujesz go podczas uzyskiwania tokenu. Jednak podczas tworzenia aplikacji można również określić wywołanie zwrotne jako delegat, który zwraca wartość UIParent.

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

W systemie Android zalecamy użycie polecenia CurrentActivityPlugin. Wynikowy PublicClientApplication kod konstruktora wygląda następująco:

// Requires MSAL.NET 4.2 or above
var pca = PublicClientApplicationBuilder
  .Create("<your-client-id-here>")
  .WithParentActivityOrWindow(() => CrossCurrentActivity.Current)
  .Build();
Znajdowanie dodatkowych parametrów tworzenia aplikacji

Aby uzyskać listę wszystkich metod dostępnych w PublicClientApplicationBuilder, zobacz listę metod.

Opis wszystkich opcji uwidocznionych w programie można znaleźć w PublicClientApplicationOptionsdokumentacji referencyjnej.

Zadania dla MSAL dla systemów iOS i macOS

Te zadania są niezbędne w przypadku korzystania z biblioteki MSAL dla systemów iOS i macOS:

Zadania dla platformy UWP

W systemie UWP można używać sieci firmowych. W poniższych sekcjach opisano zadania, które należy wykonać w scenariuszu firmowym.

Aby uzyskać więcej informacji, zobacz Zagadnienia specyficzne dla UWP dotyczące MSAL.NET.

Konfigurowanie aplikacji do korzystania z brokera

W systemach Android i iOS brokerzy włączają:

  • Logowanie jednokrotne (SSO): możesz użyć logowania jednokrotnego dla urządzeń zarejestrowanych w usłudze Microsoft Entra ID. W przypadku korzystania z logowania jednokrotnego użytkownicy nie muszą logować się do każdej aplikacji.
  • Identyfikacja urządzenia: to ustawienie umożliwia zasady dostępu warunkowego powiązane z urządzeniami firmy Microsoft Entra. Proces uwierzytelniania używa certyfikatu urządzenia utworzonego podczas dołączania urządzenia do miejsca pracy.
  • Weryfikacja identyfikacji aplikacji: gdy aplikacja wywołuje brokera, przekazuje adres URL przekierowania. Następnie broker weryfikuje go.

Włącz brokera dla MSAL dla systemu Android

Aby uzyskać informacje na temat włączania brokera w systemie Android, zobacz Brokered authentication on Android (Uwierzytelnianie obsługiwane przez brokera w systemie Android).

Włącz brokera dla MSAL dla iOS i macOS

Uwierzytelnianie obsługiwane przez brokera jest domyślnie włączone dla scenariuszy firmy Microsoft Entra w usłudze MSAL dla systemów iOS i macOS.

Poniższe sekcje zawierają instrukcje dotyczące konfigurowania aplikacji na potrzeby obsługi uwierzytelniania obsługiwanego przez brokera dla systemów iOS i macOS. W dwóch zestawach instrukcji niektóre kroki różnią się.

Uwierzytelnianie przez brokera dla MSAL na iOS i macOS

Uwierzytelnianie pośredniczone jest domyślnie włączone dla scenariuszy Microsoft Entra.

Krok 1: Zaktualizuj AppDelegate, aby obsługiwać wywołanie zwrotne

Gdy biblioteka MSAL dla systemów iOS i macOS wywołuje brokera, broker wywołuje aplikację, używając metody openURL. Ponieważ biblioteka MSAL czeka na odpowiedź przez brokera, aplikacja musi współpracować, aby wykonywać wywołania zwrotne do MSAL. Skonfiguruj tę funkcję, aktualizując AppDelegate.m plik w celu zastąpienia metody, jak pokazano w poniższych przykładach kodu.

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

Jeśli zastosowano UISceneDelegate w systemie iOS 13 lub nowszym, należy umieścić wywołanie zwrotne biblioteki MSAL w scene:openURLContexts: z UISceneDelegate zamiast tego. Funkcja MSAL handleMSALResponse:sourceApplication: musi być wywołana tylko raz dla każdego adresu URL.

Aby uzyskać więcej informacji, zobacz dokumentację firmy Apple.

Krok 2. Rejestrowanie schematu adresów URL

Biblioteka MSAL dla systemów iOS i macOS używa adresów URL do wywoływania brokera, a następnie zwraca odpowiedź brokera do aplikacji. Aby zakończyć podróż w obie strony, zarejestruj schemat adresów URL dla swojej aplikacji w pliku Info.plist.

Aby zarejestrować schemat dla aplikacji:

  1. Dodaj jako prefiks niestandardowy schemat URL z msauth.

  2. Dodaj identyfikator pakietu na końcu schematu. Postępuj zgodnie z tym wzorcem:

    $"msauth.(BundleId)"

    W tym miejscu, BundleId jednoznacznie identyfikuje Twoje urządzenie. Jeśli na przykład BundleId to yourcompany.xforms, schemat adresu URL to msauth.com.yourcompany.xforms.

    Ten schemat adresów URL stanie się częścią identyfikatora URI przekierowania, który jednoznacznie identyfikuje aplikację po odebraniu odpowiedzi brokera. Upewnij się, że identyfikator URI przekierowania w formacie msauth.(BundleId)://auth jest zarejestrowany dla Twojej aplikacji.

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

Krok 3. Dodawanie LSApplicationQueriesSchemes

Dodaj LSApplicationQueriesSchemes , aby zezwolić na wywołania aplikacji Microsoft Authenticator, jeśli jest zainstalowana.

Uwaga

Schemat msauthv3 jest wymagany, gdy aplikacja jest kompilowana przy użyciu środowiska Xcode 11 lub nowszego.

Oto przykład dodawania LSApplicationQueriesSchemeselementu :

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

Następne kroki

Przejdź do następnego artykułu w tym scenariuszu Uzyskiwanie tokenu.