Notatka
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.
Przeglądarka systemowa
MSAL umożliwia interaktywne uzyskiwanie tokenów w aplikacjach klienckich publicznych za pomocą przeglądarki systemowej. Domyślnie MSAL uruchomi przeglądarkę systemową jako oddzielny proces, skieruje użytkownika pod adres URL autoryzacji i przechwyci odpowiedź uwierzytelniającą. To zachowanie można dostosować, na przykład sposób otwierania okna przeglądarki i tego, co użytkownik widzi po autoryzacji, konfigurując SystemBrowserOptions parametr żądania interakcyjnego.
Biblioteka MSAL nasłuchuje http://localhost:port i przechwytuje kod wysyłany przez urząd po zakończeniu uwierzytelniania użytkownika. MSAL nie może wykryć, czy użytkownik opuszcza stronę, czy po prostu zamyka przeglądarkę. Aplikacje korzystające z tej techniki są zachęcane do definiowania limitu czasu. Zalecamy ustawienie limitu czasu wynoszącego co najmniej kilka minut, aby uwzględnić przypadki, w których użytkownik zostanie poproszony o zmianę hasła lub przeprowadzenie uwierzytelniania 2FA.
Jak używać domyślnej przeglądarki systemu operacyjnego
Podczas rejestracji aplikacji skonfiguruj http://localhost jako identyfikator URI przekierowania. W przypadku usługi B2C należy zarejestrować określony port http://locahost:port.
PublicClientApplication publicClientApplication =
PublicClientApplication
.builder(CLIENT_ID)
.authority(AUTHORITY)
.build();
InteractiveRequestParameters parameters = InteractiveRequestParameters
.builder(new URI("http://localhost"))
.scopes(scope)
.build();
IAuthenticationResult result = publicClientApplication.acquireToken(parameters).join();
Dostosowywanie sposobu korzystania
Biblioteka MSAL próbuje otworzyć domyślną przeglądarkę systemową, jeśli jest dostępna, na komputerze użytkownika. Tę logikę można dostosować, zapewniając własną implementację OpenBrowserAction
- Zaimplementuj
OpenBrowserAction - Przekaż własną akcję do
SystemBrowserOptions
class CustomOpenBrowserAction implements OpenBrowserAction {
@Override
public void openBrowser(URL url){
//Custom logic to open URL
}
}
SystemBrowserOptions options =
SystemBrowserOptions
.builder()
.openBrowserAction(new CustomOpenBrowserAction())
.build();
Możesz również dostosować komunikat HTML widoczny po uwierzytelnieniu, a nawet po podaniu adresu URL, do którego użytkownik ma zostać przekierowany po uwierzytelnieniu.
SystemBrowserOptions options =
SystemBrowserOptions
.builder()
.htmlMessageSuccess("CUSTOM_HTML_HERE")
.htmlMessageError("CUSTOM_HTML_HERE")
.build();
// OR
SystemBrowserOptions options =
SystemBrowserOptions
.builder()
.browserRedirectSuccess(new URI("http://localhost:port"))
.browserRedirectError(new URI ("http://localhost:port"))
.build();