Chrome supporta la ri-autenticazione automatica in FedCM
L'API Federated Credential Management (FedCM) è un'API web per la federazione delle identità nel rispetto della privacy. Con la federazione delle identità, una RP (parte interessata) si basa su un IdP (provider di identità) per fornire all'utente un account senza richiedere un nuovo nome utente e una nuova password.
FedCM consente al browser di comprendere il contesto in cui RP e IdP scambiano informazioni. Informa l'utente sui livelli di informazioni e privilegi condivisi e impedisce abusi involontari. FedCM è disponibile in Chrome dalla versione 108.
In Chrome 115, FedCM supporta la riconferma automatica, che migliora le esperienze utente e consente una riconferma più snella all'RP dopo il consenso iniziale.
Riautenticazione automatica
Attualmente, dopo che un utente ha creato un account federato su un RP con un'IDP tramite l'API FedCM, la volta successiva che visita il sito web deve seguire gli stessi passaggi nell'interfaccia utente. Ciò significa che l'utente dovrà confermare esplicitamente e manualmente di eseguire nuovamente l'autenticazione e procedere con il flusso di accesso.
Sebbene l'esperienza utente esplicita abbia senso prima che l'utente abbia creato l'account federato per impedire il monitoraggio (uno degli obiettivi principali di FedCM), è inutilmente complicata dopo che l'utente l'ha completata una volta: dopo che l'utente ha concesso l'autorizzazione per consentire la comunicazione tra l'RP e l'IdP, non c'è alcun vantaggio in termini di privacy o sicurezza nell'applicazione di un'altra conferma esplicita dell'utente per qualcosa che ha già accettato in precedenza. Ecco perché stiamo introducendo un'esperienza utente più snella che gli RP possono scegliere per i propri utenti di ritorno.
L'autenticazione automatica di FedCM ("auto-reauthn" in breve) consente agli utenti di autenticarsi automaticamente quando rientrano dopo l'autenticazione iniziale utilizzando FedCM. Per "autenticazione iniziale" si intende che l'utente crea un account o accede al sito web del RP toccando il pulsante "Continua come…" nella finestra di dialogo di accesso di FedCM per la prima volta nella stessa istanza del browser.

Scegli un'opzione per l'autenticazione automatica
Stiamo introducendo la riconferma automatica per offrire un'esperienza utente migliore e allinearci alle specifiche, ma l'esperienza utente predefinita sarà diversa senza alcuna modifica al codice. Quando è disponibile la riconferma automatica, il browser cambia il proprio comportamento in base all'opzione selezionata nell'opzione mediation
fornita dagli sviluppatori con navigator.credentials.get()
.
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/fedcm.json",
clientId: "1234",
}],
},
mediation: 'optional', // this is the default
});
mediation
è una proprietà nell'API Credential Management, si comporta allo stesso modo di PasswordCredential e FederatedCredential ed è supportato parzialmente anche da PublicKeyCredential. La proprietà accetta i seguenti quattro valori:
'required'
: per procedere è sempre necessaria una mediazione, ad esempio fare clic sul pulsante "Continua" nell'interfaccia utente. Scegli questa opzione se ti aspetti che gli utenti concedano l'autorizzazione esplicitamente ogni volta che devono essere autenticati.'optional'
(valore predefinito): autenticazione automatica, se possibile, altrimenti richiede una mediazione. Ti consigliamo di scegliere questa opzione nella pagina di accesso.'silent'
: se possibile, esegui la riconferma automatica. In caso contrario, fallisci in silenzio senza richiedere mediazione. Ti consigliamo di scegliere questa opzione nelle pagine diverse dalla pagina di accesso dedicata, ma in cui vuoi mantenere gli utenti connessi, ad esempio la pagina di un articolo su un sito web di notizie o la pagina di un articolo su un sito web di notizie.'conditional'
: utilizzato per WebAuthn e non disponibile per FedCM al momento.
Con questa chiamata, la reautorizzazione automatica avviene alle seguenti condizioni:
- FedCM è disponibile per l'utilizzo. Ad esempio, l'utente non ha disattivato FedCM a livello globale o per l'RP nelle impostazioni.
- L'utente ha utilizzato un solo account con l'API FedCM per accedere al sito web su questo browser.
- L'utente ha eseguito l'accesso all'IdP con quell'account.
- La riconferma automatica non è avvenuta negli ultimi 10 minuti.
- L'RP non ha chiamato
navigator.credentials.preventSilentAccess()
dopo l'accesso precedente.
Quando le condizioni sopra indicate sono soddisfatte, viene avviato un tentativo di autenticazione automatica dell'utente non appena viene invocato il FedCM navigator.credentials.get()
.
Applicare la mediazione con preventSilentAccess()
La riconferma automatica dell'autenticazione degli utenti immediatamente dopo la disconnessione non costituirebbe un'esperienza utente molto positiva. Ecco perché FedCM ha un periodo di attesa di 10 minuti dopo una riconferma automatica per impedire questo comportamento. Ciò significa che la riconferma dell'autenticazione avviene al massimo una volta ogni 10 minuti, a meno che l'utente non acceda nuovamente entro 10 minuti. L'RP deve chiamare navigator.credentials.preventSilentAccess() per richiedere esplicitamente al browser di disattivare la re-autenticazione automatica quando un utente si disconnette dall'RP esplicitamente, ad esempio facendo clic su un pulsante di disconnessione.
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
Gli utenti possono disattivare la riconferma automatica nelle impostazioni
Gli utenti possono disattivare la riconferma automatica dal menu delle impostazioni:
- Su Chrome per computer, vai a
chrome://password-manager/settings
> Accedi automaticamente. - Su Chrome per Android, apri Impostazioni > Gestore delle password > tocca un ingranaggio nell'angolo in alto a destra > Accesso automatico.
Se disattiva l'opzione, l'utente può disattivare del tutto il comportamento di autorizzazione automatica. Questa impostazione viene archiviata e sincronizzata su più dispositivi se l'utente ha eseguito l'accesso a un Account Google nell'istanza di Chrome e la sincronizzazione è attivata.
Condividi feedback
Se stai testando FedCM, puoi condividere il tuo feedback o eventuali problemi riscontrati su crbug.com in un componente "Blink>Identity>FedCM".
Foto di Noah Samuel Franz su Unsplash