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