Da Chrome 123, puoi utilizzare i suggerimenti per il dominio insieme alla API Federated Credential Management (FedCM). Con l'API Domain Hint, gli sviluppatori possono fornire una migliore esperienza utente solo che mostrano gli account di accesso federato del dominio che accettano.
API Domain Hint
È possibile usare FedCM per semplificare l'accesso di un utente a una parte (RP, fare riferimento a un sito web) utilizzando i dati dell'account forniti da un'identità o provider di identità (IdP). Tuttavia, ci sono casi in cui la parte soggetta a limitazioni sa già che solo account associati a un determinato dominio possono accedere al sito. Questo è particolarmente comune negli scenari aziendali in cui il sito a cui si accede è limitati a un dominio aziendale. Per offrire una migliore esperienza utente, FedCM L'API consente alla parte soggetta a limitazioni di mostrare solo gli account che possono essere utilizzati per accedere parte soggetta a limitazioni. Questo evita scenari in cui un utente tenta di accedere alla parte soggetta a limitazioni utilizzando un esterno al dominio aziendale, verrà visualizzato solo con un messaggio di errore in un secondo momento (o in silenzio quando l'accesso non ha funzionato) perché il tipo di account non utilizzato.
Con l'API Domain Hint, le parti soggette a limitazioni possono specificare una proprietà domainHint
su un'API FedCM
per mostrare solo gli account corrispondenti per l'utente. L'IdP può fornire
Proprietà domain_hints
come parte di una risposta dall'elenco degli account
endpoint a
indica i domini a cui è associato un account. In questo modo, il browser
può mostrare gli account corrispondenti senza comunicare il suggerimento relativo al dominio richiesto
l'IdP.
Una risposta JSON di esempio dall'endpoint dell'elenco di account potrebbe essere la seguente seguenti:
{
"accounts": [{
"id": "1234",
"given_name": "John",
"name": "John Doe",
"email": "john_doe@idp.example",
"picture": "https://idp.example/profile/123",
"approved_clients": ["123", "456", "789"],
}, {
"id": "5678",
"given_name": "Johnny",
"name": "Johnny",
"email": "johnny@idp.example",
"picture": "https://idp.example/profile/456"
"approved_clients": ["abc", "def", "ghi"],
"domain_hints": ["corp.example"]
}]
}
La parte soggetta a limitazioni può chiamare navigator.credentials.get()
con una proprietà domainHint
per
filtrare gli account. Ad esempio, supponiamo che un utente visiti corp-partner.example
e
accede con un account da corp.example
. Il sito richiama l'API come
che segue:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/manifest.json",
clientId: "abc",
nonce: nonce,
domainHint : "corp.example"
}]
}
});
Il valore domainHint
non viene inviato all'elenco account
endpoint
per il filtro lato server, poiché può essere un vettore di fingerprinting per l'IdP.
Chrome esegue invece una richiesta FedCM come al solito e filtra gli account
che non corrispondono al valore domainHint
specificato
Chiamata navigator.credentials.get()
. Dopodiché, Chrome mostra la finestra di dialogo FedCM al
un utente con il nuovo elenco di account. Questo approccio è simile al suggerimenti di accesso
dell'API, ma questi due servizi
Le API rispondono a domande diverse. L'API Login Hint mira a rispondere "che è una
per l'utente che voglio?", mentre Domain Hint mira a rispondere "quale
la società o il server a cui deve appartenere questo account?".
Quando viene utilizzato domainHint: "any"
, Chrome filtra gli account che non hanno
qualsiasi dominio (ovvero, domain_hints
non è stato superato o è vuoto). Ad esempio:
questo consente i casi d'uso in cui la parte soggetta a limitazioni consente solo gli account gestiti nella sua registrazione
e il processo di sviluppo.
Quando nessun account corrisponde a domainHint
, nella finestra di dialogo FedCM viene visualizzata una richiesta di accesso,
che consente all'utente di accedere a un account IdP corrispondente al suggerimento richiesto
la parte soggetta a limitazioni. Quando l'utente tocca il prompt, si apre una finestra popup con il
l'URL di accesso specificato in
. Il link è
e poi aggiunto con il suggerimento per l'accesso e i parametri di query con il suggerimento del dominio.
![Un esempio di richiesta di accesso quando nessun account corrisponde a domainHint.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/blog/fedcm-123.jpg?authuser=19&hl=it)
domainHint
.