FedCM güncellemeleri: Alan İpucu API'si

Chrome 123'ten itibaren Alan İpuçları'nı Federated Credential Management API (FedCM). Entegre API'den yararlanıyorsanız geliştiriciler yalnızca kabul ettikleri alandaki birleşik giriş hesaplarını göstererek.

Alan İpucu API'si

FedCM, kullanıcının bağlı tarafa (RP, bir kimlik tarafından sağlanan hesap bilgilerini kullanarak sağlayıcı (IdP) Bununla birlikte, Kısıtlanmış Taraf'ın yalnızca Belirli bir alan adıyla ilişkili hesapların siteye giriş yapmasına izin verilir. Bu Özellikle erişilen siteye erişimi olan kurumsal senaryolarda yaygındır. kurumsal bir alanla sınırlandırılmıştır. FedCM, kullanıcılara daha iyi bir deneyim sunmak için API, kısıtlanmış tarafın yalnızca şuna giriş yapmak için kullanılabilecek hesapları göstermesini sağlar: Kısıtlanmış Taraf Bu, bir kullanıcının Kısıtlanmış Taraf'a bir hesap kurumsal alan dışında, yalnızca hata mesajıyla sunulacak daha sonra (veya girişin çalışmadığı durumlarda sessize alınır). Bunun nedeni, hesap kullanılmadı.

RP'ler, Alan İpucu API'si ile FedCM API'de bir domainHint özelliği belirtebilir çağrısını kullanarak yalnızca eşleşen hesapları görebilirsiniz. IdP, hesaplar listesindeki bir yanıtın parçası olarak domain_hints mülkü uç noktayı bir hesabın hangi alanlarla ilişkilendirildiğini belirtme. Bu şekilde, tarayıcı istenen alan adı ipucunu yapılandırdığınızdan emin olun.

Hesap listesi uç noktasından bir örnek JSON yanıtı şöyle görünür: takip etmek için:

{
 "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"]
  }]
}

Kısıtlanmış taraf, navigator.credentials.get() öğesini domainHint özelliği ile çağırarak şunları yapabilir: ve hesapları filtreleyebilirsiniz. Örneğin, bir kullanıcının corp-partner.example adresini ziyaret ettiğini ve corp.example alanına ait bir hesapla oturum açtığında. Site, API'yi şöyle olur:

return await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/manifest.json",
      clientId: "abc",
      nonce: nonce,
      domainHint : "corp.example"
    }]
  }
});

domainHint değeri, hesap listesine gönderilmez uç nokta için bir dijital parmak izi alma aracının kullanılmasıdır. Bu, IdP'ye yönelik bir dijital parmak izi vektörü olabilir. Bunun yerine Chrome her zamanki gibi bir FedCM isteği gerçekleştirir ve hesapları filtreler kodu tarafından belirtilen domainHint değeriyle eşleşmeyen navigator.credentials.get() sesli arama. Ardından Chrome, FedCM iletişim kutusunu yeni hesap listesine sahip bir kullanıcı. Bu yaklaşım, Giriş İpucuna API, ancak bu ikisi API'ler farklı soruları yanıtlar. Giriş İpucu API'si, "bu, şu anda tanımlayıcısını hedeflerken, Alan İpucu "hangi bir şirkete ait veya sunucuya ait olmalı mı?" sorusunu sorarız.

domainHint: "any" kullanıldığında Chrome, herhangi bir alan adı (yani domain_hints geçirilmez veya boş). Örneğin, Bu, Kısıtlanmış Taraf'ın kayıt sırasında yalnızca yönetilen hesaplara izin verdiği kullanım alanlarına olanak tanır bahsedeceğim.

domainHint ile eşleşen hesap olmadığında FedCM iletişim kutusunda bir giriş istemi gösterilir. Bu, kullanıcının Google tarafından istenen ipucuyla eşleşen bir IdP hesabına giriş yapmasına olanak tanır. RP. Kullanıcı isteme dokunduğunda config'de belirtilen giriş URL'si dosyası olarak adlandırılır. Bağlantı ardından giriş ipucu ve alan ipucu sorgu parametreleri eklenir.

domainHint ile eşleşen hesap olmadığında gösterilen örnek bir giriş istemi.
domainHint ile eşleşen hesap olmadığında gösterilen örnek bir giriş istemi.