Włączanie logowania jednokrotnego między aplikacjami w systemie Android przy użyciu 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 możliwości brokera umożliwia rozszerzenie logowania jednokrotnego na całe urządzenie.
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:
- Aprowizuj aplikację. Aby uzyskać więcej informacji, zobacz instrukcje dotyczące tworzenia aplikacji w samouczku systemu Android
- Integrowanie aplikacji z biblioteką MSAL dla systemu Android
Metody logowania jednokrotnego
Istnieją dwa sposoby korzystania z biblioteki MSAL dla systemu Android w celu uzyskania logowania jednokrotnego:
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.
Logowanie jednokrotne za pośrednictwem uwierzytelniania obsługiwanego przez brokera
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:
- Logowanie jednokrotne urządzenia
- Dostęp warunkowy dla:
- Intune App Protection
- Rejestracja urządzenia (dołączanie w miejscu 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 aplikacją, biblioteką MSAL i 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 (dołączone do miejsca pracy) i/lub
- Zarejestrowane w Zarządzanie 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 bibliotekę MSAL. Żaden stan logowania jednokrotnego wcześniej dostępny dla biblioteki 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 zostać zgłoszony z kilku powodów i należy rozwiązać go 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, biblioteka MSAL zidentyfikuje aktywną brokera samodzielnie, aby ukończyć proces 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 program Microsoft Authenticator, Intune — Portal firmy lub Łącze do Windows zostanie odinstalowany, użytkownik może zostać poproszony o ponowne zalogowanie.
Integrowanie z brokerem
Generowanie identyfikatora URI przekierowania dla brokera
Napiwek
Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.
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ć skrót podpisu zakodowany w formacie Base64 przy użyciu kluczy podpisywania aplikacji, a następnie wygenerować identyfikator URI przekierowania przy użyciu tego skrótu.
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 witryny Azure Portal, aby wygenerować identyfikator 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 aplikacji tożsamości>> Rejestracje aplikacji.
- Wybierz aplikację, a następnie wybierz pozycję Uwierzytelnianie>Dodaj platformę>Android.
- W wyświetlonym okienku Konfigurowanie aplikacji systemu Android wprowadź wygenerowany wcześniej skrót Podpisu i nazwę pakietu.
- Wybierz przycisk Konfiguruj.
Identyfikator URI przekierowania jest generowany dla Ciebie i jest wyświetlany w polu Identyfikator URI przekierowania w okienku konfiguracji systemu Android.
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— i wskaż, że został on zarejestrowany — uwzględniając następujące ustawienia w pliku konfiguracji biblioteki MSAL:
"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true
Wyjątki związane z brokerem
Biblioteka MSAL komunikuje się z brokerem na dwa sposoby:
- Usługa powiązana z brokerem
- Menedżer konta systemu Android
Biblioteka MSAL najpierw używa usługi powiązanej z brokerem, ponieważ wywoływanie tej usługi nie wymaga żadnych uprawnień systemu Android. 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 otrzymała "READ_CONTACTS"
już uprawnienie.
Jeśli zostanie wyświetlony MsalClientException
kod "BROKER_BIND_FAILURE"
błędu , 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
kart niestandardowych przeglądarki lub przeglądarki chrome na potrzeby uwierzytelniania użytkownika. 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 elementu "WEBVIEW". Aby dowiedzieć się więcej o innych wartościach konfguracji (zobacz Opis pliku konfiguracji biblioteki MSAL systemu Android.
Biblioteka MSAL obsługuje autoryzację WEBVIEW
przy użyciu przeglądarki systemu lub . Na poniższej ilustracji pokazano, jak wygląda to przy użyciu WEBVIEW
przeglądarki systemu z kartami niestandardowymi lub bez kolumn niestandardowych:
Implikacje związane z logowaniem jednokrotnym
Jeśli aplikacja korzysta ze strategii bez integracji z uwierzytelnianiem WEBVIEW
obsługiwanym przez brokera w swojej aplikacji, użytkownicy nie będą mieli środowiska logowania jednokrotnego na urządzeniu ani między aplikacjami natywnymi i aplikacjami internetowymi.
Aplikacje można zintegrować z biblioteką MSAL w celu autoryzowania.BROWSER
W przeciwieństwie do elementu WEBVIEW udostępnij BROWSER
plik jar plików cookie domyślnej przeglądarce systemowej, umożliwiając mniej logowania się do internetu lub innych aplikacji natywnych, które zostały zintegrowane z kartami niestandardowymi.
Jeśli aplikacja używa biblioteki MSAL z brokerem, na przykład Microsoft Authenticator, Intune — Portal firmy lub Łącze do Windows, użytkownicy mogą mieć środowisko logowania jednokrotnego w aplikacjach, jeśli mają aktywne logowanie przy użyciu jednej z aplikacji.
Uwaga
Biblioteka MSAL z brokerem korzysta z usługi WebView i zapewnia logowanie jednokrotne (SSO) dla wszystkich aplikacji korzystających z biblioteki MSAL i uczestniczących w uwierzytelnieniu obsługiwanym przez brokera. Stan logowania jednokrotnego z brokera nie jest rozszerzony na inne aplikacje, które nie używają biblioteki MSAL.
WebView
Aby użyć elementu WebView w aplikacji, umieść następujący wiersz w formacie 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 plikiem cookie jar aplikacji. W związku z tym użytkownik nie może mieć środowiska logowania jednokrotnego w aplikacjach, chyba że aplikacje integrują się z aplikacją Microsoft Authenticator, Intune — Portal firmy lub Łącze do 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ć środowisko 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 powraca do korzystania z widoku internetowego, a nie uruchamia innej niż domyślna przeglądarka 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 działanie bliżej aplikacji WebView
i umożliwiają dostosowywanie podstawowego interfejsu użytkownika. Aby dowiedzieć się więcej, zobacz Niestandardowe karty w systemie Android .
Jeśli na urządzeniu nie ma pakietów przeglądarki, biblioteka MSAL używa biblioteki w 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ć | przechodzić | zawieść | przechodzić |
Vivo (interfejs API 26) | przechodzić | przechodzić | przechodzić | przechodzić | przechodzić | zawieść |
Piksel 2 (interfejs API 26) | przechodzić | przechodzić | przechodzić | przechodzić | zawieść | przechodzić |
Oppo | przechodzić | nie dotyczy2 | nie dotyczy | nie dotyczy | nie dotyczy | nie dotyczy |
OnePlus (interfejs API 25) | przechodzić | przechodzić | przechodzić | 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: