Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Browser di sistema
MSAL supporta l'acquisizione interattiva dei token nei client pubblici tramite l'uso del browser di sistema. Per impostazione predefinita, MSAL avvierà il browser di sistema come processo separato, indirizza l'utente all'URL di autorizzazione e intercetta la risposta di autorizzazione. È possibile personalizzare questo comportamento, ad esempio come viene aperta la finestra del browser e ciò che l'utente vede dopo l'autorizzazione, configurando il SystemBrowserOptions parametro di una richiesta interattiva.
MSAL sarà in ascolto su http://localhost:port e intercetterà il codice inviato dal server di autorizzazione quando l'utente avrà completato l'autenticazione. MSAL non è in grado di rilevare se l'utente si sposta o chiude semplicemente il browser. Le app che usano questa tecnica sono incoraggiate a definire un timeout. È consigliabile usare un timeout di almeno alcuni minuti per tenere conto dei casi in cui all'utente viene richiesto di modificare la password o di eseguire 2FA.
Come usare il browser del sistema operativo predefinito
Durante la registrazione dell'app, configurare http://localhost come URI di reindirizzamento. Nel caso di B2C, sarà necessario registrare una porta http://locahost:portspecifica.
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();
Personalizzazione dell'esperienza
MSAL tenta di aprire il browser di sistema predefinito, se disponibile, nel computer degli utenti. È possibile personalizzare questa logica fornendo la propria implementazione di OpenBrowserAction
- Implementare
OpenBrowserAction - Passare un'azione personalizzata a
SystemBrowserOptions
class CustomOpenBrowserAction implements OpenBrowserAction {
@Override
public void openBrowser(URL url){
//Custom logic to open URL
}
}
SystemBrowserOptions options =
SystemBrowserOptions
.builder()
.openBrowserAction(new CustomOpenBrowserAction())
.build();
È anche possibile personalizzare il messaggio HTML visualizzato dall'utente dopo l'autenticazione o anche fornire un URL in cui si vuole che l'utente venga reindirizzato a dopo l'autenticazione.
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();