Mises à jour FedCM: API Domain Hint

À 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.

<ph type="x-smartling-placeholder">
</ph> Exemple d&#39;invite de connexion lorsqu&#39;aucun compte ne correspond à domainHint.
Exemple d'invite de connexion lorsqu'aucun compte ne correspond à domainHint.