Udostępnij za pośrednictwem


Szybki start: logowanie użytkowników w przykładowej aplikacji mobilnej

Przed rozpoczęciem użyj selektora Wybierz typ najemcy na górze tej strony, aby wybrać typ najemcy. ID Microsoft Entra udostępnia dwie konfiguracje dzierżawców: dla pracowników i dla użytkowników zewnętrznych. Konfiguracja najemcy dotycząca pracowników, aplikacji wewnętrznych i innych zasobów organizacyjnych. Zewnętrzny najemca jest przeznaczony dla aplikacji skierowanych do klientów.

W tym przewodniku szybkiego startu pobierzesz i uruchomisz przykładowy fragment kodu, który pokazuje, jak aplikacja systemu Android może logować się jako użytkownik i uzyskiwać token dostępu, aby wykonać wywołanie Microsoft Graph API.

Aplikacje muszą być reprezentowane przez obiekt aplikacji w identyfikatorze Entra firmy Microsoft, aby platforma tożsamości firmy Microsoft mogła udostępniać tokeny aplikacji.

Warunki wstępne

  • Konto platformy Azure z aktywną subskrypcją. Jeśli jeszcze go nie masz, Utwórz konto bezpłatnie.
  • To konto platformy Azure musi mieć uprawnienia do zarządzania aplikacjami. Każda z następujących ról firmy Microsoft Entra obejmuje wymagane uprawnienia:
    • Administrator aplikacji
    • Deweloper aplikacji
    • Administrator aplikacji w chmurze
  • Najemca mieszkań dla pracowników. Możesz użyć katalogu domyślnego lub skonfigurować nowego lokatora.
  • Zarejestruj nową aplikację w centrum administracyjnym Microsoft Entra przy użyciu następującej konfiguracji. Aby uzyskać więcej informacji, zobacz Zarejestruj aplikację.
    • Nazwa: identity-client-web-app
    • Obsługiwane typy kont: Konta w dowolnym katalogu organizacyjnym (dowolny katalog Microsoft Entra - wielodostępny) oraz osobiste konta Microsoft (np. Skype, Xbox)
  • Android Studio
  • Android 16+

Dodaj identyfikator URI przekierowania

Musisz dodać identyfikator URI przekierowania do rejestracji aplikacji. Ten identyfikator URI służy do przekierowywania użytkowników do aplikacji po zalogowaniu.

  1. W sekcji Zarządzajwybierz 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ótu Signature okienka Konfigurowanie aplikacji systemu Android wybierz pozycję Generowanie skrótu sygnatury programistycznej. i skopiuj polecenie KeyTool do wiersza polecenia.

    • KeyTool.exe jest instalowany jako część zestawu Java Development Kit (JDK). Należy również zainstalować narzędzie OpenSSL, aby wykonać polecenie KeyTool. Aby uzyskać więcej informacji, zobacz dokumentację Android dotyczącą generowania klucza.
  4. Wprowadź skrót sygnatury wygenerowany przez narzędzie KeyTool.

  5. Wybierz pozycję Konfiguruj i zapisz konfigurację MSAL, która pojawi się w okienku konfiguracji systemu Android, abyś mógł ją wprowadzić później, gdy będziesz konfigurować swoją aplikację.

  6. Wybierz opcję Gotowe.

Pobieranie przykładowej aplikacji

Konfigurowanie przykładowej aplikacji

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

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

  3. W aplikacji w folderze>src>main>res>raw, przejdź do pliku JSON o nazwie auth_config_single_account.json i wklej wcześniej zapisaną konfigurację MSAL.

    Pod przekierowaniem URL, 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": false,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    
  4. Otwórz plik /app/src/main/AndroidManifest.xml.

  5. Znajdź symbol zastępczy:

    • enter_the_signature_hash i zastąp go skrótem sygnatury , który wygenerowałeś wcześniej podczas dodawania adresu URL przekierowania platformy.

    W tym samouczku pokazano jedynie konfigurację aplikacji w trybie pojedynczego konta. Aby uzyskać więcej informacji, zobacz tryb pojedynczego kontra wielu kont i konfigurację aplikacji.

Uruchamianie przykładowej aplikacji

Wybierz emulator lub urządzenie fizyczne z dostępnych w Android Studio urządzeń w menu rozwijanym i uruchom aplikację.

Przykładowa aplikacja zostanie uruchomiona na ekranie trybu pojedynczego konta. Domyślny zakres, user.read, jest domyślnie udostępniany podczas odczytywania własnych danych profilu podczas wywołania interfejsu API programu Microsoft Graph. Adres URL wywołania interfejsu API programu Microsoft Graph jest domyślnie udostępniany. Możesz zmienić oba te elementy, jeśli chcesz.

Zrzut ekranu przykładowej aplikacji MSAL przedstawiający użycie pojedynczego i wielu kont.

Użyj menu aplikacji, aby zmienić tryby pojedynczego i wielu kont.

W trybie pojedynczego konta zaloguj się przy użyciu konta służbowego lub domowego:

  1. Wybierz pozycję Pobierz dane grafu interaktywnie, aby wyświetlić monit o podanie poświadczeń użytkownika. Dane wyjściowe wywołania interfejsu API programu Microsoft Graph zostaną wyświetlone w dolnej części ekranu.
  2. Po zalogowaniu wybierz pozycję Pobierz dane grafu w trybie dyskretnym, aby wykonać wywołanie interfejsu API programu Microsoft Graph bez ponownego proszenia użytkownika o podanie poświadczeń. Dane wyjściowe wywołania interfejsu API programu Microsoft Graph zostaną wyświetlone w dolnej części ekranu.

W trybie wielu kont można powtórzyć te same kroki. Ponadto możesz usunąć konto zalogowane, co spowoduje również usunięcie buforowanych tokenów dla tego konta.

Jak działa przykład

Diagram przedstawiający sposób działania przykładowej aplikacji wygenerowanej przez ten quickstart.

Kod jest podzielony na fragmenty, które pokazują, jak napisać aplikację MSAL dla jednego konta oraz dla wielu kont. Pliki kodu są zorganizowane w następujący sposób:

Plik Demonstruje
GłównaAktywność Zarządza interfejsem użytkownika
MSGraphRequestWrapper Wywołuje interfejs API usługi Microsoft Graph przy użyciu tokenu dostarczonego przez MSAL
FragmentTrybuWielokontowego Inicjuje aplikację z wieloma kontami, ładuje konto użytkownika i pobiera token w celu wywołania interfejsu API programu Microsoft Graph
TrybPojedynczegoKontaFragment Inicjuje aplikację z pojedynczym kontem, ładuje konto użytkownika i pobiera token w celu wywołania interfejsu API programu Microsoft Graph
res/auth_config_multiple_account.json Plik konfiguracji wielu kont
res/auth_config_single_account.json Plik konfiguracji pojedynczego konta
Gradle Scripts/build.gradle (Moduł:app) Zależności biblioteki MSAL są tutaj dodane

Teraz przyjrzymy się tym plikom bardziej szczegółowo i wywołamy kod specyficzny dla biblioteki MSAL w każdym z nich.

Następne kroki

Przejdź do samouczka systemu Android, w którym tworzysz aplikację dla systemu Android, która pobiera token dostępu z platformy tożsamości firmy Microsoft i używa jej do wywoływania interfejsu API programu Microsoft Graph.

Przewodnik szybkiego startu przeprowadzi Cię przez konfigurowanie przykładowych aplikacji na Androida, .NET MAUI Android oraz iOS/macOS w celu zalogowania użytkowników, poprzez rejestrację aplikacji, konfigurowanie adresów URL przekierowania, aktualizację konfiguracji i testowanie aplikacji.

Warunki wstępne

  • Konto platformy Azure z aktywną subskrypcją. Jeśli jeszcze go nie masz, Utwórz konto bezpłatnie.
  • To konto platformy Azure musi mieć uprawnienia do zarządzania aplikacjami. Każda z następujących ról firmy Microsoft Entra obejmuje wymagane uprawnienia:
    • Administrator aplikacji
    • Deweloper aplikacji
    • Administrator aplikacji w chmurze
  • Zewnętrzny najemca. Aby go utworzyć, wybierz jedną z następujących metod:
    • Użyj rozszerzenia Microsoft Entra External ID , aby skonfigurować dzierżawcę zewnętrznego bezpośrednio w programie Visual Studio Code. (Zalecane)
    • Utwórz nowego zewnętrznego najemcę w centrum administracyjnym Microsoft Entra.
  • Zarejestruj nową aplikację w centrum administracyjnym Microsoft Entra, korzystając z następującej konfiguracji, i zanotuj jej identyfikatory ze strony Przegląd aplikacji. Aby uzyskać więcej informacji, zobacz Zarejestruj aplikację.
    • Nazwa: identity-client-mobile-app
    • Obsługiwane typy kont: Konta w tym katalogu organizacyjnym (jedna organizacja)

Dodaj adres URL przekierowania platformy

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

  1. W obszarze Zarządzajwybierz pozycję Uwierzytelnianie.
  2. Na stronie Konfiguracje platformy wybierz pozycję Dodaj platformę, a następnie wybierz opcję Android.
  3. Wprowadź nazwę pakietu projektu. Jeśli pobrałeś przykładowy kod , to ta wartość to com.azuresamples.msaldelegatedandroidkotlinsampleapp.
  4. W sekcji Signature hash w oknie Konfigurowanie aplikacji Android wybierz opcję Generowanie skrótu sygnatury programistycznej. Proces ten będzie się różnił w zależności od środowiska deweloperskiego. Skopiuj i uruchom polecenie KeyTool dla swojego systemu operacyjnego w Terminalu.
  5. Wprowadź skrót sygnatury wygenerowany przez narzędzie KeyTool.
  6. Wybierz Konfiguruj.
  7. Skopiuj konfigurację MSAL z panelu konfiguracji systemu Android i zapisz ją, aby później skonfigurować aplikację.
  8. Wybierz opcję Gotowe.

Włącz publiczny przepływ klienta

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

  1. W obszarze Zarządzajwybierz pozycję Uwierzytelnianie.

  2. W sekcji Ustawienia zaawansowane, w przypadku Zezwalaj na przepływy klientów publicznych, wybierz Tak.

  3. Wybierz Zapisz, aby zapisać zmiany.

Po zarejestrowaniu aplikacji zostanie przypisane uprawnienie User.Read. Jednak ponieważ najemca jest najemcą zewnętrznym, użytkownicy sami nie mogą wyrazić zgody na udzielenie tej zgody. Jako administrator dzierżawcy musisz wyrazić zgodę na to uprawnienie w imieniu wszystkich użytkowników w dzierżawie.

  1. Na stronie Rejestracje aplikacji wybierz utworzoną aplikację (taką jak ciam-client-app), aby otworzyć jej stronę Przegląd.

  2. Pod Zarządzajwybierz uprawnienia interfejsu API.

    1. Wybierz pozycję >, a następnie wybierz pozycję Tak.
    2. Wybierz Odśwież, a następnie sprawdź, czy Przyznano dla <nazwa dzierżawy> pojawia się w sekcji Stan dla tego uprawnienia.

Klonowanie przykładowej aplikacji

Aby uzyskać przykładową aplikację, możesz ją sklonować z usługi GitHub lub pobrać jako plik .zip.

  • Aby sklonować przykład, otwórz wiersz polecenia i przejdź do miejsca, w którym chcesz utworzyć projekt, a następnie wprowadź następujące polecenie:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-android-sample
    

Konfigurowanie przykładowej aplikacji

Aby włączyć uwierzytelnianie i dostęp do zasobów programu Microsoft Graph, skonfiguruj przykład, wykonując następujące kroki:

  1. W programie Android Studio otwórz sklonowany projekt.

  2. Otwórz plik /app/src/main/res/raw/auth_config_ciam.json.

  3. Znajdź symbol zastępczy:

    • Enter_the_Application_Id_Here i zastąp go identyfikatorem aplikacji (klienta) aplikacji, którą zarejestrowałeś wcześniej.
    • Enter_the_Redirect_Uri_Here i zastąp ją wartością redirect_uri w pliku konfiguracji biblioteki Microsoft Authentication Library (MSAL), który pobrałeś wcześniej, dodając adres URL przekierowania platformy.
    • Enter_the_Tenant_Subdomain_Here i zastąp ją poddomeną Katalog (dzierżawa). Na przykład, jeśli podstawowa domena dzierżawy to contoso.onmicrosoft.com, należy użyć contoso. Jeśli nie znasz poddomeny dzierżawy, dowiedz się, jak sprawdzić szczegóły dzierżawy.
  4. Otwórz plik /app/src/main/AndroidManifest.xml.

  5. Znajdź symbol zastępczy:

    • ENTER_YOUR_SIGNATURE_HASH_HERE i zastąp go skrótem sygnatury , który wygenerowałeś wcześniej podczas dodawania adresu URL przekierowania platformy.
  6. Otwórz plik /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt.

  7. Znajdź właściwość o nazwie scopes i ustaw zakresy zarejestrowane w . Udziel zgody administratora. Jeśli nie zarejestrowano żadnych zakresów, możesz pozostawić tę listę zakresów pustą.

    private const val scopes = "" // Developers should set the respective scopes of their Microsoft Graph resources here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
    

Skonfigurowano aplikację i wszystko jest gotowe do uruchomienia.

Uruchamianie i testowanie przykładowej aplikacji

Aby skompilować i uruchomić aplikację, wykonaj następujące kroki:

  1. Na pasku narzędzi wybierz aplikację z menu Konfiguracji uruchamiania.

  2. W menu urządzenia docelowego wybierz urządzenie, na którym chcesz uruchomić aplikację.

    Jeśli nie masz żadnych skonfigurowanych urządzeń, musisz utworzyć urządzenie wirtualne z systemem Android do korzystania z emulatora systemu Android lub połączyć fizyczne urządzenie z systemem Android.

  3. Wybierz przycisk Uruchom.

  4. Wybierz pozycję Uzyskaj token interaktywnie, aby zażądać tokenu dostępu.

  5. Jeśli wybierzesz API - wykonaj GET, aby wywołać chronione internetowe API ASP.NET Core, zostanie wyświetlony błąd.

Aby uzyskać więcej informacji na temat wywoływania chronionego internetowego interfejsu API, zobacz nasze następne kroki

Następne kroki