Firebase Admin SDK की मदद से, अपने सर्वर को Firebase Authentication के साथ इंटिग्रेट किया जा सकता है. उपयोगकर्ताओं को मैनेज करने या पुष्टि करने वाले टोकन मैनेज करने के लिए, Firebase Admin SDK का इस्तेमाल किया जा सकता है. ऐसा करने की कई वजहें हो सकती हैं:
उपयोगकर्ता को मैनेज करना
Firebase उपयोगकर्ताओं को मैनेज करने के लिए, हर बार Firebase कंसोल पर जाना हमेशा सुविधाजनक नहीं होता. एडमिन के लिए उपलब्ध User Management API, उन उपयोगकर्ताओं को प्रोग्राम के हिसाब से ऐक्सेस देता है. इसकी मदद से, वे काम भी किए जा सकते हैं जो Firebase कंसोल से नहीं किए जा सकते. जैसे, किसी उपयोगकर्ता का पूरा डेटा वापस पाना और उसका पासवर्ड, ईमेल पता या फ़ोन नंबर बदलना.
कस्टम ऑथेंटिकेशन
बाहरी उपयोगकर्ता सिस्टम को Firebase के साथ इंटिग्रेट किया जा सकता है. उदाहरण के लिए, हो सकता है कि आपके पास पहले से ही उपयोगकर्ता डेटाबेस मौजूद हो या आपको तीसरे पक्ष के किसी ऐसे आइडेंटिटी प्रोवाइडर के साथ इंटिग्रेट करना हो जो Firebase Authentication को नेटिव तौर पर सपोर्ट नहीं करता है.
इसके लिए, ऐसे कस्टम टोकन बनाए जा सकते हैं जिनमें उपयोगकर्ता की पहचान करने वाले मनमुताबिक दावे शामिल हों. इसके बाद, इन कस्टम टोकन का इस्तेमाल, क्लाइंट ऐप्लिकेशन पर Firebase Authentication सेवा में साइन इन करने के लिए किया जा सकता है. साथ ही, टोकन के दावों में बताई गई पहचान का इस्तेमाल किया जा सकता है. इसके बाद, इस पहचान का इस्तेमाल अन्य Firebase सेवाओं को ऐक्सेस करते समय किया जाएगा. जैसे, Cloud Storage.
पहचान की पुष्टि करना
Firebase Authentication का इस्तेमाल मुख्य रूप से, आपके ऐप्लिकेशन के उपयोगकर्ताओं की पहचान करने के लिए किया जाता है. इससे Cloud Storage जैसी अन्य सेवाओं के ऐक्सेस को सीमित किया जा सकता है. इस सेवा का इस्तेमाल, अपने सर्वर पर इन उपयोगकर्ताओं की पहचान करने के लिए भी किया जा सकता है. इसकी मदद से, Firebase Authentication से साइन इन करने वाले उपयोगकर्ताओं की ओर से, सर्वर-साइड लॉजिक को सुरक्षित तरीके से लागू किया जा सकता है.
इसके लिए, Firebase Authentication से साइन इन किए गए क्लाइंट ऐप्लिकेशन से आईडी टोकन वापस पाया जा सकता है. साथ ही, इस टोकन को अपने सर्वर के अनुरोध में शामिल किया जा सकता है. इसके बाद, आपका सर्वर आईडी टोकन की पुष्टि करता है और उन दावों को निकालता है जिनसे उपयोगकर्ता की पहचान होती है. इनमें uid
, आइडेंटिटी प्रोवाइडर जिससे उपयोगकर्ता ने लॉग इन किया है वगैरह शामिल हैं. इसके बाद, इस पहचान की जानकारी का इस्तेमाल आपका सर्वर, उपयोगकर्ता की ओर से कार्रवाइयां करने के लिए कर सकता है.
Firebase Admin SDK, ऊपर दिए गए पुष्टि करने के टास्क पूरे करने के तरीके उपलब्ध कराता है. इससे आपको अपने उपयोगकर्ताओं को मैनेज करने, कस्टम टोकन जनरेट करने, और आईडी टोकन की पुष्टि करने की सुविधा मिलती है.
उपयोगकर्ता के लिए कस्टम दावे
कुछ मामलों में, आपको पहले से साइन इन किए हुए उपयोगकर्ताओं के लिए, बेहतर तरीके से ऐक्सेस कंट्रोल लागू करना पड़ सकता है. ये उपयोगकर्ता, ईमेल/पासवर्ड, Google, Facebook, फ़ोन वगैरह जैसे किसी भी Firebaseऑथ प्रोवाइडर का इस्तेमाल करके साइन इन कर सकते हैं. कस्टम यूज़र क्लेम और ऐप्लिकेशन की सुरक्षा से जुड़े नियमों का कॉम्बिनेशन, यह सुविधा देता है. उदाहरण के लिए, Firebase Authentication ईमेल और पासवर्ड की सुविधा देने वाली कंपनी से साइन इन करने वाले उपयोगकर्ता के पास, कस्टम क्लेम का इस्तेमाल करके तय किए गए ऐक्सेस कंट्रोल हो सकते हैं.
यूज़र मैनेजमेंट
Firebase Admin SDK, ज़्यादा सुविधाओं वाले Firebase उपयोगकर्ताओं को मैनेज करने के लिए एक एपीआई उपलब्ध कराता है. Admin User Management API की मदद से, प्रोग्राम के हिसाब से उपयोगकर्ताओं को वापस लाया जा सकता है, बनाया जा सकता है, अपडेट किया जा सकता है, और मिटाया जा सकता है. इसके लिए, उपयोगकर्ता के मौजूदा क्रेडेंशियल की ज़रूरत नहीं होती. साथ ही, क्लाइंट-साइड रेट लिमिटिंग के बारे में चिंता करने की भी ज़रूरत नहीं होती.
उपयोगकर्ताओं को मैनेज करेंकस्टम टोकन बनाना
कस्टम टोकन बनाने का मुख्य मकसद, उपयोगकर्ताओं को बाहरी या लेगसी पुष्टि करने के तरीके के ख़िलाफ़ पुष्टि करने की अनुमति देना है. यह ऐसा हो सकता है जिसे कंट्रोल करने का अधिकार आपके पास हो. जैसे, आपका एलडीएपी सर्वर. इसके अलावा, यह तीसरे पक्ष का ऐसा 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 के ज़रिए किसी उपयोगकर्ता के लिए कस्टम दावों में बदलाव करने के बाद, उन्हें क्लाइंट-साइड पर पुष्टि किए गए उपयोगकर्ताओं को उनके आईडी टोकन के ज़रिए भेजा जाता है. आईडी टोकन, इन कस्टम दावों को डिलीवर करने का एक भरोसेमंद तरीका है. साथ ही, पुष्टि किए गए सभी ऐक्सेस को, इससे जुड़े अनुरोध को प्रोसेस करने से पहले आईडी टोकन की पुष्टि करनी होगी.
कस्टम दावे की मदद से ऐक्सेस कंट्रोल करना