Firebase Admin SDK আপনাকে Firebase Authentication সাথে আপনার নিজস্ব সার্ভারগুলিকে একীভূত করার সুযোগ দেয়। আপনি আপনার ব্যবহারকারীদের অথবা অথেনটিকেশন টোকেনগুলি পরিচালনা করতে Firebase Admin SDK ব্যবহার করতে পারেন। এমন অনেক কারণ রয়েছে যার জন্য আপনি এটি করতে চাইতে পারেন:
ব্যবহারকারী ব্যবস্থাপনা
আপনার Firebase ব্যবহারকারীদের পরিচালনা করার জন্য Firebase কনসোলে যেতে হওয়াটা সবসময় সুবিধাজনক নয়। অ্যাডমিন ইউজার ম্যানেজমেন্ট এপিআই সেই একই ব্যবহারকারীদের প্রোগ্রাম্যাটিক অ্যাক্সেস প্রদান করে। এটি আপনাকে এমন কিছু কাজও করতে দেয় যা Firebase কনসোল করতে পারে না, যেমন একজন ব্যবহারকারীর সম্পূর্ণ ডেটা পুনরুদ্ধার করা এবং তার পাসওয়ার্ড, ইমেল ঠিকানা বা ফোন নম্বর পরিবর্তন করা।
কাস্টম প্রমাণীকরণ
আপনি Firebase সাথে একটি বাহ্যিক ব্যবহারকারী সিস্টেম সংহত করতে পারেন। উদাহরণস্বরূপ, আপনার হয়তো আগে থেকেই একটি ব্যবহারকারী ডেটাবেস থাকতে পারে অথবা আপনি এমন কোনো তৃতীয়-পক্ষের পরিচয় প্রদানকারীর সাথে সংহত করতে চাইতে পারেন, যাকে Firebase Authentication স্বাভাবিকভাবে সমর্থন করে না।
এটি করার জন্য, আপনি ব্যবহারকারীকে শনাক্তকারী ইচ্ছামতো ক্লেইমসহ কাস্টম টোকেন তৈরি করতে পারেন। এরপর এই কাস্টম টোকেনগুলো একটি ক্লায়েন্ট অ্যাপ্লিকেশনে Firebase Authentication সার্ভিসে সাইন ইন করতে এবং টোকেনের ক্লেইম দ্বারা বর্ণিত পরিচয়টি গ্রহণ করতে ব্যবহার করা যেতে পারে। এই পরিচয়টি তখন Cloud Storage মতো অন্যান্য Firebase পরিষেবা অ্যাক্সেস করার সময় ব্যবহৃত হবে।
পরিচয় যাচাইকরণ
Firebase Authentication প্রধানত আপনার অ্যাপের ব্যবহারকারীদের শনাক্ত করতে ব্যবহৃত হয়, যাতে Cloud Storage মতো অন্যান্য পরিষেবাগুলিতে অ্যাক্সেস সীমাবদ্ধ করা যায়। আপনি আপনার নিজের সার্ভারেও এই ব্যবহারকারীদের শনাক্ত করতে পরিষেবাটি ব্যবহার করতে পারেন। এর ফলে, Firebase Authentication দিয়ে সাইন ইন করা ব্যবহারকারীদের পক্ষ থেকে আপনি নিরাপদে সার্ভার-সাইড লজিক সম্পাদন করতে পারেন।
এটি করার জন্য, আপনি Firebase Authentication দিয়ে সাইন ইন করা একটি ক্লায়েন্ট অ্যাপ্লিকেশন থেকে একটি আইডি টোকেন সংগ্রহ করতে পারেন এবং আপনার সার্ভারে পাঠানো অনুরোধে টোকেনটি অন্তর্ভুক্ত করতে পারেন। এরপর আপনার সার্ভার আইডি টোকেনটি যাচাই করে এবং ব্যবহারকারীকে শনাক্তকারী ক্লেইমগুলো (যেমন তাদের uid , যে আইডেন্টিটি প্রোভাইডার দিয়ে তারা লগ ইন করেছেন, ইত্যাদি) বের করে নেয়। এই পরিচয় সংক্রান্ত তথ্য তখন আপনার সার্ভার ব্যবহারকারীর পক্ষ থেকে বিভিন্ন কাজ সম্পাদন করার জন্য ব্যবহার করতে পারে।
Firebase Admin SDK আপনাকে আপনার ব্যবহারকারীদের পরিচালনা করতে, কাস্টম টোকেন তৈরি করতে এবং আইডি টোকেন যাচাই করতে সক্ষম করার মাধ্যমে উপরোক্ত প্রমাণীকরণের কাজগুলো সম্পন্ন করার পদ্ধতি প্রদান করে।
কাস্টম ব্যবহারকারীর দাবি
কিছু ক্ষেত্রে, আপনি ইমেল/পাসওয়ার্ড, গুগল, ফেসবুক, ফোন ইত্যাদির মতো সমর্থিত Firebase অথেন্টিকেশন প্রোভাইডারগুলির কোনো একটি দিয়ে আগে থেকেই সাইন ইন করা ব্যবহারকারীদের জন্য সূক্ষ্ম অ্যাক্সেস কন্ট্রোল প্রয়োগ করতে চাইতে পারেন। কাস্টম ইউজার ক্লেইম এবং অ্যাপ্লিকেশন সিকিউরিটি রুলের সমন্বয় এই সক্ষমতা প্রদান করে। উদাহরণস্বরূপ, Firebase Authentication ইমেল এবং পাসওয়ার্ড প্রোভাইডার দিয়ে সাইন ইন করা একজন ব্যবহারকারীর জন্য কাস্টম ক্লেইম ব্যবহার করে অ্যাক্সেস কন্ট্রোল নির্ধারণ করা যেতে পারে।
ব্যবহারকারী ব্যবস্থাপনা
Firebase Admin SDK আপনার Firebase ব্যবহারকারীদের উচ্চতর বিশেষাধিকার সহ পরিচালনা করার জন্য একটি এপিআই প্রদান করে। অ্যাডমিন ব্যবহারকারী ব্যবস্থাপনা এপিআই আপনাকে কোনো ব্যবহারকারীর বিদ্যমান ক্রেডেনশিয়ালের প্রয়োজন ছাড়াই এবং ক্লায়েন্ট-সাইড রেট লিমিটিং নিয়ে চিন্তা না করেই প্রোগ্রাম্যাটিকভাবে ব্যবহারকারীদের পুনরুদ্ধার, তৈরি, আপডেট এবং মুছে ফেলার ক্ষমতা দেয়।
ব্যবহারকারীদের পরিচালনা করুনকাস্টম টোকেন তৈরি
কাস্টম টোকেন তৈরির প্রধান উদ্দেশ্য হলো ব্যবহারকারীদের কোনো বাহ্যিক বা পুরোনো প্রমাণীকরণ পদ্ধতির মাধ্যমে প্রমাণীকরণের সুযোগ দেওয়া। এটি আপনার নিয়ন্ত্রণে থাকা কোনো পদ্ধতি হতে পারে, যেমন আপনার LDAP সার্ভার, অথবা কোনো তৃতীয় পক্ষের OAuth প্রদানকারী, যাকে Firebase স্বাভাবিকভাবে সমর্থন করে না, যেমন Instagram বা LinkedIn।
Firebase Admin SDK কাস্টম টোকেন তৈরি করার জন্য একটি বিল্ট-ইন পদ্ধতি রয়েছে। এছাড়াও, আপনি থার্ড-পার্টি JWT লাইব্রেরি ব্যবহার করে যেকোনো ভাষায় প্রোগ্রাম্যাটিকভাবে কাস্টম টোকেন তৈরি করতে পারেন।
আপনার সার্ভার একটি অনন্য শনাক্তকারী ( uid ) সহ একটি কাস্টম টোকেন তৈরি করবে এবং সেই টোকেনটি একটি ক্লায়েন্ট অ্যাপে পাঠাবে, যা Firebase সাইন ইন করতে এটি ব্যবহার করবে। কাস্টম টোকেন তৈরির প্রক্রিয়া সম্পর্কে কোড নমুনা এবং আরও বিস্তারিত জানতে ‘কাস্টম টোকেন তৈরি করুন’ দেখুন।
আইডি টোকেন যাচাইকরণ
যদি আপনার Firebase ক্লায়েন্ট অ্যাপ আপনার ব্যাকএন্ড সার্ভারের সাথে যোগাযোগ করে, তবে আপনার সার্ভারে বর্তমানে সাইন-ইন করা ব্যবহারকারীকে শনাক্ত করার প্রয়োজন হতে পারে, যাতে আপনি তাদের পক্ষ থেকে সার্ভার-সাইড লজিক সম্পাদন করতে পারেন। আপনি আইডি টোকেন ব্যবহার করে এটি নিরাপদে করতে পারেন, যা কোনো ব্যবহারকারী Firebase অ্যাপে সাইন ইন করলে Firebase দ্বারা তৈরি হয়। আইডি টোকেনগুলো ওপেনআইডি কানেক্ট স্পেক মেনে চলে এবং এতে একজন ব্যবহারকারীকে শনাক্ত করার ডেটার পাশাপাশি প্রোফাইল ও প্রমাণীকরণ সম্পর্কিত আরও কিছু তথ্য থাকে। আপনি আপনার নিজের ব্যাকএন্ড থেকে এই টোকেনগুলো পাঠাতে, যাচাই করতে এবং পরীক্ষা করতে পারেন। এটি আপনাকে বর্তমানে সাইন-ইন করা ব্যবহারকারীকে নিরাপদে শনাক্ত করতে এবং আপনার নিজের ব্যাকএন্ড রিসোর্সগুলোতে তাদের অনুমোদন দিতে সাহায্য করে।
Firebase Admin SDK আইডি টোকেন যাচাই করার জন্য একটি বিল্ট-ইন পদ্ধতি রয়েছে। এছাড়াও আপনি থার্ড-পার্টি JWT লাইব্রেরি ব্যবহার করে যেকোনো ভাষায় প্রোগ্রাম্যাটিকভাবে আইডি টোকেন যাচাই করতে পারেন। আইডি টোকেন যাচাইকরণ প্রক্রিয়া সম্পর্কে আরও বিস্তারিত তথ্য এবং কোড নমুনার জন্য ‘আইডি টোকেন যাচাই করুন’ দেখুন।
কাস্টম ব্যবহারকারীর দাবি
Firebase Admin SDK আপনাকে ব্যবহারকারী অ্যাকাউন্টে কাস্টম অ্যাট্রিবিউট সেট করার সুযোগ দেয়। কাস্টম ইউজার ক্লেইমের মাধ্যমে, আপনি ব্যবহারকারীদের বিভিন্ন স্তরের অ্যাক্সেস (ভূমিকা) দিতে পারেন, যা পরবর্তীতে একটি অ্যাপ্লিকেশনের নিরাপত্তা নিয়মে প্রয়োগ করা হয়।
Firebase Admin SDK মাধ্যমে কোনো ব্যবহারকারীর কাস্টম ক্লেইম পরিবর্তন করার পর, সেগুলি ক্লায়েন্ট সাইডে প্রমাণীকৃত ব্যবহারকারীদের কাছে তাদের আইডি টোকেনের মাধ্যমে পাঠানো হয়। এই কাস্টম ক্লেইমগুলি পৌঁছে দেওয়ার জন্য আইডি টোকেন একটি বিশ্বস্ত ব্যবস্থা, এবং সংশ্লিষ্ট অনুরোধটি প্রক্রিয়া করার আগে সমস্ত প্রমাণীকৃত অ্যাক্সেসকে অবশ্যই আইডি টোকেনটি যাচাই করতে হয়।
কাস্টম ক্লেইমের মাধ্যমে অ্যাক্সেস নিয়ন্ত্রণ করুন