Szybki start: logowanie użytkowników i wywoływanie internetowego interfejsu API w przykładowej aplikacji mobilnej
Dotyczy: Dzierżawcy zasobów ludzkich
Zewnętrzni najemcy (dowiedz się więcej)
Przed rozpoczęciem użyj selektora Wybierz typ najemcy u góry tej strony, aby wybrać typ najemcy. Microsoft Entra ID udostępnia dwie konfiguracje dzierżawy, pracowniczą i zewnętrzną. Konfiguracja użytkowników dotyczy pracowników, aplikacji wewnętrznych i innych zasobów organizacji. Zewnętrzny najemca jest przeznaczony dla aplikacji skierowanych do klientów.
W tym przewodniku pokazano, jak skonfigurować przykładową aplikację mobilną do logowania użytkowników i wywołać internetowy interfejs API platformy ASP.NET Core.
W tym artykule wykonasz następujące zadania:
- Zarejestruj aplikację w centrum administracyjnym firmy Microsoft Entra.
- Dodaj adres URL przekierowania platformy.
- Włącz przepływy klientów publicznych.
- Zaktualizuj przykładowy plik kodu konfiguracji systemu Android, aby użyć własnego Microsoft Entra External ID dla szczegółów dotyczących dzierżawcy klienta.
- Uruchom i przetestuj przykładową aplikację mobilną systemu Android.
- Wywoływanie chronionego internetowego interfejsu API.
Warunki wstępne
- systemu Android
- iOS/macOS
Zewnętrzny najemca. Jeśli jeszcze go nie masz, zarejestruj się, aby otrzymać bezpłatną wersję próbną.
Rejestracja interfejsu API, która uwidacznia co najmniej jeden zakres (uprawnienia delegowane) i jedną rolę aplikacji (uprawnienie aplikacji), taką jak ToDoList.Read. Jeśli jeszcze tego nie zrobiono, postępuj zgodnie z instrukcjami dotyczącymi wywoływania interfejsu API w przykładowej aplikacji mobilnej systemu Android, aby mieć funkcjonalny chroniony interfejs API sieci Web ASP.NET Core. Upewnij się, że wykonasz następujące kroki:
- Zarejestruj aplikację web API
- Konfigurowanie zakresów interfejsu API
- Konfigurowanie ról aplikacji
- Konfigurowanie opcjonalnych oświadczeń
- Klonowanie lub pobieranie przykładowego internetowego interfejsu API
- Konfigurowanie i uruchamianie przykładowego internetowego interfejsu API
Rejestrowanie aplikacji
Aby umożliwić aplikacji logowanie użytkowników w usłudze Microsoft Entra, identyfikator zewnętrzny firmy Microsoft entra musi być świadomy 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:
Zaloguj się do centrum administracyjnego Microsoft Entra jako co najmniej programista aplikacji.
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.
Przejdź do Tożsamość>Aplikacje>Rejestracje aplikacji.
Wybierz pozycję + Nowa rejestracja.
Na wyświetlonej stronie Zarejestruj aplikację;
- Wprowadź zrozumiałą nazwę aplikacji Nazwa wyświetlaną użytkownikom aplikacji, na przykład ciam-client-app.
- W obszarze Obsługiwane typy kontwybierz pozycję konta w tym katalogu organizacyjnym tylko.
Wybierz pozycję Zarejestruj.
Po pomyślnym zarejestrowaniu wyświetli się okienko Przegląd aplikacji. Zapisz identyfikator aplikacji (klienta) do użycia w kodzie źródłowym aplikacji.
Dodaj adres URL przekierowania platformy
- systemu Android
- iOS/macOS
Aby określić typ aplikacji do rejestracji aplikacji, wykonaj następujące kroki:
- W obszarze Zarządzajwybierz pozycję Uwierzytelnianie.
- Na stronie Konfiguracje platformy wybierz pozycję Dodaj platformę, a następnie wybierz opcję Android.
- Wprowadź nazwę pakietu projektu. Jeśli pobrałeś przykładowy kod , wartość tej zmiennej to
com.azuresamples.msaldelegatedandroidkotlinsampleapp
. - W sekcji skrótu Signature okienka Konfigurowanie aplikacji systemu Android wybierz pozycję Generowanie skrótu sygnatury programistycznej. Spowoduje to zmianę dla każdego środowiska deweloperskiego. Skopiuj i uruchom polecenie KeyTool dla systemu operacyjnego w terminalu.
- Wprowadź skrót podpisu wygenerowany przez KeyTool.
- Wybierz , Konfiguruj.
- Skopiuj konfigurację MSAL z panelu konfiguracyjnego Android i zapisz ją do późniejszej konfiguracji aplikacji.
- Wybierz pozycję Gotowe.
Włącz publiczny przepływ klienta
Aby zidentyfikować aplikację jako klienta publicznego, wykonaj następujące kroki:
W obszarze Zarządzajwybierz pozycję Uwierzytelnianie.
W obszarze Ustawienia zaawansowanedla Zezwalaj na przepływy klientów publicznychwybierz Tak.
Wybierz Zapisz, aby zapisać zmiany.
Udzielanie zgody administratora
Po zarejestrowaniu aplikacji zostanie przypisane uprawnienie User.Read. Jednak ponieważ najemca jest najemcą zewnętrznym, użytkownicy klienta sami nie mogą wyrazić zgody na to uprawnienie. Ty jako administrator dzierżawy musisz wyrazić zgodę na to uprawnienie w imieniu wszystkich użytkowników w dzierżawie:
Na stronie rejestracje aplikacji wybierz utworzoną aplikację (taką jak ciam-client-app), aby otworzyć stronę Przegląd .
W obszarze Zarządzajwybierz pozycję uprawnienia interfejsu API .
- Wybierz pozycję Udziel zgody administratora <nazwę dzierżawy>, a następnie wybierz pozycję Tak.
- Wybierz pozycję Odśwież, a następnie sprawdź, czy udzielono <nazwa dzierżawy> jest wyświetlana w obszarze Stan dla uprawnienia.
Udzielanie uprawnień internetowego interfejsu API do przykładowej aplikacji
Po zarejestrowaniu aplikacji klienckiej, internetowego interfejsu API i uwidocznieniu interfejsu API przez utworzenie zakresów można skonfigurować uprawnienia klienta do interfejsu API, wykonując następujące kroki:
Na stronie rejestracji aplikacji wybierz utworzoną aplikację (taką jak ciam-client-app), aby otworzyć stronę Przegląd.
W obszarze Zarządzajwybierz pozycję uprawnienia interfejsu API .
W obszarze Skonfigurowane uprawnieniawybierz pozycję Dodaj uprawnienie.
Wybierz interfejsy API używane przez moją organizację na karcie.
Na liście interfejsów API wybierz interfejs API, taki jak ciam-ToDoList-api.
Wybierz opcję uprawnienia delegowane .
Z listy uprawnień wybierz pozycję ToDoList.Read, ToDoList.ReadWrite (w razie potrzeby użyj pola wyszukiwania).
Wybierz przycisk Dodaj uprawnienia.
W tym momencie przypisano uprawnienia poprawnie. Jednak ponieważ najemca jest najemcą klienta, konsumenccy użytkownicy sami nie mogą wyrazić zgody na te uprawnienia. Aby rozwiązać ten problem, administrator musi wyrazić zgodę na te uprawnienia w imieniu wszystkich użytkowników w dzierżawie:
Wybierz Udziel zgody administratora dla <twojej nazwy dzierżawy>, a następnie wybierz Tak.
Wybierz pozycję Odśwież, a następnie sprawdź, czy Udzielono <nazwa dzierżawy> jest wyświetlana w obszarze Stan dla obu uprawnień.
Z listy Skonfigurowane uprawnienia wybierz ToDoList.Read i ToDoList.ReadWrite, jedno po drugim, a następnie skopiuj pełny URI uprawnień do późniejszego użycia. Pełny URI uprawnień wygląda podobnie jak
api://{clientId}/{ToDoList.Read}
lubapi://{clientId}/{ToDoList.ReadWrite}
.
Klonowanie przykładowej aplikacji mobilnej
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 mobilnej dla systemu Android
Aby włączyć uwierzytelnianie i dostęp do zasobów API, skonfiguruj przykładową aplikację, wykonując następujące kroki:
W programie Android Studio otwórz sklonowany projekt.
Otwórz plik /app/src/main/res/raw/auth_config_ciam.json.
Znajdź symbol zastępczy:
-
Enter_the_Application_Id_Here
i zastąp go identyfikatorem (klienta) aplikacji wcześniej zarejestrowanej. -
Enter_the_Redirect_Uri_Here
i zastąp ją wartością redirect_uri w pobranym wcześniej pliku konfiguracji biblioteki Microsoft Authentication Library (MSAL) po dodaniu adresu 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 jestcontoso.onmicrosoft.com
, użyjcontoso
. Jeśli nie znasz poddomeny dzierżawy, dowiedz się, jak zapoznać się ze szczegółami dzierżawy.
-
Otwórz plik /app/src/main/AndroidManifest.xml.
Znajdź symbol zastępczy:
-
ENTER_YOUR_SIGNATURE_HASH_HERE
i zastąp go wygenerowanym wcześniej skrótem sygnatury podczas dodawania adresu URL przekierowania platformy.
-
Otwórz plik /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt.
Znajdź właściwość o nazwie
WEB_API_BASE_URL
i ustaw adres URL na internetowy interfejs API.Znajdź właściwość o nazwie
scopes
i ustaw zakresy zarejestrowane w . Udziel uprawnień do internetowego interfejsu API w przykładowej aplikacji systemu Android.private const val scopes = "" // Developers should set the respective scopes of their web API here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
Skonfigurowano aplikację i wszystko jest gotowe do uruchomienia.
Uruchamianie przykładowej aplikacji i wywoływanie internetowego interfejsu API
Aby skompilować i uruchomić aplikację, wykonaj następujące kroki:
Na pasku narzędzi wybierz aplikację z menu Konfiguracji uruchamiania.
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.
Wybierz przycisk Uruchom.
Wybierz Uzyskaj token interaktywnie, aby zażądać tokenu dostępu.
Wybierz interfejs API — wykonaj GET, aby wywołać wcześniej skonfigurowany internetowy interfejs API ASP.NET Core. Pomyślne wywołanie internetowego interfejsu API zwraca protokół HTTP 200, a protokół HTTP 403 oznacza nieautoryzowany dostęp.