Supportare la riautenticazione automatica in FedCM

Chrome supporta la riautenticazione automatica in FedCM

L'API FedCM (Federated Credential Management) è un'API web per la federazione delle identità incentrata sulla tutela della privacy. Con la federazione delle identità, una parte soggetta a limitazioni si affida a 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 la parte soggetta a limitazioni e l'IdP scambiano informazioni. Informa l'utente sulle informazioni e sui livelli di privilegio che vengono condivisi e previene gli abusi involontari. FedCM è disponibile in Chrome dalla versione 108.

In Chrome 115, FedCM sta ricevendo supporto per la riautenticazione automatica che migliora le esperienze utente e consente una riautenticazione più semplice alla RP dopo il consenso iniziale.

Riautenticazione automatica

Attualmente, dopo che un utente ha creato un account federato su una parte soggetta a limitazioni 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à riconfermare in modo esplicito e manuale di nuovo l'autenticazione e procedere con il flusso di accesso.

Sebbene l'esplicita esperienza utente abbia senso prima che l'utente crei l'account federato per impedire il monitoraggio (che è uno degli obiettivi principali di FedCM), diventa inutilmente ingombrante una volta che l'utente l'ha elaborata una volta: dopo che l'utente ha concesso l'autorizzazione per consentire la comunicazione tra la parte soggetta a limitazioni e l'IdP, non esiste alcun vantaggio in termini di privacy o sicurezza per l'applicazione di un'altra conferma esplicita dell'utente per qualcosa che ha già confermato in precedenza. Ecco perché stiamo introducendo un'UX più semplice che i RP possono scegliere per gli utenti di ritorno.

La riautenticazione automatica di FedCM ("riautenticazione automatica" in breve) consente agli utenti di riautenticarsi automaticamente quando tornano dopo l'autenticazione iniziale mediante FedCM. Per "autenticazione iniziale" si intende che l'utente crea un account o accede al sito web della parte soggetta a limitazioni toccando per la prima volta il pulsante "Continua come..." nella finestra di dialogo di accesso di FedCM sulla stessa istanza del browser.

Una finestra di dialogo che l'utente tocca per creare un account o per autenticarsi.
Una finestra di dialogo su cui l'utente tocca per creare un account o per autenticarsi.

Scegli un'opzione per la riautenticazione automatica

Anche se stiamo introducendo la riautenticazione automatica per migliorare l'esperienza utente e allinearsi alle specifiche, l'esperienza utente predefinita sarà diversa senza alcuna modifica al codice. Quando è disponibile la riautenticazione automatica, il browser cambia il suo 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, funziona allo stesso modo di PasswordCredential e FederatedCredential ed è parzialmente supportato anche da PublicKeyCredential. La proprietà accetta i seguenti quattro valori:

  • 'required': richiede sempre una mediazione per procedere, ad esempio facendo clic sul pulsante "Continua" nell'interfaccia utente. Scegli questa opzione se gli utenti devono concedere esplicitamente l'autorizzazione ogni volta che devono essere autenticati.
  • 'optional'(valore predefinito): viene effettuata una nuova autorizzazione automatica se possibile; in caso contrario è necessaria una mediazione. Ti consigliamo di scegliere questa opzione nella pagina di accesso.
  • 'silent': viene effettuata una nuova autorizzazione automatica se possibile. In caso contrario, viene annullata automaticamente l'autenticazione senza richiedere una mediazione. Ti consigliamo di scegliere questa opzione su pagine diverse dalla pagina di accesso dedicata, ma in cui vuoi mantenere l'accesso agli utenti, ad esempio una pagina di articolo su un sito web di spedizione o una pagina di articoli su un sito web di notizie.
  • 'conditional': utilizzato per WebAuthn e al momento non disponibile per FedCM.

Con questa chiamata, la riautenticazione automatica avviene alle seguenti condizioni:

  • FedCM è disponibile. Ad esempio, l'utente non ha disattivato FedCM né a livello globale né per la parte soggetta a limitazioni nelle impostazioni.
  • L'utente ha utilizzato un solo account con l'API FedCM per accedere al sito web su questo browser.
  • L'utente abbia eseguito l'accesso all'IdP con quell'account.
  • La nuova autorizzazione non è avvenuta negli ultimi 10 minuti.
  • La parte soggetta a limitazioni non ha chiamato navigator.credentials.preventSilentAccess() dopo l'accesso precedente.

Quando le condizioni di cui sopra sono soddisfatte, viene avviato un tentativo di riautenticazione automatica dell'utente non appena viene richiamato il navigator.credentials.get() di FedCM.

Un utente che esegue nuovamente l'autenticazione automaticamente tramite FedCM.

Applica la mediazione con preventSilentAccess()

La riautenticazione automatica degli utenti subito dopo l'uscita non offre un'esperienza utente molto positiva. Ecco perché FedCM prevede un periodo senza notifiche di 10 minuti dopo una nuova autorizzazione automatica, in modo da evitare questo problema. Ciò significa che la nuova autorizzazione automatica avviene al massimo una volta ogni 10 minuti, a meno che l'utente non acceda di nuovo entro 10 minuti. La parte soggetta a limitazioni deve chiamare navigator.credentials.preventSilentAccess() per richiedere esplicitamente al browser di disattivare la riautenticazione automatica quando un utente esce esplicitamente dalla parte soggetta a limitazioni, ad esempio facendo clic su un pulsante di uscita.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

Gli utenti possono disattivare la riautenticazione automatica nelle impostazioni

Gli utenti possono disattivare la riautenticazione automatica dal menu delle impostazioni:

  • Su Chrome per computer, vai a chrome://password-manager/settings > Accedi automaticamente.
  • Su Android Chrome, aprite Impostazioni > Gestore delle password > toccate l'icona a forma di ingranaggio nell'angolo in alto a destra > Accesso automatico.

Disattivando l'opzione, l'utente può disattivare del tutto il comportamento di riautenticazione automatica. Questa impostazione viene archiviata e sincronizzata su più dispositivi, se l'utente ha eseguito l'accesso a un Account Google sull'istanza di Chrome e la sincronizzazione è abilitata.

Condividi feedback

Se stai testando FedCM, puoi condividere il tuo feedback o eventuali problemi riscontrati all'indirizzo crbug.com in un componente "Blink>Identity>FedCM".

Foto di Noah Samuel Franz su Unsplash