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.

Platforma tożsamości Microsoft i biblioteka Microsoft Authentication Library (MSAL) ułatwiają włączanie logowania jednokrotnego we własnym pakiecie aplikacji. Dzięki możliwościom brokera i aplikacjom Authenticator można rozszerzyć logowanie jednokrotne 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:

Metody logowania jednokrotnego

Istnieją dwa sposoby korzystania z biblioteki MSAL dla systemu Android w celu uzyskania logowania jednokrotnego:

  • Za pośrednictwem aplikacji brokera

  • 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 pośrednictwem menedżera konta systemu Android i Ustawienia konta
    • "Konto służbowe" — niestandardowy typ konta

W systemie Android broker uwierzytelniania firmy Microsoft jest składnikiem dołączonym do aplikacji Microsoft Authenticator i Intune — Portal firmy.

Na poniższym diagramie przedstawiono relację między aplikacją, biblioteką MSAL i brokerami uwierzytelniania firmy Microsoft.

Diagram showing how an application relates to MSAL, broker apps, and the Android account manager.

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 nie ma jeszcze zainstalowanej aplikacji brokera, biblioteka MSAL nakazuje użytkownikowi zainstalowanie go natychmiast po próbie interaktywnego pobrania tokenu. Następnie aplikacja będzie musiała prowadzić użytkownika przez kroki, aby urządzenie było zgodne z wymaganymi zasadami.

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 wielu brokerów, najpierw zainstalowany broker jest zawsze aktywnym brokerem. Tylko jeden broker może być aktywny na urządzeniu.

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 Intune — Portal firmy jest zainstalowana i działa jako aktywny broker, a aplikacja Microsoft Authenticator jest również zainstalowana, jeśli Intune — Portal firmy (aktywny broker) zostanie odinstalowany, użytkownik będzie musiał zalogować się ponownie. Po ponownym zalogowaniu aplikacja Microsoft Authenticator staje się aktywnym brokerem.

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:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator aplikacji w chmurze.
  2. 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.
  3. Przejdź do aplikacji tożsamości>> Rejestracje aplikacji.
  4. Wybierz aplikację, a następnie wybierz pozycję Uwierzytelnianie>Dodaj platformę>Android.
  5. W wyświetlonym okienku Konfigurowanie aplikacji systemu Android wprowadź wygenerowany wcześniej skrót Podpisu i nazwę pakietu.
  6. 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

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ć:

  1. Na urządzeniu z systemem Android wypełnij żądanie przy użyciu brokera.
  2. 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 WEBVIEWkart 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ę WEBVIEWprzy użyciu przeglądarki systemu lub . Na poniższej ilustracji pokazano, jak wygląda to przy użyciu WEBVIEWprzeglądarki systemu z kartami niestandardowymi lub bez kolumn niestandardowych:

MSAL login examples

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 elementu 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, takiego jak Microsoft Authenticator lub Intune — Portal firmy, 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 WEBVIEWuż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ą Authenticator lub Portal firmy.

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) Przekazać Przekazać nie dotyczy nie dotyczy nie dotyczy nie dotyczy
Samsung S7 (interfejs API 25) pass1 Przekazać Przekazać Przekazać Nie Przekazać
Vivo (interfejs API 26) Przekazać Przekazać Przekazać Przekazać Przekazać Nie
Piksel 2 (interfejs API 26) Przekazać Przekazać Przekazać Przekazać Nie Przekazać
Oppo Przekazać nie dotyczy2 nie dotyczy nie dotyczy nie dotyczy nie dotyczy
OnePlus (interfejs API 25) Przekazać Przekazać Przekazać Przekazać Nie Przekazać
Nexus (interfejs API 28) Przekazać Przekazać Przekazać Przekazać Nie Przekazać
MI Przekazać Przekazać Przekazać Przekazać Nie Przekazać

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.