Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 SSO w pakiecie aplikacji. Włączając funkcję brokera, możesz rozszerzyć funkcję jednokrotnego logowania (SSO) na całe urządzenie.
Z tego przewodnika dowiesz się, jak skonfigurować zestawy SDK (Software Development Kit) używane przez aplikację do udostępniania 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 (Ochrona aplikacji Intune)
- 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 instruuje użytkownika, aby ją zainstalować, gdy tylko aplikacja spróbuje interaktywnie pobrać token. 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 wielu brokerów, biblioteka MSAL identyfikuje aktywny broker automatycznie w celu ukoń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
Wygeneruj URI przekierowania dla brokera
Musisz zarejestrować identyfikator URI przekierowania zgodny z brokerem. Identyfikator URI przekierowania dla brokera powinien zawierać nazwę pakietu Twojej aplikacji oraz reprezentację podpisu aplikacji zakodowaną w Base64.
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 w swojej aplikacji, użytkownicy nie będą mieli środowiska logowania jednokrotnego na całym urządzeniu ani między aplikacjami natywnymi a 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 korzysta z elementu WebView i zapewnia SSO dla wszystkich aplikacji korzystających z tej biblioteki i uczestniczących w uwierzytelnieniu obsługiwanym przez brokera. Stan SSO z brokera nie jest udostępniany innym aplikacjom, które nie korzystają z 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 korzystać z logowania jednokrotnego w aplikacjach, chyba że aplikacje integrują się z aplikacją Microsoft Authenticator, portalem firmy usługi Intune lub linkiem do systemu Windows.
WEBVIEW
Jednak zapewnia możliwość dostosowywania wyglądu i działania interfejsu użytkownika logowania. Zobacz Android WebViews, aby dowiedzieć się więcej na temat dostosowywania.
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 wspólnego zbioru plików cookie, co umożliwia innym aplikacjom natywnym lub aplikacjom internetowym uzyskanie jednokrotnego logowania na urządzeniu za pomocą utrwalonego 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.
MSAL zazwyczaj pobiera 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). Zobacz Niestandardowe karty w systemie Android, aby dowiedzieć się więcej.
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 (API 17) | przechodzić | przejść | nie dotyczy | nie dotyczy | nie dotyczy | nie dotyczy |
Samsung S7 (API 25) | pass1 | przechodzić | przejść | przechodzić | zawieść | przechodzić |
Vivo (interfejs API 26) | przechodzić | przechodzić | przechodzić | przechodzić | przechodzić | zawieść |
Pixel 2 (API 26) | przejść | przepustka | przechodzić | przechodzić | zawieść | przejść |
Oppo | przechodzić | nie dotyczy2 | nie dotyczy | nie dotyczy | nie dotyczy | nie dotyczy |
OnePlus (API 25) | przechodzić | przejść | przechodzić | przechodzić | zawieść | przechodzić |
Nexus (wersja API 28) | przechodzić | przechodzić | przechodzić | przechodzić | niepowodzenie | przejść |
MI | przechodzić | przechodzić | przejść | 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, zobacz: