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 isBrowserRequired() k chybě dochází a jak ji můžete vyřešit. Metoda nástroje isBrowserRequired() kontroluje potřebu náhradního mechanismu pro různé scénáře, kdy nativní ověřování nestačí k dokončení toku ověřování funkčním a bezpečným způsobem.
V tomto kurzu se naučíte:
- Zkontrolovat
isBrowserRequired() - Rukojeť
isBrowserRequired()
Požadavky
- Dokončete kroky v Přihlášení uživatelů v ukázkové nativní mobilní aplikaci pro Android. V tomto článku se dozvíte, jak spustit ukázkový Android, který nakonfigurujete pomocí nastavení tenanta.
- Dokončete kroky v Kurzu: Přidání přihlášení a odhlášení pomocí jednorázového e-mailového kódu.
Záložní web
Pro scénáře, kdy nativní ověřování nestačí k dokončení toku ověřování uživatele, použijte mechanismus pro použití náhradního webu.
Při inicializaci sady Android SDK zadáte typy výzvy, které vaše mobilní aplikace podporuje, například oob a heslo.
Pokud vaše klientská aplikace nemůže podporovat typ výzvy, který Microsoft Entra vyžaduje, odpověď Microsoft Entra indikuje, že klientská aplikace musí pokračovat v toku ověřování v prohlížeči. Například inicializujete sadu SDK s výzvy typu, ale v Centru pro správu Microsoft Entra nakonfigurujete aplikaci pomocí metody ověřování pomocí e-mailu a hesla.
V tomto případě metoda utility isBrowserRequired() vrátí hodnotu true.
Ukázkový tok
Podívejme se na příklad toku, který vrací isBrowserRequired()a jak ho můžete zpracovat:
Do souboru JSON konfigurace, který předáte sadě SDK během inicializace, přidejte pouze typ výzvy oob, jak je zobrazeno na následujícím fragmentu kódu:
PublicClientApplication.createNativeAuthPublicClientApplication( requireContext(), R.raw.native_auth_config // JSON configuration file )Konfigurace
native_auth_config.jsonobsahuje následující fragment kódu:{ "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 } }V Centru pro správu Microsoft Entra nakonfigurujte tok uživatelů, aby použil jako metodu ověření e-mail s heslem.
Spusťte tok registrace pomocí metody
signUp(parameters)sady SDK. ZískáteSignUpError, který projdeisBrowserRequired()kontrolou, protože Microsoft Entra očekává heslo a výzvu typu , ale nakonfigurovali jste svou sadu SDK pouze s oob.Ke kontrole a zpracování
isBrowserRequired()použijte následující fragment kódu:val parameters = NativeAuthSignUpParameters(username = email) val actionResult: SignUpResult = authClient.signUp(parameters) if (actionResult is SignUpError && actionResult.isBrowserRequired()) { // Handle "browser required" error }Kód označuje, že tok ověřování nejde dokončit prostřednictvím nativního ověřování a že se musí použít prohlížeč.
Zpracování chyby isBrowserRequired()
Pro zpracování této chyby musí klientská aplikace spustit prohlížeč a restartovat tok ověřování. Můžete toho dosáhnout pomocí metody MSAL (Microsoft Authentication Library acquireToken()).
Provedete to pomocí následujících kroků:
Pokud chcete přidat adresu URI pro přesměrování do dříve zaregistrované aplikace, použijte postup v Přidání adresy URL pro přesměrování platformy.
Pokud chcete aktualizovat konfigurační soubor klientské aplikace, postupujte podle kroků v části Konfigurace ukázkové aplikace.
Pomocí následujícího fragmentu kódu získejte token pomocí metody
acquireToken():val parameters = NativeAuthSignUpParameters(username = email) val actionResult: SignUpResult = authClient.signUp(parameters) if (actionResult is SignUpError && actionResult.isBrowserRequired()) { authClient.acquireToken( AcquireTokenParameters( AcquireTokenParameters.Builder() .startAuthorizationFromActivity(requireActivity()) .withScopes(getScopes()) .withCallback(getAuthInteractiveCallback()) ) // Result will contain account and tokens retrieved through the browser. ) }
Tokeny zabezpečení, tedy tokeny ID, přístupové tokeny a obnovovací tokeny, které získáte prostřednictvím nativního ověřovacího toku, jsou stejné jako tokeny, které získáte prostřednictvím toku delegovaného prohlížečem.
Související obsah
- Přečtěte si, jak spustit ukázkovou aplikaci pro iOS
- Prozkoumejte referenci nativního rozhraní API pro ověřování pomocí jednorázového kódu zaslaného e-mailem .
- Seznamte se s typy výzev .