Alkalmazásközi egyszeri bejelentkezés engedélyezése Androidon az MSAL használatával
Az egyszeri bejelentkezés (SSO) lehetővé teszi, hogy a felhasználók csak egyszer írják be a hitelesítő adataikat, és hogy ezek a hitelesítő adatok automatikusan működjenek az alkalmazások között. Ez javítja a felhasználói élményt, és javítja a biztonságot azáltal, hogy csökkenti a felhasználóknak kezelni kívánt jelszavak számát, csökkentve a jelszófáradás és a kapcsolódó biztonsági rések kockázatát.
A Microsoft Identitásplatform és a Microsoft Authentication Library (MSAL) segítségével engedélyezheti az egyszeri bejelentkezést az alkalmazáscsomagban. A Broker funkció engedélyezésével az egyszeri bejelentkezést a teljes eszközre kiterjesztheti.
Ebben az útmutatóban megtudhatja, hogyan konfigurálhatja az alkalmazás által használt SDK-kat, hogy SSO-t biztosítson az ügyfeleknek.
Előfeltételek
Ez az útmutató feltételezi, hogy tudja, hogyan kell:
- Az alkalmazás kiépítése. További információkért tekintse meg az alkalmazás létrehozásának utasításait az Android-oktatóanyagban
- Az alkalmazás integrálása az Androidhoz készült MSAL szolgáltatással
Egyszeri bejelentkezés módszerei
Az androidos MSAL-t használó alkalmazások kétféleképpen érhetik el az egyszeri bejelentkezést:
Közvetítőalkalmazáson keresztül
A rendszerböngészőn keresztül
Ajánlott közvetítőalkalmazást használni olyan előnyökhöz, mint az eszközszintű egyszeri bejelentkezés, a fiókkezelés és a feltételes hozzáférés. Ehhez azonban további alkalmazásokat kell letöltenie a felhasználóknak.
Egyszeri bejelentkezés közvetítőalapú hitelesítéssel
Javasoljuk, hogy a Microsoft egyik hitelesítési közvetítőjét használja az eszközszintű egyszeri bejelentkezésben való részvételhez és a szervezeti feltételes hozzáférési szabályzatok teljesítéséhez. A közvetítővel való integráció a következő előnyöket nyújtja:
- Eszköz egyszeri bejelentkezése
- Feltételes hozzáférés a következőhöz:
- Intune App Protection
- Eszközregisztráció (Munkahelyi csatlakozás)
- Mobileszköz-kezelés
- Eszközszintű fiókkezelés
- Android AccountManager > fiókbeállításokon keresztül
- "Munkahelyi fiók" – egyéni fióktípus
Androidon a Microsoft Authentication Broker a Microsoft Authenticator, Intune Céges portál és Windows-kapcsolat alkalmazások részét képező összetevő.
Az alábbi ábra az alkalmazás, az MSAL és a Microsoft hitelesítési közvetítői közötti kapcsolatot mutatja be.
Közvetítőt üzemeltető alkalmazások telepítése
A közvetítői üzemeltetésű alkalmazásokat az eszköz tulajdonosa bármikor telepítheti az app store-ból (általában a Google Play Áruházból). Egyes API-kat (erőforrásokat) azonban feltételes hozzáférési szabályzatok védik, amelyekhez az eszközöknek a következőknek kell lenniük:
- Regisztrált (munkahelyhez csatlakozott) és/vagy
- Regisztrálva Eszközkezelés vagy
- Regisztrálva az Intune App Protectionben
Ha a fent említett követelményekkel rendelkező eszközre még nincs telepítve közvetítőalkalmazás, az MSAL arra utasítja a felhasználót, hogy telepítsen egyet, amint az alkalmazás interaktív módon próbál jogkivonatot szerezni. Az alkalmazás ezután végigvezeti a felhasználót a szükséges szabályzatnak megfelelő eszközre vonatkozó lépéseken. Ha nincs házirendkövetelmény, vagy a felhasználó Microsoft-fiókkal jelentkezik be, akkor a Broker alkalmazás telepítése nem szükséges.
A közvetítő telepítésének és eltávolításának hatásai
Közvetítő telepítésekor
Ha egy közvetítő telepítve van egy eszközön, az összes további interaktív jogkivonat-kérést (hívás acquireToken()
) a közvetítő kezeli, nem pedig helyileg az MSAL. Az MSAL számára korábban elérhető SSO-állapotok nem érhetők el a közvetítő számára. Ennek eredményeképpen a felhasználónak újra hitelesítenie kell magát, vagy ki kell választania egy fiókot az eszköz által ismert meglévő fiókok listájából.
A közvetítő telepítésekor a felhasználónak nem kell újra bejelentkeznie. Csak akkor, ha a felhasználónak meg kell oldania egy MsalUiRequiredException
akaratot, a következő kérés a közvetítőhöz kerül. MsalUiRequiredException
több okból is eldobható, és interaktív módon kell megoldani. Példa:
- A felhasználó módosította a fiókjához társított jelszót.
- A felhasználó fiókja már nem felel meg a feltételes hozzáférési szabályzatnak.
- A felhasználó visszavonta az alkalmazás fiókjához való társításhoz való hozzájárulását.
Több közvetítő – Ha több közvetítő van telepítve egy eszközön, az MSAL önmagában azonosítja az aktív közvetítőt a hitelesítési folyamat befejezéséhez
Közvetítő eltávolításakor
Ha csak egy közvetítői üzemeltetési alkalmazás van telepítve, és el lett távolítva, akkor a felhasználónak újra be kell jelentkeznie. Az aktív közvetítő eltávolítása eltávolítja a fiókot és a kapcsolódó jogkivonatokat az eszközről.
Ha a Microsoft Authenticatort, Intune Céges portál vagy Windows-kapcsolat eltávolítják, előfordulhat, hogy a felhasználót újra be kell jelentkeznie.
Integrálás közvetítővel
Átirányítási URI létrehozása közvetítőhöz
Tipp.
A cikkben szereplő lépések a portáltól függően kissé eltérhetnek.
Regisztrálnia kell egy átirányítási URI-t, amely kompatibilis a közvetítővel. A közvetítő átirányítási URI-jának tartalmaznia kell az alkalmazás csomagnevét és az alkalmazás aláírásának Base64-kódolású megjelenítését.
Az átirányítási URI formátuma a következő: msauth://<yourpackagename>/<base64urlencodedsignature>
A keytool használatával base64 kódolású aláírási kivonatot hozhat létre az alkalmazás aláírási kulcsainak használatával, majd létrehozhatja az átirányítási URI-t ezzel a kivonattal.
Linux és 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
Miután kulcstoollal létrehozott egy aláírási kivonatot, az Azure Portalon hozza létre az átirányítási URI-t:
- Jelentkezzen be a Microsoft Entra felügyeleti központba legalább felhőalkalmazás-rendszergazdaként.
- Ha több bérlőhöz is hozzáfér, a felső menü Beállítások ikonjával váltson arra a bérlőre, amely tartalmazza az alkalmazásregisztrációt a Könyvtárak + előfizetések menüből.
- Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk.
- Válassza ki az alkalmazást, majd válassza a Hitelesítés>hozzáadása platform>androidos verzióját.
- A megnyíló Android-alkalmazás konfigurálása panelen adja meg a korábban létrehozott aláírási kivonatot és a csomag nevét.
- Válassza a Konfigurálás gombot.
Az átirányítási URI létrejön Önnek, és megjelenik az Android konfigurációs panel Átirányítás URI mezőjében.
Az alkalmazás aláírásáról további információt az Alkalmazás aláírása az Android Studio felhasználói útmutatójában talál.
Az MSAL konfigurálása közvetítő használatára
Ahhoz, hogy közvetítőt használjon az alkalmazásban, igazolnia kell, hogy konfigurálta a közvetítő átirányítását. Adja meg például a közvetítő által engedélyezett átirányítási URI-t , és jelezze, hogy regisztrálta azt az MSAL-konfigurációs fájlban a következő beállításokkal:
"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true
Közvetítővel kapcsolatos kivételek
Az MSAL kétféleképpen kommunikál a közvetítővel:
- Közvetítőhöz kötött szolgáltatás
- Android AccountManager
Az MSAL először a közvetítőhöz kötött szolgáltatást használja, mert a szolgáltatás meghívása nem igényel Android-engedélyeket. Ha a kötött szolgáltatáshoz való kötés sikertelen, az MSAL az Android AccountManager API-t használja. Az MSAL csak akkor teszi ezt meg, ha az alkalmazás már megkapta az "READ_CONTACTS"
engedélyt.
Ha hibakódot "BROKER_BIND_FAILURE"
kapMsalClientException
, két lehetőség közül választhat:
- Kérje meg a felhasználót, hogy tiltsa le a Microsoft Authenticator alkalmazás és a Intune Céges portál energiaoptimalizálását.
- Kérje meg a felhasználót, hogy adja meg az
"READ_CONTACTS"
engedélyt
Közvetítőintegráció ellenőrzése
Lehet, hogy nem lesz azonnal egyértelmű, hogy a közvetítőintegráció működik, de az alábbi lépésekkel ellenőrizheti:
- Android-eszközén küldjön egy kérést a közvetítővel.
- Az Android-eszköz beállításai között keressen egy újonnan létrehozott fiókot, amely megfelel a hitelesített fióknak. A fióknak Munkahelyi típusúnak kell lennie.
Ha meg szeretné ismételni a tesztet, eltávolíthatja a fiókot a beállításokból.
Egyszeri bejelentkezés a rendszerböngészőn keresztül
Az Android-alkalmazások a hitelesítési felhasználói élményhez használhatják a böngészőt vagy a WEBVIEW
Chrome Egyéni lapokat. Ha az alkalmazás nem közvetített hitelesítést használ, az egyszeri bejelentkezés eléréséhez a rendszerböngészőt kell használnia a natív webnézet helyett.
Engedélyezési ügynökök
Az engedélyezési ügynökökre vonatkozó konkrét stratégia kiválasztása fontos, és a testre szabható további funkciókkal kapcsolatos alkalmazásokat jelöli. A "WEBVIEW" használatát javasoljuk. További információ az egyéb konfigurálási értékekről (lásd : Az Android MSAL konfigurációs fájljának ismertetése.
Az MSAL támogatja az engedélyezést egy WEBVIEW
, vagy a rendszerböngésző használatával. Az alábbi képen látható, hogyan néz ki a WEBVIEW
CustomTabs vagy a CustomTabs nélküli rendszerböngésző használatával:
Egyszeri bejelentkezés következményei
Ha az alkalmazás anélkül használ WEBVIEW
stratégiát, hogy a közvetítő hitelesítéssel integrálva lenne az alkalmazásba, a felhasználók nem használhatnak egyetlen bejelentkezési felületet sem az eszközön, sem a natív alkalmazások és webalkalmazások között.
Az alkalmazások integrálhatók az MSAL-jal az BROWSER
engedélyezéshez. A WEBVIEW-val ellentétben az alapértelmezett rendszerböngészővel meg kell osztania egy cookie-jart, BROWSER
amely kevesebb bejelentkezést tesz lehetővé az egyéni lapokkal integrált webes vagy más natív alkalmazásokkal.
Ha az alkalmazás MSAL-t használ egy olyan közvetítővel, mint a Microsoft Authenticator, Intune Céges portál vagy Windows-kapcsolat, akkor a felhasználók SSO-élményt kaphatnak az alkalmazások között, ha aktív bejelentkezéssel rendelkeznek az egyik alkalmazással.
Feljegyzés
A közvetítővel rendelkező MSAL a WebView-t használja, és egyszeri bejelentkezést (SSO) biztosít az MSAL-kódtárat használó és a közvetített hitelesítésben részt vevő alkalmazások számára. A közvetítőtől származó egyszeri bejelentkezés állapota nem terjed ki az MSAL-t nem használó egyéb alkalmazásokra.
WebView
Az alkalmazáson belüli WebView használatához tegye a következő sort az MSAL-nak átadott alkalmazáskonfigurációs JSON-fájlba:
"authorization_user_agent" : "WEBVIEW"
Az alkalmazáson WEBVIEW
belüli használat során a felhasználó közvetlenül az alkalmazásba jelentkezik be. A jogkivonatok az alkalmazás tesztkörnyezetében vannak tárolva, és nem érhetők el az alkalmazás cookie-jarján kívül. Ennek eredményeképpen a felhasználó csak akkor használhat egyszeri bejelentkezést az alkalmazásokban, ha az alkalmazások integrálva vannak a Microsoft Authenticator alkalmazással, Intune Céges portál vagy Windows-kapcsolat.
Azonban lehetővé teszi a WEBVIEW
bejelentkezési felhasználói felület megjelenésének és megjelenésének testreszabását. Erről a testreszabásról további információt az Android WebViewsban talál.
Böngésző
A WEBVIEW használatát javasoljuk, de lehetőséget biztosítunk a böngésző és az egyéni lapstratégia használatára. Ezt a stratégiát az alábbi JSON-konfigurációval jelezheti az egyéni konfigurációs fájlban:
"authorization_user_agent" : "BROWSER"
Ezzel a megközelítéssel SSO-élményt biztosíthat az eszköz böngészőjén keresztül. Az MSAL egy megosztott cookie-jart használ, amely lehetővé teszi, hogy más natív alkalmazások vagy webalkalmazások SSO-t érjenek el az eszközön az MSAL által beállított tartós munkamenet-cookie használatával.
Böngészőválasztás heurisztikus
Mivel az MSAL nem tudja megadni a pontos böngészőcsomagot, amelyet az Android-telefonok széles skáláján használhat, az MSAL egy olyan böngészőválasztási heurisztikus megoldást implementál, amely a legjobb eszközközi egyszeri bejelentkezést próbálja biztosítani.
Az MSAL elsősorban az alapértelmezett böngészőt kéri le a csomagkezelőből, és ellenőrzi, hogy szerepel-e a biztonságos böngészők tesztelt listájában. Ha nem, akkor az MSAL a webnézet használatára támaszkodik ahelyett, hogy egy másik, nem alapértelmezett böngészőt indít a biztonságos listából. Az alapértelmezett böngésző attól függetlenül van kiválasztva, hogy támogatja-e az egyéni lapokat. Ha a böngésző támogatja az egyéni lapokat, az MSAL elindítja az Egyéni lapot. Az egyéni lapok megjelenése közelebb áll az alkalmazáson WebView
belülihez, és lehetővé teszi a felhasználói felület alapszintű testreszabását. További információért tekintse meg az Android egyéni lapjait.
Ha az eszközön nincsenek böngészőcsomagok, az MSAL az alkalmazáson WebView
belüli csomagot használja. Ha az eszköz alapértelmezett beállítása nem változik, minden bejelentkezéshez ugyanazt a böngészőt kell elindítani az egyszeri bejelentkezés biztosítása érdekében.
Tesztelt böngészők
A következő böngészőket teszteltük, hogy helyesen átirányítsák-e őket a "redirect_uri"
konfigurációs fájlban megadott helyre:
Eszköz | Beépített böngésző | Chrome | Opera | Microsoft Edge | UC böngésző | Firefox |
---|---|---|---|---|---|---|
Nexus 4 (API 17) | hágó | hágó | nem alkalmazható | nem alkalmazható | nem alkalmazható | nem alkalmazható |
Samsung S7 (API 25) | pass1 | hágó | hágó | hágó | megbukik | hágó |
Vivo (API 26) | hágó | hágó | hágó | hágó | hágó | megbukik |
Pixel 2 (API 26) | hágó | hágó | hágó | hágó | megbukik | hágó |
Oppo | hágó | nem alkalmazható2 | nem alkalmazható | nem alkalmazható | nem alkalmazható | nem alkalmazható |
OnePlus (API 25) | hágó | hágó | hágó | hágó | megbukik | hágó |
Nexus (API 28) | hágó | hágó | hágó | hágó | megbukik | hágó |
MI | hágó | hágó | hágó | hágó | megbukik | hágó |
1A Samsung beépített böngészője a Samsung Internet.
2Az alapértelmezett böngésző nem módosítható az Oppo eszközbeállításán belül.
Következő lépések
Az Android-eszközök megosztott eszközmódja lehetővé teszi egy Android-eszköz konfigurálását, hogy több alkalmazott is könnyen megoszthassa azt.
A közvetítőalkalmazásokkal kapcsolatos további információkért látogasson el a következő oldalakra: