Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Externí tenanti (další informace)
Tento kurz ukazuje, jak do mobilní aplikace pro Android přidat nativní sadu SDK pro ověřování Microsoft Authentication Library (MSAL).
V tomto kurzu se naučíte:
- Přidejte závislosti MSAL.
- Vytvořte konfigurační soubor.
- Vytvořte instanci sady MSAL SDK.
Požadavky
- Pokud jste to ještě neudělali, postupujte podle pokynů v přihlašování uživatelů v ukázkové mobilní aplikaci pro Android (Kotlin) pomocí nativního ověřování a zaregistrujte aplikaci ve vašem externím klientovi. Ujistěte se, že jste dokončili následující kroky:
- Zaregistrujte aplikaci.
- Povolte veřejné klientské a nativní autentizační toky.
- Udělení oprávnění rozhraní API
- Vytvořte uživatelský tok
- Přidružte aplikaci k toku uživatele.
- Android projekt. Pokud projekt Pro Android nemáte, vytvořte ho.
Přidání závislostí MSAL
Otevřete projekt v Android Studiu nebo vytvořte nový projekt.
Otevřete ve své aplikaci
build.gradlea přidejte následující závislosti: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:6.+' //... }V Android Studio vyberte Soubor>Synchronizovat projekt s Gradle soubory.
Vytvoření konfiguračního souboru
Požadované identifikátory tenanta, jako je ID aplikace (klienta), předáte sadě MSAL SDK prostřednictvím nastavení konfigurace JSON.
K vytvoření konfiguračního souboru použijte tento postup:
V podokně projektu Android Studia přejděte na app\src\main\res.
Klikněte pravým tlačítkem na res a vyberte Nový adresář>. Zadejte
rawjako název nového adresáře a vyberte OK.V app\src\main\res\raw vytvořte nový soubor JSON s názvem
auth_config_native_auth.json.Do souboru
auth_config_native_auth.jsonpřidejte následující konfigurace MSAL:{ "client_id": "Enter_the_Application_Id_Here", "authorities": [ { "type": "CIAM", "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/" } ], "challenge_types": ["oob"], "logging": { "pii_enabled": false, "log_level": "INFO", "logcat_enabled": true } } //...Nahraďte následující zástupné symboly hodnotami tenanta, které jste získali z Centra pro správu Microsoft Entra:
- Zástupný symbol
Enter_the_Application_Id_Herenahraďte ID aplikace (klienta), kterou jste zaregistrovali dříve. - Nahraďte
Enter_the_Tenant_Subdomain_Heresubdoménou adresáře (tenanta). Pokud je například primární doména vašeho tenantacontoso.onmicrosoft.com, použijtecontoso. Pokud neznáte název svého nájemce, naučte se, jak zobrazit podrobnosti o nájemci.
Typy výzvy jsou seznam hodnot, které aplikace používá k informování Microsoft Entra o metodě ověřování, kterou podporuje.
- Pro toky registrace a přihlašování s jednorázovým e-mailovým heslem použijte
["oob"]. - Pro toky registrace a přihlašování pomocí e-mailu a hesla použijte
["oob","password"]. - Pro samoobslužné resetování hesla (SSPR) použijte
["oob"].
- Zástupný symbol
Volitelné: Konfigurace protokolování
Zapněte protokolování při vytvoření aplikace vytvořením zpětného volání pro protokolování, aby mohl SDK zaznamenávat protokoly.
import com.microsoft.identity.client.Logger
fun initialize(context: Context) {
Logger.getInstance().setExternalLogger { tag, logLevel, message, containsPII ->
Logs.append("$tag $logLevel $message")
}
}
Pokud chcete nakonfigurovat protokolovací nástroj, musíte do konfiguračního souboru přidat oddíl: auth_config_native_auth.json
//...
{
"logging": {
"pii_enabled": false,
"log_level": "INFO",
"logcat_enabled": true
}
}
//...
- logcat_enabled: Povolí funkci protokolování knihovny.
- pii_enabled: Určuje, jestli se protokolují zprávy obsahující osobní údaje nebo data organizace. Pokud je nastavená hodnota false, protokoly nebudou obsahovat osobní údaje. Pokud je nastavená hodnota true, můžou protokoly obsahovat osobní údaje.
-
log_level: Použijte ho k rozhodnutí, jakou úroveň protokolování chcete povolit. Android podporuje následující úrovně protokolů:
- CHYBA
- VAROVÁNÍ
- Informace
- ROZVLEKLÝ
Další informace o protokolování MSAL naleznete v tématu Protokolování v MSAL pro Android.
Vytvořte instanci balíčku MSAL SDK pro nativní ověřování
V metodě onCreate() vytvořte instanci MSAL, aby aplikace mohla provádět ověřování s vaším tenantem prostřednictvím nativního ověřování. Metoda createNativeAuthPublicClientApplication() vrátí instanci s názvem authClient. Předejte konfigurační soubor JSON, který jste vytvořili dříve jako parametr.
//...
authClient = PublicClientApplication.createNativeAuthPublicClientApplication(
this,
R.raw.auth_config_native_auth
)
//...
Váš kód by měl vypadat podobně jako v následujícím fragmentu kódu:
class MainActivity : AppCompatActivity() {
private lateinit var authClient: INativeAuthPublicClientApplication
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
authClient = PublicClientApplication.createNativeAuthPublicClientApplication(
this,
R.raw.auth_config_native_auth
)
getAccountState()
}
private fun getAccountState() {
CoroutineScope(Dispatchers.Main).launch {
val accountResult = authClient.getCurrentAccount()
when (accountResult) {
is GetAccountResult.AccountFound -> {
displaySignedInState(accountResult.resultValue)
}
is GetAccountResult.NoAccountFound -> {
displaySignedOutState()
}
}
}
}
private fun displaySignedInState(accountResult: AccountState) {
val accountName = accountResult.getAccount().username
val textView: TextView = findViewById(R.id.accountText)
textView.text = "Cached account found: $accountName"
}
private fun displaySignedOutState() {
val textView: TextView = findViewById(R.id.accountText)
textView.text = "No cached account found"
}
}
- Načtěte účet uložený v mezipaměti pomocí objektu
getCurrentAccount(), který vrací objekt,accountResult. - Pokud se účet najde v trvalém stavu, použijte
GetAccountResult.AccountFoundk zobrazení stavu přihlášení. - V opačném případě použijte
GetAccountResult.NoAccountFoundk zobrazení stavu odhlášení.
Nezapomeňte přidat příkazy importu. Android Studio by pro vás měl automaticky zahrnout příkazy pro import.