Aggiornamenti di FedCM: prova dell'origine per la riautenticazione automatica

Presentazione di alcuni aggiornamenti a FedCM, tra cui una nuova prova dell'origine per la riautenticazione automatica.

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 è un'API creata appositamente che consente al browser di comprendere il contesto in cui la parte soggetta a limitazioni e l'IdP scambiano informazioni, informa l'utente sui livelli di informazioni e privilegi condivisi e impedisce abusi involontari.

Aggiornamenti

Sono stati apportati alcuni aggiornamenti all'implementazione FedCM di Chrome:

Per tutti gli aggiornamenti dell'API precedenti, consulta gli aggiornamenti dell'API Federated Credential Management.

L'ultima versione di FedCM include una nuova funzionalità di riautenticazione automatica che consente di riautenticare automaticamente gli utenti quando ritornano dopo l'autenticazione iniziale mediante FedCM. La riautenticazione automatica è disponibile come prova dell'origine a partire da Chrome 112.

Riautenticazione automatica

Attualmente, dopo che un utente ha creato un account federato su una parte soggetta a limitazioni con un IdP tramite FedCM, la volta successiva che visita il sito web deve seguire gli stessi passaggi nell'interfaccia utente. Ciò significa che devono confermare in modo esplicito e ripetere l'autenticazione per procedere con il flusso di accesso. Poiché uno dei principali obiettivi di FedCM è prevenire il tracciamento nascosto, questa esperienza utente (UX) ha senso prima che l'utente crei l'account federato, ma diventa inutile e ingombrante dopo che l'utente l'ha già superato. Una volta che l'utente concede l'autorizzazione per consentire la comunicazione tra la RP e l'IdP,  non c'è alcun vantaggio in materia di privacy o sicurezza nel richiedere una conferma esplicita dell'utente per qualcosa che ha già accettato in precedenza. Ecco perché Chrome sta introducendo un'esperienza utente più semplificata che le RP possono scegliere per gli utenti di ritorno.

La riautenticazione automatica FedCM ("riautenticazione automatica" in breve) autentica nuovamente gli utenti automaticamente (quando le RP attivano l'autenticazione), quando tornano dopo l'autenticazione iniziale utilizzando 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.

La parte soggetta a limitazioni può richiedere una nuova autorizzazione automatica chiamando navigator.credentials.get() con autoReauthn: true.

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
    // NOTE: We are exploring different API options to expose this
    // functionality here:
    // https://github.com/fedidcg/FedCM/issues/429#issuecomment-1426358523
    // You should expect that, as a result of the origin trial, we'll
    // learn more from developers and browser vendors what works best here.
    autoReauthn: true, // default to false
  },
});

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

  • FedCM è disponibile. Ad esempio, l'utente non ha disattivato FedCM né a livello globale né per la parte soggetta a limitazioni.
  • L'utente ha utilizzato un solo account 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.

Quando le condizioni di cui sopra sono soddisfatte, un tentativo di riautenticare automaticamente l'utente inizia non appena viene richiamato il navigator.credentials.get() di FedCM.

Un utente si sta eseguendo di nuovo l'autenticazione automatica su una RP utilizzando FedCM

Prova

Puoi provare la riautenticazione automatica FedCM in locale attivando un flag di Chrome chrome://flags#fedcm-auto-re-authn su Chrome 112 o versioni successive.

A scopo di test, puoi reimpostare il periodo senza notifiche di 10 minuti rimuovendo i dati del browser.

  1. Vai a chrome://history.
  2. Nella casella della cronologia delle ricerche, inserisci l'origine della parte soggetta a limitazioni.
  3. Fai clic sull'icona con tre puntini ⋮ e seleziona Rimuovi dalla cronologia.
  4. Riavvia Chrome.

Partecipare alla prova dell'origine

Puoi anche attivare la funzionalità sul tuo sito web partecipando alla prova delle origini di terze parti disponibile da Chrome 112 a Chrome 114.

Le prove dell'origine ti consentono di provare nuove funzionalità e fornire feedback sulla loro usabilità, praticità ed efficacia alla community degli standard web. Per ulteriori informazioni, consulta la Guida alle prove dell'origine per sviluppatori web. Per registrarti a questa o a un'altra prova dell'origine, visita la pagina di registrazione.

Per registrarti alla prova dell'origine di terze parti e attivare la funzionalità su terze parti:

  1. Vai alla pagina di registrazione della prova dell'origine.
  2. Fai clic sul pulsante Registrati e compila il modulo per richiedere un token
  3. Inserisci l'origine di pubblicazione come Origine web.
  4. Seleziona Corrispondenza di terze parti per inserire il token con JavaScript su altre origini.
  5. Fai clic su Invia.
  6. Incorpora il token emesso su una terza parte.

Per incorporare il token in una terza parte, aggiungi il seguente codice alla tua libreria JavaScript o all'SDK pubblicato dall'origine del sito web registrato.

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

Sostituisci TOKEN_GOES_HERE con il tuo token.

Interagisci e condividi feedback

Se dovessi lasciare feedback o riscontrare problemi durante il test, puoi condividerli all'indirizzo crbug.com nel componente Blink>Identity>FedCM.

Foto di Alex Perz su Unsplash