À partir de Chrome 123, vous pouvez utiliser les Domain Hints (indicateurs de domaine) en plus du API Federated Credential Management (FedCM). Avec l'API Domain Hint, les développeurs peuvent améliorer l'expérience utilisateur indiquant les comptes de connexion fédérée du domaine qu'ils acceptent.
API Domain Hint
FedCM permet de faciliter la connexion d'un utilisateur à un tiers de confiance (RP, faisant référence à un site Web) à l'aide des informations de compte fournies par une identité (IdP) un fournisseur de services agréé. Cependant, dans certains cas, le tiers assujetti à des restrictions sait déjà Les comptes associés à un domaine donné sont autorisés à se connecter au site. Ce Cela est particulièrement courant dans les entreprises où le site auquel on accède qu'au domaine de l'entreprise. Pour offrir une meilleure expérience utilisateur, le FedCM L'API permet au tiers assujetti à des restrictions d'afficher uniquement les comptes pouvant être utilisés pour se connecter au tiers assujetti à des restrictions Cela permet d'éviter les scénarios dans lesquels un utilisateur tente de se connecter au tiers assujetti à des restrictions à l'aide d'un externe au domaine de l'entreprise, mais seulement avec un message d'erreur (ou couper le son si la connexion n'a pas fonctionné), car le bon type de compte n'a pas été utilisé.
Avec l'API Domain Hint, les tiers assujettis à des restrictions peuvent spécifier une propriété domainHint
sur une API FedCM.
pour afficher uniquement les comptes correspondants à l'utilisateur. Le fournisseur d'identité peut fournir
domain_hints
dans une réponse de la liste des comptes
point de terminaison
indiquer le ou les domaines auxquels un compte est associé. De cette façon, le navigateur
peut afficher les comptes correspondants sans divulguer l'indice de domaine demandé à
le fournisseur d'identité.
Exemple de réponse JSON provenant du point de terminaison de la liste des comptes : suivantes:
{
"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 RP peut appeler navigator.credentials.get()
avec une propriété domainHint
pour
filtrer les comptes. Imaginons qu'un utilisateur consulte corp-partner.example
et
se connecte avec un compte corp.example
. Le site appelle l'API
ce qui suit:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/manifest.json",
clientId: "abc",
nonce: nonce,
domainHint : "corp.example"
}]
}
});
La valeur domainHint
n'est pas envoyée à la liste des comptes.
point de terminaison
pour le filtrage côté serveur, car il peut s'agir d'un vecteur d'empreinte numérique vers l'IdP.
À la place, Chrome envoie une demande FedCM comme d'habitude et filtre les comptes
qui ne correspondent pas à la valeur domainHint
spécifiée par
Appel navigator.credentials.get()
. Ensuite, Chrome affiche la boîte de dialogue FedCM pour
par la nouvelle liste de comptes. Cette approche est semblable à l'indicateur de connexion
de l'API Google, mais ces deux
Les API répondent à différentes questions. L'API Login Hint vise à répondre "qui est une
l'identifiant de l'utilisateur souhaité, tandis que Domain Hint identifie
entreprise ou serveur auquel ce compte doit appartenir ?".
Lorsque domainHint: "any"
est utilisé, Chrome filtre les comptes qui n'ont pas
tous les domaines (par exemple, domain_hints
n'est pas transmis ou est vide). Par exemple :
Cela permet les cas d'utilisation où le tiers assujetti à des restrictions n'autorise que les comptes gérés lors de son inscription
processus.
Si aucun compte ne correspond à l'domainHint
, la boîte de dialogue FedCM affiche une invite de connexion,
qui permet à l'utilisateur de se connecter à un compte d'IdP correspondant à l'indice demandé par
le tiers assujetti à des restrictions. Lorsque l'utilisateur appuie sur l'invite, une fenêtre pop-up s'ouvre avec l'option
l'URL de connexion spécifiée dans le fichier config
fichier. Le lien est
puis ajouté l'indice de connexion
et les paramètres de requête d'optimisation du domaine.