Chrome 123 से, डोमेन हिंट का इस्तेमाल फ़ेडरेटेड क्रेडेंशियल मैनेजमेंट एपीआई (FedCM). के साथ डोमेन हिंट एपीआई के साथ, डेवलपर सिर्फ़ उन्हें स्वीकार किए जाने वाले डोमेन से फ़ेडरेटेड लॉगिन खातों को दिखाएगा.
डोमेन संकेत एपीआई
FedCM का इस्तेमाल करके, उपयोगकर्ता के लिए किसी भरोसेमंद पक्ष (RP, किसी वेबसाइट का हवाला देकर) प्रोवाइडर (आईडीपी). हालांकि, कुछ मामलों में आरपी को पहले से ही किसी खास डोमेन से जुड़े खातों से साइट में लॉगिन किया जा सकता है. यह खास तौर पर, ऐसी एंटरप्राइज़ स्थितियों में सामान्य हो जहां साइट को ऐक्सेस किया जा रहा हो कॉर्पोरेट डोमेन तक सीमित. बेहतर उपयोगकर्ता अनुभव देने के लिए, FedCM एपीआई की मदद से, आरपी सिर्फ़ वे खाते दिखा सकता है जिनका इस्तेमाल प्रतिबंधित पार्टी. यह ऐसी स्थितियों को रोकता है जहां उपयोगकर्ता किसी यूआरएल का इस्तेमाल करके आरपी में लॉगिन करने की कोशिश करता है कॉर्पोरेट डोमेन के बाहर खाता होना चाहिए, जो सिर्फ़ गड़बड़ी के मैसेज के साथ दिखाया जाए बाद में (या जहां लॉगिन नहीं किया था वहां चुप करा सकते हैं) क्योंकि सही खाते का इस्तेमाल नहीं किया गया.
डोमेन हिंट एपीआई की मदद से, प्रतिबंधित पार्टी किसी FedCM API पर domainHint
प्रॉपर्टी तय कर सकती है
उपयोगकर्ता से मेल खाने वाले खाते दिखाने के लिए कॉल करें. आईडीपी (IdP) से जानकारी मिल सकती है
खातों की सूची से मिले जवाब के तौर पर domain_hints
प्रॉपर्टी
एंडपॉइंट से
यह बताता है कि खाता किस डोमेन से जुड़ा है. इस तरह, ब्राउज़र
अनुरोध किए गए डोमेन संकेत को ज़ाहिर किए बिना, मिलते-जुलते खातों को दिखा सकता है
आईडीपी (IdP) को चुनें.
खातों की सूची के एंडपॉइंट से मिले JSON रिस्पॉन्स का उदाहरण ऐसा दिखेगा फ़ॉलो किया जा रहा है:
{
"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"]
}]
}
आरपी, domainHint
प्रॉपर्टी के साथ navigator.credentials.get()
को कॉल कर सकता है
खातों को फ़िल्टर करें. उदाहरण के लिए, मान लें कि कोई उपयोगकर्ता corp-partner.example
पर जाता है और
corp.example
से किसी खाते से प्रवेश करता है. साइट एपीआई को इस तौर पर इस्तेमाल करेगी
अनुसरण करता है:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/manifest.json",
clientId: "abc",
nonce: nonce,
domainHint : "corp.example"
}]
}
});
domainHint
मान खातों की सूची को नहीं भेजा गया है
एंडपॉइंट
क्योंकि यह आईडीपी (IdP) के लिए फ़िंगरप्रिंटिंग वेक्टर हो सकता है.
इसके बजाय, Chrome हमेशा की तरह FedCM अनुरोध करता है और खातों को फ़िल्टर कर देता है
जिनका मिलान उस domainHint
मान से नहीं होता है,
navigator.credentials.get()
कॉल. इसके बाद, Chrome
नई खाता सूची वाले उपयोगकर्ता. यह तरीका लॉगिन हिंट के जैसा है
API, लेकिन ये दोनों
एपीआई से अलग-अलग सवालों के जवाब मिलते हैं. लॉगिन हिंट एपीआई का मकसद इस बात का जवाब देना है कि "यह
के लिए आइडेंटिफ़ायर के बारे में बताएं, जबकि डोमेन हिंट का मकसद "किसका जवाब देना है?"
कॉर्पोरेशन या सर्वर का यह खाता होना चाहिए?".
domainHint: "any"
का इस्तेमाल करने पर Chrome, उन खातों को फ़िल्टर कर देता है जो इसमें मौजूद नहीं हैं
कोई भी डोमेन (यानी, domain_hints
पास नहीं हुआ है या खाली है). उदाहरण के लिए,
इससे, ऐसे इस्तेमाल के मामलों में अनुमति मिलती है जहां आरपी, साइनअप करने के लिए सिर्फ़ मैनेज किए जा रहे खातों की अनुमति देता है
प्रोसेस.
जब किसी भी खाते का मिलान domainHint
से नहीं होता है, तो FedCM डायलॉग बॉक्स में लॉगिन का अनुरोध दिखता है,
इसकी मदद से, उपयोगकर्ता अनुरोध किए गए संकेत से मेल खाने वाले आईडीपी (IdP) खाते में लॉगिन कर सकता है
आरपी. जब उपयोगकर्ता प्रॉम्प्ट पर टैप करता है, तो एक पॉप-अप विंडो खुलती है. इसमें
कॉन्फ़िगरेशन में दिया गया लॉगिन यूआरएल
फ़ाइल में सेव किया जाता है. यह लिंक है
फिर उसे लॉगिन संकेत और डोमेन संकेत क्वेरी पैरामीटर के साथ जोड़ा गया.
![डोमेन हिंट से किसी खाते का मैच न होने पर लॉगिन के प्रॉम्प्ट का उदाहरण.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/blog/fedcm-123.jpg?authuser=8&hl=hi)
domainHint
से मेल न खाने वाले किसी खाते के लॉगिन प्रॉम्प्ट का उदाहरण.