Samouczek: przygotowywanie aplikacji systemu Android (Kotlin) do uwierzytelniania
Jest to drugi samouczek z serii samouczków, który pokazuje, jak dodać bibliotekę Microsoft Authentication Library (MSAL) dla systemu Android do aplikacji Systemu Android (Kotlin). Biblioteka MSAL umożliwia aplikacjom systemu Android uwierzytelnianie użytkowników w usłudze Microsoft Entra.
W tym samouczku wykonasz następujące elementy:
- Dodaj zależności biblioteki MSAL.
- Dodaj konfigurację.
Wymagania wstępne
- Android Studio
- Jeśli jeszcze tego nie zrobiono, postępuj zgodnie z instrukcjami w artykule Samouczek: rejestrowanie i konfigurowanie aplikacji mobilnej systemu Android (Kotlin) oraz rejestrowanie aplikacji w dzierżawie zewnętrznej.
- Projekt systemu Android. Jeśli nie masz projektu systemu Android, utwórz go.
Dodawanie zależności biblioteki MSAL
Aby dodać zależności biblioteki MSAL w projekcie systemu Android, wykonaj następujące kroki:
Otwórz projekt w programie Android Studio lub utwórz nowy projekt.
Otwórz aplikację
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 dlacom.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.W programie Android Studio wybierz pozycję Projekt synchronizacji plików>z plikami Gradle.
Dodawanie konfiguracji
Wymagane identyfikatory dzierżawy, takie jak identyfikator aplikacji (klienta), są przekazywane do zestawu SDK biblioteki MSAL za pomocą ustawienia konfiguracji JSON.
Wykonaj następujące kroki, aby utworzyć plik konfiguracji:
W okienku projektu programu Android Studio przejdź do pozycji app\src\main\res.
Kliknij prawym przyciskiem myszy pozycję res i wybierz pozycję Nowy>katalog. Wprowadź
raw
jako nazwę nowego katalogu i wybierz przycisk OK.W pliku app\src\main\res\raw utwórz nowy plik JSON o nazwie
auth_config_ciam_auth.json
.auth_config_ciam_auth.json
W pliku dodaj następujące konfiguracje biblioteki MSAL:{ "client_id" : "Enter_the_Application_Id_Here", "authorization_user_agent" : "DEFAULT", "redirect_uri" : "Enter_the_Redirect_Uri_Here", "account_mode" : "SINGLE", "authorities" : [ { "type": "CIAM", "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/" } ] }
Plik konfiguracji JSON określa różne ustawienia aplikacji systemu Android. Obejmuje identyfikator klienta, agenta użytkownika autoryzacji, identyfikator URI przekierowania i tryb konta. Ponadto definiuje urząd uwierzytelniania, określając typ i adres URL urzędu.
Zastąp następujące symbole zastępcze wartościami dzierżawy uzyskanymi z centrum administracyjnego firmy Microsoft Entra:
Enter_the_Application_Id_Here
zastąp ją identyfikatorem aplikacji (klienta) zarejestrowanej wcześniej aplikacji.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 tocontoso.onmicrosoft.com
, użyj poleceniacontoso
. Jeśli nie znasz poddomeny dzierżawy, dowiedz się, jak odczytywać szczegóły dzierżawy.
Otwórz plik /app/src/main/AndroidManifest.xml .
W AndroidManifest.xml dodaj następującą specyfikację danych do filtru intencji:
<data android:host="ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE" android:path="/ENTER_YOUR_SIGNATURE_HASH_HERE" android:scheme="msauth" />
Znajdź symbol zastępczy:
- ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE i zastąp go nazwą pakietu projektu systemu Android.
- ENTER_YOUR_SIGNATURE_HASH_HERE i zastąp go skrótem sygnatury wygenerowaną wcześniej podczas dodawania adresu URL przekierowania platformy.
Użyj niestandardowej domeny adresu URL (opcjonalnie)
Użyj domeny niestandardowej, aby w pełni oznaczyć adres URL uwierzytelniania. Z perspektywy użytkownika użytkownicy pozostają w domenie podczas procesu uwierzytelniania, a nie przekierowywani do ciamlogin.com nazwy domeny.
Aby użyć domeny niestandardowej, wykonaj następujące czynności:
Wykonaj kroki opisane w temacie Włączanie niestandardowych domen url dla aplikacji w dzierżawach zewnętrznych, aby włączyć niestandardową domenę adresu URL dla dzierżawy zewnętrznej.
Otwórz plik auth_config_ciam_auth.json :
- Zaktualizuj wartość
authority_url
właściwości na https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. ZastąpEnter_the_Custom_Domain_Here
ciąg domeną niestandardowego adresu URL iEnter_the_Tenant_ID_Here
identyfikatorem dzierżawy. Jeśli nie masz identyfikatora dzierżawy, dowiedz się, jak odczytywać szczegóły dzierżawy. - Dodaj
knownAuthorities
właściwość o wartości [Enter_the_Custom_Domain_Here].
- Zaktualizuj wartość
Po wprowadzeniu zmian w pliku auth_config_ciam_auth.json , jeśli domena niestandardowego adresu URL jest login.contoso.com, a identyfikator dzierżawy to aaaabbbb-0000-cccc-1111-dddd2222eeeee, plik powinien wyglądać podobnie do następującego fragmentu kodu:
{
"client_id" : "Enter_the_Application_Id_Here",
"authorization_user_agent" : "DEFAULT",
"redirect_uri" : "Enter_the_Redirect_Uri_Here",
"account_mode" : "SINGLE",
"authorities" : [
{
"type": "CIAM",
"authority_url": "https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee",
"knownAuthorities": ["login.contoso.com"]
}
]
}
Tworzenie wystąpienia zestawu MSAL SDK
Aby zainicjować wystąpienie zestawu MSAL SDK, użyj następującego kodu:
private suspend fun initClient(): ISingleAccountPublicClientApplication = withContext(Dispatchers.IO) {
return@withContext PublicClientApplication.createSingleAccountPublicClientApplication(
this@MainActivity,
R.raw.auth_config_ciam_auth
)
}
Kod inicjuje jedno konto publicznej aplikacji klienckiej asynchronicznie. Używa on dostarczonego pliku konfiguracji uwierzytelniania i działa w dyspozytorze we/wy.
Upewnij się, że dołączysz instrukcje importowania. Program Android Studio powinien automatycznie dołączać instrukcje importowania.
Następne kroki
Samouczek: logowanie użytkowników w aplikacji mobilnej Dla systemu Android (Kotlin)