ব্যবহারকারীর অনুমোদন কিভাবে কাজ করে

আপনি যদি Google আইডেন্টিটি পরিষেবা বা অনুমোদনের সাথে নতুন বা অপরিচিত হন, ওভারভিউ পড়ে শুরু করুন।

Google একটি জাভাস্ক্রিপ্ট লাইব্রেরি অফার করে যাতে আপনাকে সুযোগগুলি পরিচালনা করতে, ব্যবহারকারীর সম্মতি পেতে এবং স্ট্যান্ডার্ড OAuth 2.0 ফ্লোগুলির সাথে আরও সহজে কাজ করতে সহায়তা করার জন্য অনুমোদনের বৈশিষ্ট্যগুলি রয়েছে৷ আপনার ওয়েব অ্যাপ্লিকেশন, ব্যবহারকারীর ব্রাউজারে চলমান, এই লাইব্রেরিটি ব্যবহার করে OAuth 2.0 অন্তর্নিহিত প্রবাহ পরিচালনা করতে, অথবা অনুমোদন কোড প্রবাহ শুরু করতে যা আপনার ব্যাকএন্ড প্ল্যাটফর্মে শেষ হয়৷

প্রমাণীকরণ শুধুমাত্র সুযোগ

বেশ কয়েকটি স্কোপ শুধুমাত্র ব্যবহারকারীর প্রমাণীকরণের জন্য ব্যবহার করা হয়: email , profile , এবং openid । যদি আপনার অ্যাপ শুধুমাত্র এই স্কোপগুলি ব্যবহার করে, তাহলে বিবেচনা করুন যে ব্যবহারকারীর সাইন-আপ এবং সাইন-ইন করার জন্য একটি JWT আইডি টোকেন এবং Google-এর সাথে সাইন ইন করুন আপনার চাহিদা পূরণ করে কিনা। বেশিরভাগ ক্ষেত্রে, এটি ব্যবহারকারীর প্রমাণীকরণের জন্য উপলব্ধ সবচেয়ে সহজ এবং সহজ পদ্ধতি।

মূল শর্তাবলী এবং ধারণা

এই নির্দেশিকাগুলি অনুমান করে যে আপনি OAuth 2.0 ধারণা এবং RFC6749- এর মতো IETF মান সম্পর্কে প্রাথমিক ধারণা পেয়েছেন। নিম্নলিখিত শর্তাবলী অনুমোদন নির্দেশিকা জুড়ে ব্যবহৃত হয়:

  • অ্যাক্সেস টোকেন হল Google দ্বারা জারি করা ব্যবহারকারীর প্রতি স্বল্পকালীন একটি শংসাপত্র যা নিরাপদে Google API কল করতে এবং ব্যবহারকারীর ডেটা অ্যাক্সেস করতে ব্যবহৃত হয়।
  • অনুমোদন কোড হল একটি অস্থায়ী কোড যা Google দ্বারা জারি করা পৃথক ব্যবহারকারীদের নিরাপদে সনাক্ত করার জন্য যারা একটি ব্রাউজার থেকে তাদের Google অ্যাকাউন্টে সাইন ইন করে। আপনার ব্যাকএন্ড প্ল্যাটফর্ম অ্যাক্সেস এবং রিফ্রেশ টোকেন জন্য এই কোড বিনিময়.
  • রিফ্রেশ টোকেন হল Google দ্বারা জারি করা প্রতি ব্যবহারকারীর জন্য একটি দীর্ঘস্থায়ী শংসাপত্র যা আপনার প্ল্যাটফর্মে সুরক্ষিতভাবে সংরক্ষণ করা হয় এবং ব্যবহারকারী উপস্থিত না থাকলেও একটি নতুন, বৈধ অ্যাক্সেস টোকেন পেতে ব্যবহার করা যেতে পারে।
  • স্কোপ টোকেনগুলিকে একটি সংজ্ঞায়িত এবং সীমিত পরিমাণ ব্যবহারকারী ডেটাতে সীমাবদ্ধ করে, আরও জানতে Google API-এর জন্য OAuth 2.0 স্কোপ দেখুন।
  • পপআপ মোড হল ব্যবহারকারীর ব্রাউজারে চলমান জাভাস্ক্রিপ্ট কলব্যাকের উপর ভিত্তি করে একটি অনুমোদন কোড প্রবাহ। Google আপনার কলব্যাক হ্যান্ডলারকে আহ্বান করে যেটি আপনার প্ল্যাটফর্মে প্রমাণীকরণ কোড পাঠানোর জন্য দায়ী, এটি কীভাবে করা হয় তা আপনার উপর নির্ভর করে।
  • রিডাইরেক্ট মোড হল HTTP রিডাইরেক্টের উপর ভিত্তি করে একটি অনুমোদন কোড প্রবাহ। ব্যবহারকারী-এজেন্টকে প্রথমে Google-এ রিডাইরেক্ট করা হয়, Google থেকে আপনার প্ল্যাটফর্মের অনুমোদন কোড এন্ডপয়েন্টে দ্বিতীয় রিডাইরেক্ট কোডটি অন্তর্ভুক্ত করে।

টোকেন জীবনকাল ইস্যুকারী হিসাবে Google দ্বারা সেট করা হয়। বিভিন্ন কারণের কারণে সঠিক সময়কাল পরিবর্তিত হতে পারে।

OAuth 2.0 প্রবাহ

দুটি প্রবাহ, অন্তর্নিহিত এবং অনুমোদন কোড নিয়ে আলোচনা করা হয়েছে। উভয়ই Google API-এর সাথে ব্যবহারের জন্য উপযুক্ত একটি অ্যাক্সেস টোকেন ফেরত দেয়।

অনুমোদন কোড প্রবাহ সুপারিশ করা হয় কারণ এটি উন্নত ব্যবহারকারী নিরাপত্তা প্রদান করে। এই প্রবাহটি একটি রিফ্রেশ টোকেনও ফেরত দেয় যা ব্যবহারকারীকে উপস্থিত না করেই অ্যাক্সেস টোকেনগুলি পেতে ব্যবহার করা যেতে পারে, আপনার প্ল্যাটফর্মটিকে আরও সহজে অ্যাসিঙ্ক্রোনাস অ্যাকশনগুলি সম্পাদন করতে সক্ষম করে যেমন একটি আসন্ন মিটিংয়ের একটি এসএমএস রিমাইন্ডার পাঠানো যা শেষ মুহূর্তে নির্ধারিত হয়েছিল৷ একটি অনুমোদন মডেল চয়ন করুন আরও বিস্তারিতভাবে দুটি প্রবাহের মধ্যে পার্থক্য ব্যাখ্যা করে।

Google Identity Services JavaScript লাইব্রেরি OAuth 2.0 মানকে অনুসরণ করে:

  • আপনার ব্রাউজার ওয়েব অ্যাপকে দ্রুত এবং সহজে Google থেকে একটি অ্যাক্সেস টোকেন পেতে সক্ষম করতে অন্তর্নিহিত প্রবাহ পরিচালনা করুন যা Google API কল করার জন্য প্রয়োজনীয়।
  • ব্যবহারকারীর ব্রাউজার থেকে অনুমোদন কোড প্রবাহ শুরু করুন।

সাধারণ পদক্ষেপ

অন্তর্নিহিত এবং অনুমোদন কোড প্রবাহ উভয় একই ভাবে শুরু হয়:

  1. আপনার অ্যাপ এক বা একাধিক স্কোপে অ্যাক্সেসের অনুরোধ করে।
  2. Google ব্যবহারকারীকে একটি সম্মতি ডায়ালগ প্রদর্শন করে এবং প্রয়োজনে প্রথমে ব্যবহারকারীকে তাদের Google অ্যাকাউন্টে সাইন ইন করে।
  3. ব্যবহারকারী পৃথকভাবে প্রতিটি অনুরোধ করা সুযোগ অনুমোদন করে।

প্রতিটি প্রবাহ তারপর বিভিন্ন ধাপে শেষ হয়।

অন্তর্নিহিত প্রবাহ ব্যবহার করার সময়

  • Google একটি কলব্যাক হ্যান্ডলার ব্যবহার করে আপনার অ্যাপকে সম্মতির ফলাফল সম্পর্কে অবহিত করে এবং যেকোনো অনুমোদিত সুযোগের জন্য একটি অ্যাক্সেস টোকেন ফেরত দেয়।

প্রমাণীকরণ কোড প্রবাহ ব্যবহার করার সময়

  • Google প্রতি ব্যবহারকারী অনুমোদন কোড দিয়ে প্রতিক্রিয়া জানায়:
    • রিডাইরেক্ট মোডে, কোডটি আপনার প্ল্যাটফর্মের অনুমোদন কোড এন্ডপয়েন্টে ফিরিয়ে দেওয়া হয়।
    • পপআপ মোডে, ব্যবহারকারীদের আপনার ওয়েবসাইট ছেড়ে যাওয়ার প্রয়োজন ছাড়াই কোডটি আপনার ব্রাউজার অ্যাপের কলব্যাক হ্যান্ডলারে ফেরত দেওয়া হয়।
  • ধাপ 4 থেকে শুরু: OAuth 2.0 সার্ভারের প্রতিক্রিয়া পরিচালনা করুন আপনার ব্যাকএন্ড প্ল্যাটফর্ম Google-এর সাথে সার্ভার-টু-সার্ভার বিনিময় সম্পন্ন করে, যার ফলে শেষ পর্যন্ত ব্যবহারকারী প্রতি একটি রিফ্রেশ টোকেন এবং অ্যাক্সেস টোকেন আপনার প্ল্যাটফর্মে ফেরত দেওয়া হয়।

একটি অ্যাক্সেস টোকেন পাওয়ার আগে স্বতন্ত্র ব্যবহারকারীদের অনুরোধ করা সুযোগগুলি অ্যাক্সেস করার জন্য আপনার অ্যাপের জন্য সম্মতি দিতে হবে। এটি করার জন্য, উপরের ধাপ 2 চলাকালীন Google একটি সম্মতি ডায়ালগ প্রদর্শন করে এবং ফলাফলটি myaccount.google.com/permissions- এ রেকর্ড করে।

আপনার অ্যাপের নাম, লোগো, গোপনীয়তা নীতি, পরিষেবার শর্তাবলী এবং অনুরোধকৃত স্কোপ ব্যবহারকারীর কাছে অনুরোধ অনুমোদন বা বাতিল করার বিকল্পের সাথে প্রদর্শিত হয়।

চিত্র 1-এ, একটি একক সুযোগের জন্য সম্মতি ডায়ালগ দেখানো হয়েছে। যখন একটি একক সুযোগের অনুরোধ করা হয়, একটি সুযোগ অনুমোদন বা অস্বীকার করার জন্য কোন চেকবক্সের প্রয়োজন হয় না।

User consent dialog with Cancel or Continue buttons and a single scope, no
checkboxes are shown.

চিত্র 1: একক সুযোগ সহ ব্যবহারকারীর সম্মতি ডায়ালগ।

চিত্র 2-এ, একাধিক স্কোপের জন্য সম্মতি ডায়ালগ দেখানো হয়েছে। যখন একাধিক সুযোগের অনুরোধ করা হয় তখন ব্যবহারকারীকে প্রতিটি সুযোগ অনুমোদন বা অস্বীকার করার জন্য পৃথক চেকবক্সের প্রয়োজন হয়।

User consent dialog with Cancel or Continue buttons and multiple scopes, each
scope has a checkbox
selector.

চিত্র 2: একাধিক স্কোপ সহ ব্যবহারকারীর সম্মতি ডায়ালগ।

ব্যবহারকারীর অ্যাকাউন্ট

সম্মতি রেকর্ড করতে এবং একটি অ্যাক্সেস টোকেন ইস্যু করার জন্য একটি Google অ্যাকাউন্ট প্রয়োজন। এর আগে, স্বতন্ত্র ব্যবহারকারীদের অবশ্যই একটি Google অ্যাকাউন্টে সাইন-ইন করে নিজেকে Google-এ প্রমাণীকরণ করতে হবে।

প্রয়োজন না হলেও, এটি সুপারিশ করা হয় যে Google এর সাথে সাইন ইন করুন সাইন-আপ করার জন্য এবং আপনার ওয়েব অ্যাপ বা ব্যাকএন্ড প্ল্যাটফর্মে সাইন-ইন করার জন্য। এটি করার ফলে প্রয়োজনীয় পদক্ষেপের সংখ্যা কমিয়ে ব্যবহারকারীর ঘর্ষণ হ্রাস পায় এবং ঐচ্ছিকভাবে আপনাকে আপনার প্ল্যাটফর্মে পৃথক অ্যাকাউন্টগুলির সাথে অ্যাক্সেস টোকেনগুলিকে সহজেই সংযুক্ত করতে সক্ষম করে।

উদাহরণস্বরূপ, Google এর সাথে সাইন ইন ব্যবহার করে একটি সক্রিয় Google অ্যাকাউন্ট সেশন প্রতিষ্ঠা করে, এইভাবে ব্যবহারকারীকে অনুমোদনের অনুরোধ করার সময় একটি Google অ্যাকাউন্টে সাইন-ইন করার জন্য অনুরোধ করার প্রয়োজনটি এড়িয়ে যায়। আপনি যদি ব্যবহারকারীর নাম এবং পাসওয়ার্ড বা অন্যান্য পরিচয় প্রদানকারীর মতো অন্য উপায়ে আপনার অ্যাপে ব্যবহারকারীদের প্রমাণীকরণ করতে চান, তাহলেও তাদের সম্মতির জন্য প্রথমে একটি Google অ্যাকাউন্টে সাইন ইন করতে হবে।

অনুমোদন শুরু করার সময় একটি লগইন ইঙ্গিত যোগ করা--সাধারণত ব্যবহারকারীর Google অ্যাকাউন্টের ইমেল ঠিকানা-- Google-কে একটি অ্যাকাউন্ট চয়নকারীর প্রদর্শন এড়িয়ে যেতে সক্ষম করে, ব্যবহারকারীদের একটি ধাপ সংরক্ষণ করে। আইডি টোকেন শংসাপত্র সাইন ইন Google এর মাধ্যমে ফেরত দেওয়া ব্যবহারকারীর ইমেল ঠিকানা রয়েছে৷

শুধুমাত্র ব্রাউজারে চলমান ওয়েব অ্যাপগুলি ব্যবহারকারীর প্রমাণীকরণের জন্য শুধুমাত্র Google-এর উপর নির্ভর করতে পারে, ব্যবহারকারীর অ্যাকাউন্ট পরিচালনা ব্যবস্থা প্রয়োগ না করা বেছে নিতে পারে। এই পরিস্থিতিতে, অন্তর্নিহিত প্রবাহ হিসাবে পরিচিত, একটি ব্যবহারকারী অ্যাকাউন্ট এবং ব্যবস্থাপনা সুরক্ষিত সঞ্চয়স্থানের সাথে একটি রিফ্রেশ টোকেন সংযুক্ত করার প্রয়োজন নেই৷

বিকল্পভাবে, অনুমোদন কোড প্রবাহের জন্য একটি ব্যবহারকারী অ্যাকাউন্ট সিস্টেম প্রয়োজন। প্রতি ব্যবহারকারী রিফ্রেশ টোকেন অবশ্যই আপনার ব্যাকএন্ড প্ল্যাটফর্মে একটি পৃথক অ্যাকাউন্টের সাথে যুক্ত হতে হবে এবং পরবর্তীতে ব্যবহারের জন্য সংরক্ষণ করতে হবে। কিভাবে একটি ব্যবহারকারী অ্যাকাউন্ট সিস্টেম বাস্তবায়ন, এর সাথে কাজ এবং পরিচালনা করবেন তা আপনার প্ল্যাটফর্মের জন্য অনন্য এবং আরও বিশদে আলোচনা করা হয়নি।

ব্যবহারকারীরা তাদের Google অ্যাকাউন্ট সেটিংস থেকে যেকোনো সময় সম্মতি দেখতে বা প্রত্যাহার করতে পারে।

ঐচ্ছিকভাবে, আপনার ওয়েব অ্যাপ বা প্ল্যাটফর্ম টোকেন প্রত্যাহার করতে google.accounts.oauth2.revoke কল করতে পারে এবং ব্যবহারকারীর সম্মতি মুছে ফেলতে পারে, যখন কোনও ব্যবহারকারী আপনার প্ল্যাটফর্ম থেকে তাদের অ্যাকাউন্ট মুছে ফেলতে পারে।

অন্যান্য অনুমোদনের বিকল্প

বিকল্পভাবে, ব্রাউজারগুলি ক্লায়েন্ট-সাইড ওয়েব অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 দ্বারা বর্ণিত Google-এর OAuth 2.0 এন্ডপয়েন্টগুলিতে সরাসরি কল করে অন্তর্নিহিত প্রবাহ ব্যবহার করে অ্যাক্সেস টোকেন পেতে পারে।

একইভাবে, অনুমোদন কোড প্রবাহের জন্য আপনি আপনার নিজস্ব পদ্ধতিগুলি বাস্তবায়ন করতে বেছে নিতে পারেন এবং ওয়েব সার্ভার অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 ব্যবহারে বর্ণিত ধাপগুলি অনুসরণ করতে পারেন৷

উভয় ক্ষেত্রেই আমরা দৃঢ়ভাবে আপনার বিকাশের সময় এবং প্রচেষ্টা কমাতে এবং OAuth 2.0 সিকিউরিটি বেস্ট কারেন্ট প্র্যাকটিস দ্বারা বর্ণিত নিরাপত্তা ঝুঁকি কমাতে Google আইডেন্টিটি সার্ভিসেস লাইব্রেরি ব্যবহার করার পরামর্শ দিই।