Włącz logowanie jednokrotne między aplikacjami w systemie Android za pomocą biblioteki MSAL
Logowanie jednokrotne (SSO) umożliwia użytkownikom wprowadzanie poświadczeń tylko raz i automatyczne działanie tych poświadczeń w aplikacjach. Zwiększa to środowisko użytkownika i zwiększa bezpieczeństwo, zmniejszając liczbę haseł, którymi użytkownicy muszą zarządzać, obniżając ryzyko zmęczenia haseł i skojarzonych luk w zabezpieczeniach.
Platforma tożsamości Microsoft i biblioteka Microsoft Authentication Library (MSAL) ułatwiają włączanie logowania jednokrotnego w pakiecie aplikacji. Włączenie funkcjonalności Brokera umożliwia rozszerzenie SSO dla całego urządzenia.
W tym przewodniku dowiesz się, jak skonfigurować zestawy SDK używane przez aplikację w celu zapewnienia logowania jednokrotnego klientom.
Wymagania wstępne
W ten sposób założono, że wiesz, jak wykonać następujące czynności:
- Skonfiguruj swoją aplikację. Aby uzyskać więcej informacji, zapoznaj się z instrukcjami do tworzenia aplikacji w samouczku systemu Android
- Integrowanie aplikacji z biblioteką MSAL dla systemu Android
Metody logowania SSO
Istnieją dwa sposoby, aby aplikacje korzystające z MSAL na Androida mogły uzyskać jednokrotne logowanie (SSO):
Za pośrednictwem przeglądarki systemowej
Zaleca się korzystanie z aplikacji brokera w celu uzyskania korzyści, takich jak logowanie jednokrotne w całym urządzeniu, zarządzanie kontami i dostęp warunkowy. Wymaga to jednak, aby użytkownicy pobierali dodatkowe aplikacje.
SSO przez brokerowane uwierzytelnianie
Zalecamy korzystanie z jednego z brokerów uwierzytelniania firmy Microsoft w celu uczestnictwa w logowaniu jednokrotnym w całym urządzeniu i spełnienia organizacyjnych zasad dostępu warunkowego. Integracja z brokerem zapewnia następujące korzyści:
- Jednokrotne logowanie urządzenia
- Dostęp warunkowy dla:
- Intune App Protection
- Rejestracja urządzenia (Dołączanie do miejsca pracy)
- Zarządzanie urządzeniami przenośnymi
- Zarządzanie kontami w całym urządzeniu
- za pomocą menedżera konta systemu Android i ustawień konta
- "Konto służbowe" — niestandardowy typ konta
W systemie Android broker uwierzytelniania firmy Microsoft jest składnikiem dołączonym do aplikacji Microsoft Authenticator, Intune — Portal firmy i Łącze do Windows.
Na poniższym diagramie przedstawiono relację między Twoją aplikacją, biblioteką MSAL (Microsoft Authentication Library) a brokerami uwierzytelniania firmy Microsoft.
Instalowanie aplikacji hostujących brokera
Aplikacje hostingu brokera mogą być instalowane przez właściciela urządzenia ze sklepu z aplikacjami (zazwyczaj Sklep Google Play) w dowolnym momencie. Jednak niektóre interfejsy API (zasoby) są chronione przez zasady dostępu warunkowego, które wymagają, aby urządzenia:
- Zarejestrowane (przyłączone do miejsca pracy) i/lub
- Zapisane do zarządzania urządzeniami lub
- Zarejestrowane w usłudze Intune App Protection
Jeśli urządzenie z wyżej wymienionymi wymaganiami nie ma jeszcze zainstalowanej aplikacji brokera, biblioteka MSAL nakazuje użytkownikowi zainstalowanie go natychmiast po próbie interaktywnego pobrania tokenu. Następnie aplikacja przeprowadzi użytkownika przez kroki, aby urządzenie było zgodne z wymaganymi zasadami. Jeśli nie ma wymagania dotyczącego zasad lub użytkownik loguje się przy użyciu konta Microsoft, instalacja aplikacji brokera nie jest wymagana.
Efekty instalowania i odinstalowywania brokera
Po zainstalowaniu brokera
Po zainstalowaniu brokera na urządzeniu wszystkie kolejne żądania tokenu interakcyjnego (wywołania do acquireToken()
) są obsługiwane przez brokera, a nie lokalnie przez MSAL. Żaden stan SSO, który wcześniej był dostępny dla MSAL, nie jest dostępny dla brokera. W związku z tym użytkownik musi ponownie uwierzytelnić się lub wybrać konto z istniejącej listy kont znanych urządzeniu.
Zainstalowanie brokera nie wymaga ponownego zalogowania się użytkownika. Tylko wtedy, gdy użytkownik musi rozwiązać MsalUiRequiredException
problem, następne żądanie zostanie skierowane do brokera.
MsalUiRequiredException
może wystąpić z kilku powodów i należy rozwiązać interaktywnie. Na przykład:
- Użytkownik zmienił hasło skojarzone z kontem.
- Konto użytkownika nie spełnia już zasad dostępu warunkowego.
- Użytkownik odwołał swoją zgodę na skojarzenie aplikacji z kontem.
Wiele brokerów — jeśli na urządzeniu jest zainstalowanych wiele brokerów, MSAL zidentyfikuje aktywnego brokera samodzielnie w celu dokończenia procesu uwierzytelniania
Po odinstalowaniu brokera
Jeśli jest zainstalowana tylko jedna aplikacja hostingowa brokera i zostanie usunięta, użytkownik musi zalogować się ponownie. Odinstalowanie aktywnego brokera spowoduje usunięcie konta i skojarzonych tokenów z urządzenia.
Jeśli Microsoft Authenticator, Intune Portal Firmy lub Link do Windows zostanie odinstalowany, użytkownik może zostać poproszony o ponowne zalogowanie.
Integrowanie z brokerem
Generowanie identyfikatora URI przekierowania dla brokera
Musisz zarejestrować identyfikator URI przekierowania zgodny z brokerem. Identyfikator URI przekierowania dla brokera powinien zawierać nazwę pakietu aplikacji i zakodowaną w formacie Base64 reprezentację podpisu aplikacji.
Format identyfikatora URI przekierowania to: msauth://<yourpackagename>/<base64urlencodedsignature>
Za pomocą narzędzia keytool można wygenerować hash podpisu zakodowany w formacie Base64 przy użyciu kluczy podpisywania aplikacji, a następnie wykorzystać ten hash do wygenerowania identyfikatora URI przekierowania.
Linux i 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 wygenerowaniu skrótu podpisu za pomocą narzędzia keytool, użyj portalu Azure, aby wygenerować adres URI przekierowania.
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji w chmurze.
- Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy zawierającej rejestrację aplikacji z menu Katalogi i subskrypcje.
- Przejdź do Tożsamość>Aplikacje>Rejestracje aplikacji.
- Wybierz aplikację, a następnie wybierz Uwierzytelnianie>Dodaj platformę>Android.
- W otwartym oknie Konfiguracja aplikacji Android wprowadź wygenerowany wcześniej skrót podpisu oraz nazwę pakietu.
- Wybierz przycisk Konfiguruj.
Identyfikator URI przekierowania jest generowany dla Ciebie i jest wyświetlany w polu Redirect URI w okienku konfiguracji Androida.
Aby uzyskać więcej informacji na temat podpisywania aplikacji, zobacz Podpisywanie aplikacji w podręczniku użytkownika programu Android Studio.
Konfigurowanie biblioteki MSAL do korzystania z brokera
Aby użyć brokera w aplikacji, musisz potwierdzić, że skonfigurowano przekierowanie brokera. Na przykład, uwzględnij zarówno identyfikator URI przekierowania z włączoną obsługą brokera, jak i wskaż, że został on zarejestrowany, poprzez uwzględnienie następujących ustawień w pliku konfiguracji biblioteki MSAL.
"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true
Wyjątki związane z brokerem
MSAL komunikuje się z brokerem na dwa sposoby:
- Usługa powiązana z brokerem
- Menedżer konta systemu Android
MSAL najpierw korzysta z usługi związanej z brokerem, ponieważ korzystanie z tej usługi nie wymaga żadnych uprawnień na Androidzie. Jeśli powiązanie z powiązaną usługą zakończy się niepowodzeniem, biblioteka MSAL używa interfejsu API AccountManager systemu Android. Biblioteka MSAL robi to tylko wtedy, gdy aplikacja już otrzymała "READ_CONTACTS"
uprawnienie.
Jeśli otrzymasz MsalClientException
z kodem błędu "BROKER_BIND_FAILURE"
, dostępne są dwie opcje:
- Poproś użytkownika o wyłączenie optymalizacji zużycia energii dla aplikacji Microsoft Authenticator i Intune — Portal firmy.
- Poproś użytkownika o przyznanie
"READ_CONTACTS"
uprawnienia
Weryfikowanie integracji brokera
Może nie być od razu jasne, że integracja brokera działa, ale możesz użyć następujących kroków, aby sprawdzić:
- Na urządzeniu z systemem Android wypełnij żądanie przy użyciu brokera.
- W ustawieniach na urządzeniu z systemem Android wyszukaj nowo utworzone konto odpowiadające uwierzytelnionemu kontu. Konto powinno mieć typ Konto służbowe.
Jeśli chcesz powtórzyć test, możesz usunąć konto z ustawień.
Logowanie jednokrotne za pośrednictwem przeglądarki systemowej
Aplikacje dla systemu Android mają możliwość korzystania z WEBVIEW
, przeglądarki systemowej lub Chrome Custom Tabs do uwierzytelniania użytkowników. Jeśli aplikacja nie korzysta z uwierzytelniania obsługiwanego przez brokera, musi używać przeglądarki systemowej, a nie natywnego widoku internetowego w celu uzyskania logowania jednokrotnego.
Agenci autoryzacji
Wybór konkretnej strategii dla agentów autoryzacji jest ważny i reprezentuje dodatkowe funkcje, które można dostosować. Zalecamy użycie "WEBVIEW". Aby dowiedzieć się więcej o innych wartościach konfiguracji (zobacz Zrozum plik konfiguracyjny Android MSAL.
Biblioteka MSAL obsługuje autoryzację za pomocą WEBVIEW
lub przeglądarki systemowej. Na poniższej ilustracji pokazano, jak wygląda to przy użyciu WEBVIEW
przeglądarki systemowej z kartami niestandardowymi lub bez kart niestandardowych.
Implikacje związane z systemem logowania jednokrotnego
Jeśli aplikacja korzysta ze strategii WEBVIEW
bez integracji z uwierzytelnianiem obsługiwanym przez brokera, użytkownicy nie będą mieli doświadczenia jednokrotnego logowania na urządzeniu ani między aplikacjami natywnymi i aplikacjami internetowymi.
Aplikacje można zintegrować z biblioteką MSAL, aby użyć BROWSER
do autoryzacji. W odróżnieniu od WEBVIEW, BROWSER
dzieli plik CookieJar z domyślną przeglądarką systemową, redukując liczbę logowań do internetu albo innych aplikacji natywnych zintegrowanych z Kartami Niestandardowymi.
Jeśli aplikacja używa biblioteki MSAL z brokerem, takim jak Microsoft Authenticator, Intune Company Portal lub Połączenie z Windows, użytkownicy mogą mieć doświadczenie jednokrotnego logowania (SSO) w różnych aplikacjach, jeśli są aktywnie zalogowani się w jednej z aplikacji.
Uwaga
Biblioteka MSAL z brokerem wykorzystuje usługę WebView i zapewnia jednokrotne logowanie (SSO) dla wszystkich aplikacji, które korzystają z MSAL i uczestniczą w uwierzytelnieniu obsługiwanym przez brokera. Stan jednokrotnego logowania z brokera nie jest rozszerzany na inne aplikacje, które nie używają biblioteki MSAL.
WebView
Aby użyć wbudowanego elementu WebView w aplikacji, umieść następujący wiersz w pliku JSON konfiguracji aplikacji przekazywanym do biblioteki MSAL.
"authorization_user_agent" : "WEBVIEW"
W przypadku korzystania z aplikacji WEBVIEW
użytkownik loguje się bezpośrednio do aplikacji. Tokeny są przechowywane w piaskownicy aplikacji i nie są dostępne poza cookie jar aplikacji. W związku z tym użytkownik nie może mieć jednokrotnego logowania w aplikacjach, chyba że aplikacje integrują się z aplikacją Microsoft Authenticator, Intune, Portalem firmy lub Link to Windows.
WEBVIEW
Jednak zapewnia możliwość dostosowywania wyglądu i działania interfejsu użytkownika logowania. Aby uzyskać więcej informacji na temat tego dostosowywania, zobacz Android WebViews (Android WebViews ).
Przeglądarka
Zalecamy korzystanie z widoku WEBVIEW, ale udostępniamy opcję użycia przeglądarki i niestandardowej strategii tabulatorów . Tę strategię można jawnie wskazać przy użyciu następującej konfiguracji JSON w pliku konfiguracji niestandardowej:
"authorization_user_agent" : "BROWSER"
Użyj tego podejścia, aby zapewnić doświadczenie logowania jednokrotnego za pośrednictwem przeglądarki urządzenia. Biblioteka MSAL używa udostępnionego pliku cookie jar, który umożliwia innym aplikacjom natywnym lub aplikacjom internetowym uzyskanie logowania jednokrotnego na urządzeniu przy użyciu utrwalanego pliku cookie sesji ustawionego przez bibliotekę MSAL.
Heurystyczny wybór przeglądarki
Ponieważ biblioteka MSAL nie może określić dokładnego pakietu przeglądarki do użycia na każdej z szerokiej gamy telefonów z systemem Android, biblioteka MSAL implementuje heurystyczny wybór przeglądarki, który próbuje zapewnić najlepsze logowanie jednokrotne między urządzeniami.
Biblioteka MSAL pobiera przede wszystkim domyślną przeglądarkę z menedżera pakietów i sprawdza, czy znajduje się na przetestowanej liście bezpiecznych przeglądarek. Jeśli tak nie jest, biblioteka MSAL ponownie korzysta z WebView, zamiast uruchamiać innej przeglądarki niż domyślna z listy bezpiecznych. Domyślna przeglądarka jest wybierana niezależnie od tego, czy obsługuje karty niestandardowe. Jeśli przeglądarka obsługuje karty niestandardowe, biblioteka MSAL uruchamia kartę niestandardową. Karty niestandardowe mają wygląd i odczucia bardziej zbliżone do aplikacji WebView
i umożliwiają dostosowywanie podstawowego interfejsu użytkownika (UI). Aby dowiedzieć się więcej, zobacz Niestandardowe karty w systemie Android .
Jeśli na urządzeniu nie ma pakietów przeglądarki, MSAL używa przeglądarki wewnątrz aplikacji WebView
. Jeśli ustawienie domyślne urządzenia nie zostanie zmienione, dla każdego logowania należy uruchomić tę samą przeglądarkę, aby zapewnić środowisko logowania jednokrotnego.
Przetestowane przeglądarki
Następujące przeglądarki zostały przetestowane, aby sprawdzić, czy prawidłowo przekierowują do określonego "redirect_uri"
w pliku konfiguracji:
Urządzenie | Wbudowana przeglądarka | Chrome | Opera | Microsoft Edge | Przeglądarka UC | Firefox |
---|---|---|---|---|---|---|
Nexus 4 (interfejs API 17) | przechodzić | przechodzić | nie dotyczy | nie dotyczy | nie dotyczy | nie dotyczy |
Samsung S7 (interfejs API 25) | pass1 | przechodzić | przechodzić | przejść | zawieść | przejść |
Vivo (interfejs API 26) | przechodzić | przechodzić | przechodzić | przechodzić | przechodzić | zawieść |
Pixel 2 (API 26) | przechodzić | przechodzić | przechodzić | przechodzić | zawieść | przechodzić |
Oppo | przepustka | nie dotyczy2 | nie dotyczy | nie dotyczy | nie dotyczy | nie dotyczy |
OnePlus (interfejs API 25) | przechodzić | przepuścić | przejść | przechodzić | zawieść | przechodzić |
Nexus (interfejs API 28) | przechodzić | przechodzić | przechodzić | przechodzić | zawieść | przechodzić |
MI | przechodzić | przechodzić | przechodzić | przechodzić | zawieść | przechodzić |
Wbudowana przeglądarka firmy Samsung to Samsung Internet.
2Nie można zmienić domyślnej przeglądarki wewnątrz ustawienia urządzenia Oppo.
Następne kroki
Tryb udostępnionego urządzenia dla urządzeń z systemem Android umożliwia skonfigurowanie urządzenia z systemem Android, dzięki czemu może być łatwo współużytkowany przez wielu pracowników.
Aby uzyskać więcej informacji na temat aplikacji brokera, przejdź do następujących stron: