Povolení jednotného přihlašování mezi aplikacemi v Androidu pomocí MSAL

Jednotné přihlašování (SSO) umožňuje uživatelům zadávat přihlašovací údaje jenom jednou a tyto přihlašovací údaje automaticky fungují napříč aplikacemi.

Microsoft Identity Platform a Microsoft Authentication Library (MSAL) vám pomůžou povolit jednotné přihlašování ve vaší vlastní sadě aplikací. Díky funkcím zprostředkovatele a aplikacím Authenticator můžete rozšířit jednotné přihlašování na celé zařízení.

V tomto postupu se dozvíte, jak nakonfigurovat sady SDK používané vaší aplikací k poskytování jednotného přihlašování vašim zákazníkům.

Požadavky

Tento postup předpokládá, že víte, jak:

Metody jednotného přihlašování

Existují dva způsoby, jak aplikace používající MSAL pro Android dosáhnout jednotného přihlašování:

  • Prostřednictvím zprostředkové aplikace

  • Prostřednictvím systémového prohlížeče

    Doporučujeme použít zprostředkovanou aplikaci pro výhody, jako je jednotné přihlašování pro celé zařízení, správa účtů a podmíněný přístup. Vyžaduje ale, aby si uživatelé stáhli další aplikace.

Jednotné přihlašování prostřednictvím zprostředkovaného ověřování

Doporučujeme použít některého z zprostředkovatelů ověřování Microsoftu k účasti v jednotném přihlašování na úrovni zařízení a splnění zásad podmíněného přístupu organizace. Integrace s zprostředkovatelem poskytuje následující výhody:

  • Jednotné přihlašování zařízení
  • Podmíněný přístup pro:
    • Intune App Protection
    • Registrace zařízení (připojení k síti na pracovišti)
    • Správa mobilních zařízení
  • Správa účtů na úrovni zařízení
    • prostřednictvím správce účtů androidu a účtu Nastavení
    • "Pracovní účet" – vlastní typ účtu

V Androidu je zprostředkovatel ověřování Microsoft součástí aplikace Microsoft Authenticator a Portál společnosti Intune.

Následující diagram znázorňuje vztah mezi vaší aplikací, knihovnou MSAL a zprostředkovateli ověřování Microsoftu.

Diagram showing how an application relates to MSAL, broker apps, and the Android account manager.

Instalace aplikací, které hostují zprostředkovatele

Zprostředkující hostitelské aplikace může vlastník zařízení nainstalovat z obchodu s aplikacemi (obvykle Google Play Store) kdykoli. Některá rozhraní API (prostředky) jsou však chráněná zásadami podmíněného přístupu, které vyžadují, aby zařízení byla:

  • Zaregistrované (připojené k pracovišti) a/nebo
  • Zaregistrované v Správa zařízení nebo
  • Zaregistrované v Intune App Protection

Pokud zařízení ještě nemá nainstalovanou zprostředkovanou aplikaci, nástroj MSAL dá uživateli pokyn, aby ho nainstaloval, jakmile se aplikace pokusí interaktivně získat token. Aplikace pak bude muset uživatele vést postupem, aby zařízení vyhovovalo požadovaným zásadám.

Účinky instalace a odinstalace zprostředkovatele

Při instalaci zprostředkovatele

Při instalaci zprostředkovatele na zařízení se všechny následné interaktivní požadavky tokenu (volání acquireToken()) zpracovávají zprostředkovatelem místo místně službou MSAL. Pro zprostředkovatele není k dispozici žádný stav jednotného přihlašování, který byl dříve dostupný pro MSAL. V důsledku toho se uživatel musí znovu ověřit nebo vybrat účet z existujícího seznamu účtů známých pro dané zařízení.

Instalace zprostředkovatele nevyžaduje, aby se uživatel znovu přihlásil. Pouze v případě, že uživatel potřebuje vyřešit MsalUiRequiredException , bude další požadavek přejít na zprostředkovatele. MsalUiRequiredException může být vyvolán z několika důvodů a je třeba je vyřešit interaktivně. Příklad:

  • Uživatel změnil heslo přidružené ke svému účtu.
  • Účet uživatele už nesplňuje zásady podmíněného přístupu.
  • Uživatel odvolal svůj souhlas pro aplikaci, aby byla přidružená ke svému účtu.

Více zprostředkovatelů – pokud je na zařízení nainstalováno více zprostředkovatelů, je zprostředkovatel, který byl nainstalován jako první, vždy aktivní zprostředkovatel. Na zařízení může být aktivní jenom jeden zprostředkovatel.

Při odinstalaci zprostředkovatele

Pokud je nainstalovaná jenom jedna hostitelská aplikace zprostředkovatele a je odebraná, musí se uživatel znovu přihlásit. Odinstalace aktivního zprostředkovatele odebere účet a přidružené tokeny ze zařízení.

Pokud je nainstalovaný Portál společnosti Intune a funguje jako aktivní zprostředkovatel a aplikace Microsoft Authenticator je nainstalovaná, pak pokud je Portál společnosti Intune (aktivní zprostředkovatel) odinstalovaný, bude se uživatel muset znovu přihlásit. Jakmile se znovu přihlásí, stane se aplikace Microsoft Authenticator aktivním zprostředkovatelem.

Integrace s zprostředkovatelem

Vygenerování identifikátoru URI přesměrování pro zprostředkovatele

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

Musíte zaregistrovat identifikátor URI přesměrování, který je kompatibilní s zprostředkovatelem. Identifikátor URI přesměrování pro zprostředkovatele by měl obsahovat název balíčku vaší aplikace a reprezentaci podpisu vaší aplikace kódovanou base64.

Formát identifikátoru URI přesměrování je: msauth://<yourpackagename>/<base64urlencodedsignature>

Keytool můžete použít k vygenerování hodnoty hash podpisu s kódováním Base64 pomocí podpisových klíčů vaší aplikace a pak pomocí této hodnoty hash vygenerovat identifikátor URI pro přesměrování.

Linux a macOS:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Windows:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

Po vygenerování hodnoty hash podpisu pomocí keytool vygenerujte identifikátor URI přesměrování pomocí webu Azure Portal:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.
  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte do tenanta, který obsahuje registraci aplikace z nabídky Adresáře a předplatná.
  3. Přejděte k aplikacím> identit>Registrace aplikací.
  4. Vyberte aplikaci a pak vyberte Přidat platformu>pro>Android.
  5. V podokně Konfigurace aplikace pro Android, které se otevře, zadejte hodnotu hash podpisu, kterou jste vygenerovali dříve, a název balíčku.
  6. Vyberte tlačítko Konfigurovat.

Identifikátor URI přesměrování se vygeneruje za vás a zobrazí se v poli Identifikátor URI přesměrování v podokně konfigurace Androidu.

Další informace o podepsání aplikace najdete v části Podepsání aplikace v uživatelské příručce pro Android Studio.

Konfigurace knihovny MSAL pro použití zprostředkovatele

Pokud chcete ve své aplikaci použít zprostředkovatele, musíte ověřit, že jste nakonfigurovali přesměrování zprostředkovatele. Zahrňte například identifikátor URI přesměrování s povoleným zprostředkovatelem – a uveďte, že jste ho zaregistrovali – včetně následujících nastavení v konfiguračním souboru MSAL:

"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true

Služba MSAL komunikuje se zprostředkovatelem dvěma způsoby:

  • Služba vázaná na zprostředkovatele
  • Správce účtů androidu

Služba MSAL nejprve používá službu vázanou na zprostředkovatele, protože volání této služby nevyžaduje žádná oprávnění androidu. Pokud vazba na vázanou službu selže, rozhraní MSAL používá rozhraní API správce účtů androidu. MsAL to dělá jenom v případě, že už vaše aplikace má udělené "READ_CONTACTS" oprávnění.

Pokud se zobrazí MsalClientException kód "BROKER_BIND_FAILURE"chyby, máte dvě možnosti:

  • Požádejte uživatele, aby zakázal optimalizaci výkonu pro aplikaci Microsoft Authenticator a Portál společnosti Intune.
  • Požádejte uživatele, aby udělil "READ_CONTACTS" oprávnění.

Ověření integrace zprostředkovatele

Nemusí být okamžitě jasné, že integrace zprostředkovatele funguje, ale můžete to zkontrolovat pomocí následujících kroků:

  1. Na zařízení s Androidem dokončete žádost pomocí zprostředkovatele.
  2. V nastavení na zařízení s Androidem vyhledejte nově vytvořený účet odpovídající účtu, se kterým jste se ověřili. Účet by měl být typu Pracovní účet.

Pokud chcete test zopakovat, můžete účet z nastavení odebrat.

Jednotné přihlašování prostřednictvím systémového prohlížeče

Aplikace pro Android mají možnost používat uživatelské prostředí pro ověřování pomocí , systémového WEBVIEWprohlížeče nebo vlastních karet Chrome. Pokud aplikace nepoužívá zprostředkované ověřování, potřebuje k dosažení jednotného přihlašování použít systémový prohlížeč, nikoli nativní webové zobrazení.

Autorizační agenti

Volba konkrétní strategie pro autorizační agenty je důležitá a představuje další aplikace funkcí, které si můžou přizpůsobit. Doporučujeme použít webVIEW. Další informace o dalších konguračních hodnotách (viz Vysvětlení konfiguračního souboru MSAL pro Android.

KNIHOVNA MSAL podporuje autorizaci pomocí WEBVIEWsystémového prohlížeče. Následující obrázek ukazuje, jak vypadá pomocí WEBVIEWnástroje , nebo systémového prohlížeče s customtabs nebo bez vlastních tabulek:

MSAL login examples

Důsledky jednotného přihlašování

Pokud aplikace používá WEBVIEW strategii bez integrace se zprostředkovaným ověřováním do své aplikace, uživatelé nebudou mít jednotné přihlašování napříč zařízením ani mezi nativními aplikacemi a webovými aplikacemi.

Aplikace je možné integrovat se službou MSAL, aby se použila BROWSER k autorizaci. Na rozdíl od WEBVIEW BROWSER sdílejte soubor cookie jar s výchozím systémovým prohlížečem, který umožňuje méně přihlášení s webovými nebo jinými nativními aplikacemi, které jsou integrované s vlastními kartami.

Pokud aplikace používá MSAL s zprostředkovatelem, jako je Microsoft Authenticator nebo Portál společnosti Intune, můžou mít uživatelé prostředí jednotného přihlašování napříč aplikacemi, pokud mají aktivní přihlášení s jednou z aplikací.

Poznámka:

MSAL s zprostředkovatelem využívá WebView a poskytuje jednotné přihlašování (SSO) pro všechny aplikace, které využívají knihovnu MSAL a účastní se zprostředkovaného ověřování. Stav jednotného přihlašování zprostředkovatele není rozšířen na jiné aplikace, které nepoužívají knihovnu MSAL.

WebView

Pokud chcete použít webView v aplikaci, vložte do souboru JSON konfigurace aplikace předaný knihovně MSAL následující řádek:

"authorization_user_agent" : "WEBVIEW"

Při použití aplikace WEBVIEWse uživatel přihlásí přímo k aplikaci. Tokeny se uchovávají uvnitř sandboxu aplikace a nejsou dostupné mimo soubor cookie jar aplikace. V důsledku toho uživatel nemůže mít prostředí jednotného přihlašování napříč aplikacemi, pokud se aplikace neintegrují s authenticatorem nebo Portál společnosti.

WEBVIEW Poskytuje ale možnost přizpůsobit vzhled a chování uživatelského rozhraní přihlašování. Další informace o tom, jak toto přizpůsobení provést, najdete v části Android WebViews .

Prohlížeč

Doporučujeme použít WEBVIEW, i když poskytujeme možnost používat prohlížeč a vlastní strategii karet . Tuto strategii můžete explicitně označit pomocí následující konfigurace JSON ve vlastním konfiguračním souboru:

"authorization_user_agent" : "BROWSER"

Tento přístup použijte k zajištění jednotného přihlašování prostřednictvím prohlížeče zařízení. MSAL používá soubor jar sdíleného souboru cookie, který umožňuje jiným nativním aplikacím nebo webovým aplikacím dosáhnout jednotného přihlašování na zařízení pomocí souboru cookie trvalé relace nastaveného knihovnou MSAL.

Heuristika výběru prohlížeče

Protože msAL není možné zadat přesný balíček prohlížeče, který se má použít na každém širokém rozsahu telefonů s Androidem, MSAL implementuje heuristiku výběru prohlížeče, která se snaží poskytnout nejlepší jednotné přihlašování mezi zařízeními.

Knihovna MSAL primárně načte výchozí prohlížeč ze správce balíčků a zkontroluje, jestli je v testovaném seznamu bezpečných prohlížečů. Pokud tomu tak není, nástroj MSAL se vrátí zpět pomocí webového zobrazení místo spuštění jiného než výchozího prohlížeče ze seznamu bezpečných adres. Výchozí prohlížeč je zvolen bez ohledu na to, jestli podporuje vlastní karty. Pokud prohlížeč podporuje vlastní karty, nástroj MSAL spustí vlastní kartu. Vlastní karty mají vzhled a chování blíže k aplikaci WebView a umožňují základní přizpůsobení uživatelského rozhraní. Další informace najdete na vlastních kartách v Androidu .

Pokud v zařízení nejsou žádné balíčky prohlížeče, msAL používá v aplikaci WebView. Pokud se výchozí nastavení zařízení nezmění, měl by se pro každé přihlášení spustit stejný prohlížeč, aby se zajistilo jednotné přihlašování.

Testované prohlížeče

Následující prohlížeče byly testovány, aby zjistily, jestli se správně přesměrují na "redirect_uri" zadaný konfigurační soubor:

Zařízení Integrovaný prohlížeč Chrome Opera Microsoft Edge Prohlížeč UC Firefox
Nexus 4 (ROZHRANÍ API 17) Předat Předat nejde použít nejde použít nejde použít nejde použít
Samsung S7 (ROZHRANÍ API 25) pass1 Předat Předat Předat Selhání Předat
Vivo (ROZHRANÍ API 26) Předat Předat Předat Předat Předat Selhání
Pixel 2 (rozhraní API 26) Předat Předat Předat Předat Selhání Předat
Oppo Předat 2. nejde použít nejde použít nejde použít nejde použít
OnePlus (ROZHRANÍ API 25) Předat Předat Předat Předat Selhání Předat
Nexus (ROZHRANÍ API 28) Předat Předat Předat Předat Selhání Předat
MI Předat Předat Předat Předat Selhání Předat

1Integrovaný prohlížeč Samsung je Samsung Internet.
2Výchozí prohlížeč nelze změnit v nastavení zařízení Oppo.

Další kroky

Režim sdíleného zařízení pro zařízení s Androidem umožňuje nakonfigurovat zařízení s Androidem, aby ho mohlo snadno sdílet více zaměstnanců.