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

Rejestrowanie aplikacji

Aby zarejestrować aplikację i ręcznie dodać informacje dotyczące rejestracji aplikacji do rozwiązania, wykonaj następujące kroki:

  1. Zaloguj się do centrum administracyjnego Microsoft Entra jako co najmniej Twórca aplikacji.

  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy, w której chcesz zarejestrować aplikację, korzystając z menu Katalogi i subskrypcje.

  3. Przejdź do Identity>Aplikacje>Rejestracja aplikacji.

  4. Wybierz pozycję Nowa rejestracja.

  5. Wprowadź Nazwa dla aplikacji. Użytkownicy aplikacji mogą zobaczyć tę nazwę i możesz ją zmienić później.

  6. Dla typów kont obsługiwanych, wybierz konta w dowolnym katalogu organizacyjnym (dowolny katalog Microsoft Entra — multitenant) oraz osobiste konta Microsoft (np. Skype, Xbox). Aby uzyskać informacje na temat różnych typów kont, wybierz opcję Pomóż mi wybrać opcję.

  7. Wybierz pozycję Zarejestruj.

  8. W sekcji Zarządzajwybierz Uwierzytelnianie>Dodaj platformę>Android.

  9. 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
  10. 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.
  11. Wprowadź skrót sygnatury wygenerowany przez narzędzie KeyTool.

  12. 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ę.

  13. 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ą dodawane tutaj

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

Rejestrowanie aplikacji

Aby umożliwić aplikacji logowanie użytkowników w usłudze Microsoft Entra, Microsoft Entra External ID musi zostać poinformowany o tworzonej aplikacji. Rejestracja aplikacji ustanawia relację zaufania między aplikacją a firmą Microsoft Entra. Podczas rejestrowania aplikacji identyfikator zewnętrzny generuje unikatowy identyfikator znany jako identyfikator aplikacji (klienta), wartość używana do identyfikowania aplikacji podczas tworzenia żądań uwierzytelniania.

W poniższych krokach pokazano, jak zarejestrować aplikację w centrum administracyjnym firmy Microsoft Entra:

  1. Zaloguj się do centrum administracyjnego Microsoft Entra jako co najmniej Twórca aplikacji.

  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy zewnętrznej z menu Katalogi i subskrypcje.

  3. Przejdź do Tożsamość>Aplikacje>Rejestracje aplikacji.

  4. Wybierz pozycję + Nowa rejestracja.

  5. Na stronie Zarejestruj aplikację, która się pojawiła;

    1. Wprowadź znaczącą nazwę aplikacji Nazwa wyświetlaną użytkownikom aplikacji, na przykład ciam-client-app.
    2. W obszarze Obsługiwane typy kontwybierz pozycję Tylko konta w tym katalogu organizacji.
  6. Wybierz pozycję Zarejestruj.

  7. Po pomyślnym zarejestrowaniu zostanie wyświetlone okienko Przegląd aplikacji. Zapisz identyfikator aplikacji (klienta) do użycia w kodzie źródłowym aplikacji.

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ę Udziel zgody administratora dla nazwy dzierżawcy>, 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). Jeśli na przykład domena podstawowa dzierżawy jest contoso.onmicrosoft.com, użyj 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