Sdílet prostřednictvím


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:

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 makléřské 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:
    • Ochrana aplikací Intune
    • 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 Android AccountManageru a nastavení úč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.

Diagram znázorňující, jak aplikace souvisí s MSAL, zprostředkujícími aplikacemi a správcem účtů Pro Android

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:

  • Registrovaný (připojený k pracovišti) a/nebo
  • Zapsané ve správě 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

Když je zprostředkovatel nainstalován

Když je zprostředkovatel nainstalován na zařízení, všechny následné interaktivní požadavky tokenu (volání acquireToken()) zpracovává zprostředkovatel, namísto toho, aby je lokálně zpracovávala služba MSAL. Pro zprostředkovatele není k dispozici žádný stav SSO, 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 když uživatel potřebuje vyřešit MsalUiRequiredException, další požadavek bude směřovat k zprostředkovateli. 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 aplikace Propojení s Windows, uživatel může být vyzván, aby se znovu přihlásil.

Integrace s zprostředkovatelem

Vygenerovat přesměrovací identifikátor URI pro zprostředkovatele

Musíte zaregistrovat identifikátor URI přesměrování, který je kompatibilní se 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>

Pomocí keytool můžete vygenerovat hash podpisu kódovaný v Base64 pomocí podpisových klíčů vaší aplikace a poté pomocí tohoto hashe vygenerovat přesměrovací URI.

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í hash podpisu pomocí keytool použijte portál Azure k vygenerování přesměrovacího identifikátoru URI.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
  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 Identity>aplikacím>Registrace aplikací.
  4. Vyberte svou aplikaci a poté vyberte Ověření>Přidat platformu>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 konfigurace AndroiduIdentifikátor URI přesměrování.

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

Konfigurace 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. Například zahrňte identifikátor URI přesměrování, který má povoleného zprostředkovatele, a uveďte, že jste jej 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í systému Android. Pokud vazba na vázanou službu selže, MSAL použije 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 získáte MsalClientException s kódem chyby "BROKER_BIND_FAILURE", 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ěřte integraci 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 systémový prohlížeč, vlastní záložky Chrome nebo WEBVIEW k vytvoření uživatelského prostředí pro ověřování. 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ší funkcionalitu, kterou si aplikace mohou přizpůsobit. Doporučujeme použít webVIEW. Pro více informací o dalších konfiguračních hodnotách (viz Vysvětlení konfiguračního souboru MSAL pro Android.

MSAL podporuje autorizaci pomocí WEBVIEW, nebo systémového prohlížeče. Následující obrázek ukazuje, jak to vypadá pomocí WEBVIEW nebo systémového prohlížeče s CustomTabs nebo bez CustomTabs:

Příklady přihlášení MSAL

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 k použití BROWSER k autorizaci. Na rozdíl od WEBVIEW sdílí BROWSER úložiště souborů cookie s výchozím systémovým prohlížečem, což 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 se zprostředkovatelem, jako je Microsoft Authenticator, Portál společnosti Intune nebo Propojení s aplikací Windows, mohou mít uživatelé prostředí jednotného přihlašování napříč aplikacemi, pokud jsou přihlášeni v jedné z těchto 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 nemůže mít uživatel prostředí jednotného přihlašování napříč aplikacemi, pokud se aplikace neintegrují s aplikací Microsoft Authenticator, Portálem společnosti Intune nebo Odkaz na 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ž nabízíme možnost použít prohlížeč a vlastní karty. 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á sdílený úložiště souborů cookie, což 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í trvalého souboru cookie relace nastaveného knihovnou MSAL.

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

Protože pro MSAL není možné určit přesný balíček prohlížeče, který by měl být použit na široké škále telefonů s Androidem, implementuje MSAL heuristiku výběru prohlížeče, která se snaží poskytnout co 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 ověří, jestli je v ověřeném seznamu bezpečných prohlížečů. Pokud tomu tak není, nástroj MSAL se vrací k využití WebView místo spuštění jiného než výchozího prohlížeče z bezpečného seznamu. Výchozí prohlížeč je zvolen bez ohledu na to, jestli podporuje vlastní záložky. Pokud prohlížeč podporuje Vlastní Karty, nástroj MSAL spustí Vlastní Kartu. Vlastní Karty mají vzhled a chování blíže zážitku uvnitř aplikace WebView a umožňují základní přizpůsobení uživatelského rozhraní. Podívejte se na Custom Tabs v Androidu pro více informací.

Pokud v zařízení nejsou žádné balíčky prohlížeče, MSAL používá WebView v aplikaci. 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 (API 17) projít projít nejde použít nejde použít nejde použít nejde použít
Samsung S7 (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 průchod projít projít selhat projít
Oppo projít "nepoužitelné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 (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: