Firebase Admin SDK की मदद से, अपने सर्वर को Firebase Authentication के साथ इंटिग्रेट किया जा सकता है. अपने उपयोगकर्ताओं को मैनेज करने या पुष्टि करने के लिए, Firebase Admin SDK का इस्तेमाल किया जा सकता है. ऐसा करने की कई वजहें हो सकती हैं:
उपयोगकर्ता मैनेजमेंट
Firebase उपयोगकर्ताओं को मैनेज करने के लिए, Firebase console पर जाना हमेशा सुविधाजनक नहीं होता. एडमिन यूज़र मैनेजमेंट एपीआई, उन उपयोगकर्ताओं को प्रोग्राम के हिसाब से ऐक्सेस देता है. इसकी मदद से, Firebase कंसोल से किए जा सकने वाले काम भी किए जा सकते हैं. जैसे, उपयोगकर्ता का पूरा डेटा हासिल करना और उसका पासवर्ड, ईमेल पता या फ़ोन नंबर बदलना.
कस्टम पुष्टि
Firebase के साथ, बाहरी उपयोगकर्ता सिस्टम को इंटिग्रेट किया जा सकता है. उदाहरण के लिए, हो सकता है कि आपके पास पहले से ही उपयोगकर्ता का डेटाबेस मौजूद हो या आपको तीसरे पक्ष के किसी ऐसे आइडेंटिटी प्रोवाइडर के साथ इंटिग्रेट करना हो जिसका इस्तेमाल Firebase Authentication में पहले से न किया जा रहा हो.
ऐसा करने के लिए, उपयोगकर्ता की पहचान करने वाले मनमुताबिक दावों के साथ कस्टम टोकन बनाए जा सकते हैं. इसके बाद, इन कस्टम टोकन का इस्तेमाल किसी क्लाइंट ऐप्लिकेशन पर Firebase Authentication सेवा में साइन इन करने के लिए किया जा सकता है. साथ ही, टोकन के दावों में बताई गई पहचान को भी अपनाया जा सकता है. इसके बाद, Cloud Storage जैसी अन्य Firebase सेवाओं को ऐक्सेस करते समय इस पहचान का इस्तेमाल किया जाएगा.
पहचान की पुष्टि करना
Firebase Authentication का इस्तेमाल मुख्य रूप से आपके ऐप्लिकेशन के उपयोगकर्ताओं की पहचान करने के लिए किया जाता है, ताकि Cloud Storage जैसी अन्य सेवाओं के ऐक्सेस पर पाबंदी लगाई जा सके. इस सेवा का इस्तेमाल करके, अपने सर्वर पर भी इन उपयोगकर्ताओं की पहचान की जा सकती है. इससे, Firebase Authentication से साइन इन करने वाले उपयोगकर्ताओं की ओर से, सर्वर-साइड लॉजिक को सुरक्षित तरीके से लागू किया जा सकता है.
ऐसा करने के लिए, Firebase Authentication से साइन इन किए गए क्लाइंट ऐप्लिकेशन से आईडी टोकन पाएं और अपने सर्वर के अनुरोध में टोकन शामिल करें. इसके बाद, आपका सर्वर आईडी टोकन की पुष्टि करता है और उपयोगकर्ता की पहचान करने वाले दावों को निकालता है. इन दावों में, उपयोगकर्ता का uid
, वह आइडेंटिटी प्रोवाइडर जिससे उसने लॉग इन किया है वगैरह शामिल होता है. इसके बाद, आपका सर्वर इस पहचान की जानकारी का इस्तेमाल, उपयोगकर्ता की ओर से कार्रवाइयां करने के लिए कर सकता है.
Firebase Admin SDK, ऊपर बताए गए पुष्टि करने के टास्क पूरे करने के तरीके उपलब्ध कराता है. इससे, आपको अपने उपयोगकर्ताओं को मैनेज करने, कस्टम टोकन जनरेट करने, और आईडी टोकन की पुष्टि करने की सुविधा मिलती है.
उपयोगकर्ता के कस्टम दावे
कुछ मामलों में, हो सकता है कि आप उन उपयोगकर्ताओं के लिए ऐक्सेस कंट्रोल को बेहतर तरीके से लागू करना चाहें जिन्होंने पहले से ही, ईमेल/पासवर्ड, Google, Facebook, फ़ोन वगैरह जैसे Firebase पुष्टि करने की सुविधा देने वाली किसी सेवा से साइन इन किया हुआ है. उपयोगकर्ता के कस्टम दावों और ऐप्लिकेशन की सुरक्षा से जुड़े नियमों के कॉम्बिनेशन से, यह सुविधा मिलती है. उदाहरण के लिए, Firebase Authentication ईमेल और पासवर्ड की सेवा देने वाली कंपनी के साथ साइन इन करने वाले उपयोगकर्ता के लिए, कस्टम दावों का इस्तेमाल करके ऐक्सेस कंट्रोल तय किया जा सकता है.
यूज़र मैनेजमेंट
Firebase Admin SDK, एपीआई की मदद से उन उपयोगकर्ताओं को मैनेज करने की सुविधा देता है जिन्हें आपने ऐक्सेस देने के लिए खास सुविधाएं दी हैं.Firebase एडमिन उपयोगकर्ता मैनेजमेंट एपीआई की मदद से, उपयोगकर्ताओं को प्रोग्राम के हिसाब से वापस पाया जा सकता है, बनाया जा सकता है, अपडेट किया जा सकता है, और मिटाया जा सकता है. इसके लिए, उपयोगकर्ता के मौजूदा क्रेडेंशियल की ज़रूरत नहीं होती. साथ ही, क्लाइंट-साइड रेट लिमिटिंग की चिंता भी नहीं करनी पड़ती.
उपयोगकर्ताओं को मैनेज करेंकस्टम टोकन बनाना
कस्टम टोकन बनाने का मुख्य मकसद, उपयोगकर्ताओं को किसी बाहरी या लेगसी पुष्टि करने के तरीके के आधार पर पुष्टि करने की अनुमति देना है. यह ऐसा सर्वर हो सकता है जिसे आप कंट्रोल करते हों, जैसे कि आपका LDAP सर्वर या तीसरे पक्ष का कोई OAuth प्रोवाइडर, जिस पर Firebase नेटिव तौर पर काम नहीं करता, जैसे कि Instagram या LinkedIn.
Firebase Admin SDK में, कस्टम टोकन बनाने के लिए पहले से एक तरीका मौजूद है. तीसरे पक्ष की JWT लाइब्रेरी का इस्तेमाल करके, प्रोग्राम के हिसाब से किसी भी भाषा में कस्टम टोकन भी बनाए जा सकते हैं.
आपके सर्वर को यूनीक आइडेंटिफ़ायर (uid
) के साथ एक कस्टम टोकन बनाना चाहिए और उस टोकन को क्लाइंट ऐप्लिकेशन को पास करना चाहिए. क्लाइंट ऐप्लिकेशन, Firebase में साइन इन करने के लिए इसका इस्तेमाल करेगा. कोड के सैंपल और कस्टम टोकन बनाने की प्रोसेस के बारे में ज़्यादा जानकारी के लिए, कस्टम टोकन बनाएं लेख पढ़ें.
आईडी टोकन की मदद से पुष्टि करना
अगर आपका Firebase क्लाइंट ऐप्लिकेशन आपके बैकएंड सर्वर से डेटा का लेन-देन करता है, तो आपको अपने सर्वर पर उस उपयोगकर्ता की पहचान करनी पड़ सकती है जिसने उस समय साइन इन किया हुआ है. ऐसा इसलिए, ताकि आप उसकी ओर से सर्वर-साइड लॉजिक लागू कर सकें. ऐसा करने के लिए, आईडी टोकन का इस्तेमाल किया जा सकता है. ये टोकन, Firebase ऐप्लिकेशन में साइन इन करने पर Firebase बनाता है. आईडी टोकन, OpenID Connect स्पेसिफ़िकेशन के मुताबिक होते हैं. इनमें उपयोगकर्ता की पहचान करने के साथ-साथ, प्रोफ़ाइल और पुष्टि से जुड़ी अन्य जानकारी भी होती है. अपने बैकएंड से इन टोकन को भेजा, पुष्टि किया, और जांचा जा सकता है. इससे, फ़िलहाल साइन इन किए हुए उपयोगकर्ता की पहचान सुरक्षित तरीके से की जा सकती है. साथ ही, उसे अपने बैकएंड संसाधनों का ऐक्सेस दिया जा सकता है.
Firebase Admin SDK में आईडी टोकन की पुष्टि करने का एक तरीका पहले से मौजूद होता है. तीसरे पक्ष की JWT लाइब्रेरी का इस्तेमाल करके, प्रोग्राम के हिसाब से किसी भी भाषा में आईडी टोकन की पुष्टि की जा सकती है. आईडी टोकन की पुष्टि करने की प्रोसेस के बारे में ज़्यादा जानकारी और कोड सैंपल के लिए, आईडी टोकन की पुष्टि करना देखें.
उपयोगकर्ता के कस्टम दावे
Firebase Admin SDK की मदद से, उपयोगकर्ता खातों पर कस्टम एट्रिब्यूट सेट किए जा सकते हैं. उपयोगकर्ता के कस्टम दावों की मदद से, उपयोगकर्ताओं को अलग-अलग लेवल का ऐक्सेस (भूमिकाएं) दिया जा सकता है. इसके बाद, इन दावों को ऐप्लिकेशन के सुरक्षा नियमों में लागू किया जाता है.
Firebase Admin SDK की मदद से, उपयोगकर्ता के कस्टम दावों में बदलाव करने के बाद, उन्हें क्लाइंट-साइड पर पुष्टि किए गए उपयोगकर्ताओं के आईडी टोकन के ज़रिए भेजा जाता है. आईडी टोकन, इन कस्टम दावों को डिलीवर करने के लिए एक भरोसेमंद तरीका है. साथ ही, पुष्टि किए गए सभी ऐक्सेस को, उससे जुड़े अनुरोध को प्रोसेस करने से पहले आईडी टोकन की पुष्टि करनी होगी.
कस्टम दावों की मदद से ऐक्सेस कंट्रोल करना