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.