Udostępnij za pośrednictwem


Samouczek: konfigurowanie aplikacji systemu Android w celu logowania użytkowników przy użyciu platformy tożsamości firmy Microsoft

Dotyczy: Zielony okrąg z białym symbolem znacznika wyboru. Dzierżawcy siły roboczej Zielony okrąg z białym symbolem znacznika wyboru. Dzierżawcy zewnętrzni (dowiedz się więcej)

W tym samouczku do aplikacji systemu Android dodasz bibliotekę Microsoft Authentication Library (MSAL) dla systemu Android. MSAL umożliwia aplikacjom Android uwierzytelnianie użytkowników za pomocą Microsoft Entra.

W tym samouczku nauczysz się:

  • Dodaj zależność MSAL
  • Dodawanie konfiguracji
  • Tworzenie wystąpienia MSAL SDK

Wymagania wstępne

  • Najemca zasobów pracowniczych. Możesz użyć swojego katalogu domyślnego lub skonfigurować nowego najemcę.
  • 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)
  • Projekt systemu Android. Jeśli nie masz projektu systemu Android, utwórz go.

Dodaj identyfikator URI przekierowania

Aby zapewnić zgodność z pobranym przykładem kodu, należy skonfigurować określone identyfikatory URI przekierowania w rejestracji aplikacji. Te identyfikatory URI są niezbędne do przekierowywania użytkowników z powrotem do aplikacji po pomyślnym zalogowaniu.

  1. W obszarze Zarządzanie wybierz Uwierzytelnianie>Dodaj platformę>Android.

  2. Wprowadź nazwę pakietu projektu na podstawie przykładowego typu pobranego powyżej.

    • Przykład języka Java — com.azuresamples.msalandroidapp
    • Przykład Kotlin — com.azuresamples.msalandroidkotlinapp
  3. W sekcji Skrót podpisu w okienku Konfigurowanie aplikacji Android wybierz pozycję Generowanie skrótu sygnatury programistycznej. i skopiuj polecenie KeyTool do wiersza poleceń.

  4. Wprowadź skrót sygnatury wygenerowany przez narzędzie KeyTool.

  5. Wybierz pozycję Konfiguruj i zapisz konfigurację biblioteki MSAL wyświetlaną w okienku konfiguracji systemu Android, aby można było wprowadzić ją podczas konfigurowania aplikacji później.

  6. Wybierz pozycję Gotowe.

Dodaj zależność MSAL i odpowiednie biblioteki do projektu

Aby dodać zależności biblioteki MSAL w projekcie systemu Android, wykonaj następujące kroki:

  1. Otwórz projekt w programie Android Studio lub utwórz nowy projekt.

  2. Otwórz w aplikacji element build.gradle i dodaj następujące zależności:

    allprojects {
    repositories {
        //Needed for com.microsoft.device.display:display-mask library
        maven {
            url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
            name 'Duo-SDK-Feed'
        }
        mavenCentral()
        google()
        }
    }
    //...
    
    dependencies { 
        implementation 'com.microsoft.identity.client:msal:5.+'
        //...
    }
    

    build.gradle W konfiguracji repozytoria są definiowane dla zależności projektu. Zawiera on adres URL repozytorium Maven dla com.microsoft.device.display:display-mask biblioteki z usługi Azure DevOps. Ponadto korzysta z repozytoriów Maven Central i Google. Sekcja zależności określa implementację biblioteki MSAL w wersji 5 i potencjalnie innych zależności.

  3. W programie Android Studio wybierz File>Sync Project with Gradle Files.

Dodawanie konfiguracji

Wymagane identyfikatory dzierżawcy, takie jak identyfikator aplikacji (klienta), są przekazywane do zestawu MSAL SDK za pomocą ustawienia konfiguracji JSON.

Wykonaj następujące kroki, aby utworzyć plik konfiguracji:

  1. W okienku projektu programu Android Studio przejdź do app\src\main\res.

  2. Kliknij prawym przyciskiem myszy pozycję res i wybierz Nowy>katalog. Wprowadź raw jako nazwę nowego katalogu i wybierz przycisk OK.

  3. W app>src>main>res>raw utwórz nowy plik JSON o nazwie auth_config_single_account.json i wklej zapisaną wcześniej konfigurację MSAL.

    Poniżej adresu URI przekierowania wklej:

      "account_mode" : "SINGLE",
    

    Plik konfiguracji powinien wyglądać podobnie do tego przykładu:

    {
      "client_id": "00001111-aaaa-bbbb-3333-cccc4444",
      "authorization_user_agent": "WEBVIEW",
      "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D",
      "broker_redirect_uri_registered": true,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    

    W tym samouczku pokazano tylko, jak skonfigurować aplikację w trybie pojedynczego konta; aby uzyskać więcej informacji, zobacz tryb pojedynczego konta vs wielokontowy oraz konfigurowanie aplikacji.

  4. Zalecamy użycie „WEBVIEW”. Jeśli chcesz skonfigurować "authorization_user_agent" jako "PRZEGLĄDARKA" w aplikacji, musisz wprowadzić następujące aktualizacje. a) Zaktualizuj auth_config_single_account.json, ustawiając "authorization_user_agent": "Przeglądarka". b) Zaktualizuj plik AndroidManifest.xml. W aplikacji przejdź do app>src>main>AndroidManifest.xml, dodaj BrowserTabActivity akcję jako element podrzędny <application> elementu. Ten wpis umożliwia usłudze Microsoft Entra ID oddzwonienie do Twojej aplikacji po zakończeniu procesu uwierzytelniania.

    <!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in-->
    <activity
        android:name="com.microsoft.identity.client.BrowserTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="msauth"
                android:host="Enter_the_Package_Name"
                android:path="/Enter_the_Signature_Hash" />
        </intent-filter>
    </activity>
    
    • Użyj nazwy pakietu, aby zamienić wartość android:host=.. Powinien wyglądać następująco: com.azuresamples.msalandroidapp.
    • Użyj skrót podpisu, aby zamienić wartość android:path=. Upewnij się, że na początku skrótu podpisu znajduje się wiodący element / . Powinien wyglądać następująco: /aB1cD2eF3gH4+iJ5kL6-mN7oP8q=.

    Te wartości można również znaleźć w zakładce Uwierzytelnianie w rejestracji Twojej aplikacji.

Tworzenie wystąpienia MSAL SDK

Aby zainicjować wystąpienie zestawu MSAL SDK, użyj następującego kodu:

PublicClientApplication.createSingleAccountPublicClientApplication(
    getContext(),
    R.raw.auth_config_single_account,
    new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
        @Override
        public void onCreated(ISingleAccountPublicClientApplication application) {
            // Initialize the single account application instance
            mSingleAccountApp = application;
            loadAccount();
        }

        @Override
        public void onError(MsalException exception) {
            // Handle any errors that occur during initialization
            displayError(exception);
        }
    }
);

Ten kod tworzy publiczną aplikację kliencką pojedynczego konta przy użyciu pliku konfiguracji auth_config_single_account.json. Po pomyślnym utworzeniu aplikacji przypisuje wystąpienie do mSingleAccountApp i wywołuje metodę loadAccount(). Jeśli podczas tworzenia wystąpi błąd, obsługuje błąd, wywołując metodę displayError(exception).

Upewnij się, że dołączysz instrukcje importowania. Program Android Studio powinien automatycznie dołączać instrukcje importowania.

Dalsze kroki