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. Vylepšuje uživatelské prostředí a zlepšuje zabezpečení tím, že snižuje počet hesel, která uživatelé potřebují spravovat, což snižuje riziko únavy hesel a souvisejících ohrožení zabezpečení.
Microsoft Identity Platform a Microsoft Authentication Library (MSAL) vám pomůžou povolit jednotné přihlašování napříč sadou aplikací. Povolením funkce zprostředkovatele můžete rozšířit jednotné přihlašování napříč celým zařízením.
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:
- Zřízení aplikace Další informace najdete v pokynech k vytvoření aplikace v kurzu pro Android.
- Integrace aplikace s MSAL pro Android
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 nastavení správce účtů androidu a účtu
- "Pracovní účet" – vlastní typ účtu
V Androidu je zprostředkovatel ověřování Microsoft součástí aplikace Microsoft Authenticator, Portál společnosti Intune a Propojit s Windows.
Následující diagram znázorňuje vztah mezi vaší aplikací, knihovnou MSAL a zprostředkovateli ověřování Microsoftu.
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í s výše uvedenými požadavky 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 uživatele provede postupem, aby zařízení vyhovovalo požadovaným zásadám. Pokud neexistuje žádný požadavek na zásady nebo se uživatel přihlašuje pomocí účtu Microsoft, instalace aplikace Broker se nevyžaduje.
Úč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í nainstalovaných více zprostředkovatelů, nástroj MSAL identifikuje aktivního zprostředkovatele samostatně, aby proces ověřování dokončil.
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 se odinstaluje Aplikace Microsoft Authenticator, Portál společnosti Intune nebo Propojit s Windows, může být uživatel vyzván k opětovnému přihlášení.
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:
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
- 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á.
- Přejděte k aplikacím> identit>Registrace aplikací.
- Vyberte aplikaci a pak vyberte Přidat platformu>pro>Android.
- V podokně Konfigurace aplikace pro Android, které se otevře, zadejte hodnotu hash podpisu, kterou jste vygenerovali dříve, a název balíčku.
- 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
Výjimky související s zprostředkovateli
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ů:
- Na zařízení s Androidem dokončete žádost pomocí zprostředkovatele.
- 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 WEBVIEW
prohlíž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í WEBVIEW
systémového prohlížeče. Následující obrázek ukazuje, jak vypadá pomocí WEBVIEW
nástroje , nebo systémového prohlížeče s customtabs nebo bez vlastních tabulek:
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žily 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, Portál společnosti Intune nebo Propojit s Windows, můžou mít uživatelé prostředí jednotného přihlašování napříč aplikacemi, pokud mají aktivní přihlášení s některou 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 WEBVIEW
se 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 aplikací Microsoft Authenticator, Portál společnosti Intune nebo Propojit s Windows.
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) | projít | projít | nejde použít | nejde použít | nejde použít | nejde použít |
Samsung S7 (ROZHRANÍ API 25) | pass1 | projít | projít | projít | selhat | projít |
Vivo (ROZHRANÍ API 26) | projít | projít | projít | projít | projít | selhat |
Pixel 2 (rozhraní API 26) | projít | projít | projít | projít | selhat | projít |
Oppo | projít | 2. | nejde použít | nejde použít | nejde použít | nejde použít |
OnePlus (ROZHRANÍ API 25) | projít | projít | projít | projít | selhat | projít |
Nexus (ROZHRANÍ API 28) | projít | projít | projít | projít | selhat | projít |
MI | projít | projít | projít | projít | selhat | projít |
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ů.
Další informace o zprostředkovaných aplikacích najdete na následujících stránkách: