अगर आपने Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो Firebase की मदद से अपने उपयोगकर्ताओं की पुष्टि की जा सकती है अपनी पसंद के एसएएमएल आइडेंटिटी प्रोवाइडर का इस्तेमाल करके. इससे हमें अलग-अलग प्लैटफ़ॉर्म का इस्तेमाल करने में आसानी होती है. आपके Firebase ऐप्लिकेशन में उपयोगकर्ताओं को साइन इन करने के लिए, एसएएमएल पर आधारित एसएसओ (SSO) समाधान का इस्तेमाल करें.
Firebase Authentication सिर्फ़ सेवा देने वाली कंपनी के शुरू किए गए एसएएमएल फ़्लो के साथ काम करता है.
शुरू करने से पहले
किसी एसएएमएल आइडेंटिटी प्रोवाइडर की मदद से साइन इन करने के लिए, आपको पहले कुछ जानकारी इकट्ठा करनी होगी कंपनी से मिली जानकारी:
- सेवा देने वाली कंपनी का इकाई आईडी: एक यूआरआई जो आइडेंटिटी प्रोवाइडर की पहचान करता है.
- सेवा देने वाली कंपनी का एसएएमएल एसएसओ (SSO) यूआरएल: आइडेंटिटी प्रोवाइडर के साइन इन का यूआरएल करें.
- सेवा देने वाले का सार्वजनिक पासकोड का सर्टिफ़िकेट: वह सर्टिफ़िकेट जिसका इस्तेमाल पुष्टि करने के लिए किया जाता है टोकन.
- आपके ऐप्लिकेशन का इकाई आईडी: एक यूआरआई जो आपके ऐप्लिकेशन, "सेवा" की पहचान करता है कंपनी".
ऊपर दी गई जानकारी मिलने के बाद, एसएएमएल को साइन इन सेवा देने वाली कंपनी के तौर पर चालू करें Firebase प्रोजेक्ट:
अगर आपने Firebase Authentication with Identity Platform पर अपग्रेड नहीं किया है, तो ऐसा करें. एसएएमएल पुष्टि सिर्फ़ उपलब्ध है.
साइन-इन करने की सुविधा देने वाली कंपनियों पर Firebase कंसोल के पेज पर जाएं, नई कंपनी जोड़ें पर क्लिक करें और फिर एसएएमएल.
इस कंपनी को एक नाम दें. जनरेट किए गए, सेवा देने वाले के आईडी को नोट करें:
saml.example-provider
जैसा कुछ. खातों को जोड़ते समय आपको इस आईडी की ज़रूरत होगी अपने ऐप्लिकेशन में साइन-इन कोड डालें.अपने आइडेंटिटी प्रोवाइडर का इकाई आईडी, एसएसओ (SSO) यूआरएल, और सार्वजनिक पासकोड बताएं प्रमाणपत्र. अपने ऐप्लिकेशन (सेवा देने वाली कंपनी) का इकाई आईडी भी बताएं. ये वैल्यू, उन वैल्यू से पूरी तरह मेल खानी चाहिए जो आपको सेवा देने वाली कंपनी ने असाइन की हैं.
बदलावों को सेव करें.
अगर आपने पहले से अपने ऐप्लिकेशन के डोमेन को अनुमति नहीं दी है, तो उसे अनुमति वाले डोमेन में जोड़ें की सूची दिखेगी.पुष्टि करने की प्रक्रिया > सेटिंग पेज Firebase कंसोल का.
Firebase SDK टूल की मदद से साइन-इन की प्रोसेस को मैनेज करना
Firebase JavaScript SDK टूल से साइन-इन फ़्लो को मैनेज करने के लिए, इन निर्देशों का पालन करें चरण:
आपको जो प्रोवाइडर आईडी मिला है उसका इस्तेमाल करके,
SAMLAuthProvider
का इंस्टेंस बनाएं Firebase कंसोल.Web
import { SAMLAuthProvider } from "firebase/auth"; const provider = new SAMLAuthProvider('saml.example-provider');
Web
var provider = new firebase.auth.SAMLAuthProvider('saml.example-provider'); ``
एसएएमएल प्रोवाइडर ऑब्जेक्ट का इस्तेमाल करके, Firebase से पुष्टि करें.
उपयोगकर्ता को या तो सेवा देने वाली कंपनी के साइन-इन पेज पर रीडायरेक्ट किया जा सकता है या पॉप-अप ब्राउज़र विंडो में साइन-इन पेज पर.
रीडायरेक्ट फ़्लो
signInWithRedirect()
पर कॉल करके, सेवा देने वाली कंपनी के साइन-इन पेज पर रीडायरेक्ट करें:Web
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
उपयोगकर्ता के साइन-इन करने और आपके ऐप्लिकेशन पर वापस लौटने के बाद, आपको
getRedirectResult()
पर कॉल करके साइन-इन परिणाम.Web
import { getAuth, getRedirectResult, SAMLAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // User is signed in. // Provider data available using getAdditionalUserInfo() }) .catch((error) => { // Handle error. });
Web
firebase.auth().getRedirectResult() .then((result) => { // User is signed in. // Provider data available in result.additionalUserInfo.profile, // or from the user's ID token obtained from result.user.getIdToken() // as an object in the firebase.sign_in_attributes custom claim. }) .catch((error) => { // Handle error. });
पॉप-अप फ़्लो
Web
import { getAuth, signInWithPopup, OAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // User is signed in. // Provider data available in result.additionalUserInfo.profile, // or from the user's ID token obtained from result.user.getIdToken() // as an object in the firebase.sign_in_attributes custom claim. }) .catch((error) => { // Handle error. });
Web
firebase.auth().signInWithPopup(provider) .then((result) => { // User is signed in. // Provider data available in result.additionalUserInfo.profile, // or from the user's ID token obtained from result.user.getIdToken() // as an object in the firebase.sign_in_attributes custom claim. }) .catch((error) => { // Handle error. });
आईडी टोकन और UserInfo ऑब्जेक्ट में उपयोगकर्ता का ईमेल पता सिर्फ़ तब शामिल होता है, जब वह पहचान देने वाली सेवा से मिलने वाले एसएएमएल दावे का
NameID
एट्रिब्यूट:<Subject> <NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">test@email.com</NameID> </Subject>
ऊपर दिए गए उदाहरण, साइन-इन करने के फ़्लो पर फ़ोकस करते हैं. हालांकि, इनका इस्तेमाल भी किया जा सकता है ताकि एसएएमएल सेवा देने वाली कंपनी को किसी मौजूदा उपयोगकर्ता से लिंक किया जा सके
linkWithRedirect()
औरlinkWithPopup()
. साथ ही, इस सुविधा का इस्तेमाल करके किसी उपयोगकर्ता की फिर से पुष्टि करेंreauthenticateWithRedirect()
औरreauthenticateWithPopup()
इनमें से कोई भी हो सकता है. इसका इस्तेमाल, संवेदनशील कार्रवाइयों के लिए नए क्रेडेंशियल हासिल करने के लिए किया जाता है. हाल ही का लॉगिन.