প্রমাণীকরণ এবং অনুমোদন সম্পর্কে জানুন

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

প্রমাণীকরণ শনাক্ত করে কে অনুরোধটি করছে। অনুমোদন শনাক্ত করে যে অনুরোধকারী কোন কোন রিসোর্স অ্যাক্সেস করতে পারবে এবং তার অ্যাক্সেসের স্তর কী। অনুমোদনের জন্য প্রমাণীকরণ একটি পূর্বশর্ত। অনুরোধকারীর পরিচয় প্রথমে নিশ্চিত না করে আপনি কোন কোন রিসোর্স অ্যাক্সেস করবেন তা নির্ধারণ করতে পারবেন না। আরও বিস্তারিত সংজ্ঞার জন্য, গুরুত্বপূর্ণ পরিভাষা বিভাগটি দেখুন।

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

প্রক্রিয়ার সংক্ষিপ্ত বিবরণ

নিম্নলিখিত ডায়াগ্রামটিতে গুগল ওয়ার্কস্পেস এপিআই-এর জন্য প্রমাণীকরণ এবং অনুমোদনের প্রধান ধাপগুলো দেখানো হয়েছে:

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

  2. অ্যাক্সেসের জন্য আপনার অ্যাপকে প্রমাণীকরণ করুন: যখন আপনার অ্যাপ চলে, তখন নিবন্ধিত অ্যাক্সেস ক্রেডেনশিয়ালগুলো মূল্যায়ন করা হয়। যদি আপনার অ্যাপ একজন সাধারণ ব্যবহারকারী হিসেবে প্রমাণীকরণ করে, তাহলে একটি সাইন-ইন প্রম্পট প্রদর্শিত হতে পারে।

  3. রিসোর্সের জন্য অনুরোধ: যখন আপনার অ্যাপের গুগল রিসোর্সে অ্যাক্সেসের প্রয়োজন হয়, তখন এটি আপনার পূর্বে নিবন্ধিত প্রাসঙ্গিক অ্যাক্সেস স্কোপ ব্যবহার করে গুগলকে অনুরোধ করে।

  4. ব্যবহারকারীর সম্মতি চান: আপনার অ্যাপ যদি একজন সাধারণ ব্যবহারকারী হিসেবে প্রমাণীকরণ করে, তাহলে Google OAuth সম্মতি স্ক্রিনটি প্রদর্শন করে, যাতে ব্যবহারকারী আপনার অ্যাপকে অনুরোধ করা ডেটা অ্যাক্সেস করার অনুমতি দেবেন কিনা, সে বিষয়ে সিদ্ধান্ত নিতে পারেন।

  5. রিসোর্সের জন্য অনুমোদিত অনুরোধ পাঠান: যদি ব্যবহারকারী অ্যাক্সেসের পরিধিতে সম্মতি দেন, তাহলে আপনার অ্যাপ ক্রেডেনশিয়াল এবং ব্যবহারকারী-অনুমোদিত অ্যাক্সেসের পরিধিগুলোকে একটি অনুরোধে একত্রিত করে। একটি অ্যাক্সেস টোকেন পাওয়ার জন্য অনুরোধটি গুগল অথরাইজেশন সার্ভারে পাঠানো হয়।

  6. গুগল একটি অ্যাক্সেস টোকেন ফেরত দেয়: এই অ্যাক্সেস টোকেনে অনুমোদিত অ্যাক্সেস স্কোপগুলোর একটি তালিকা থাকে। যদি ফেরত আসা স্কোপের তালিকাটি অনুরোধ করা অ্যাক্সেস স্কোপের চেয়ে বেশি সীমিত হয়, তাহলে আপনার অ্যাপ টোকেন দ্বারা সীমিত যেকোনো ফিচার নিষ্ক্রিয় করে দেয়।

  7. অনুরোধকৃত রিসোর্স অ্যাক্সেস করুন: আপনার অ্যাপ প্রাসঙ্গিক এপিআইগুলো কল করতে এবং রিসোর্সগুলো অ্যাক্সেস করতে গুগলের অ্যাক্সেস টোকেন ব্যবহার করে।

  8. রিফ্রেশ টোকেন সংগ্রহ করুন (ঐচ্ছিক): যদি আপনার অ্যাপের একটিমাত্র অ্যাক্সেস টোকেনের মেয়াদের পরেও কোনো গুগল এপিআই-তে অ্যাক্সেসের প্রয়োজন হয়, তবে এটি একটি রিফ্রেশ টোকেন সংগ্রহ করতে পারে।

  9. আরও রিসোর্সের জন্য অনুরোধ: যদি অতিরিক্ত অ্যাক্সেসের প্রয়োজন হয়, আপনার অ্যাপ ব্যবহারকারীকে নতুন অ্যাক্সেসের সুযোগ মঞ্জুর করতে বলে, যার ফলে একটি অ্যাক্সেস টোকেন পাওয়ার জন্য নতুন করে অনুরোধ করা হয় (ধাপ ৩-৬)।

গুরুত্বপূর্ণ পরিভাষা

নিম্নলিখিত তালিকাটি প্রমাণীকরণ এবং অনুমোদন সম্পর্কিত পরিভাষাগুলো চিহ্নিত করে:

প্রমাণীকরণ

কোনো মূল ব্যক্তি (যিনি একজন ব্যবহারকারী বা ব্যবহারকারীর পক্ষে কাজ করা কোনো অ্যাপ হতে পারেন) যে নিজের পরিচয় দিচ্ছেন, তিনি আসলেই সেই ব্যক্তি কি না, তা নিশ্চিত করার প্রক্রিয়া। গুগল ওয়ার্কস্পেস অ্যাপ লেখার সময়, আপনার এই ধরনের প্রমাণীকরণ সম্পর্কে সচেতন থাকা উচিত:

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

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

শংসাপত্র

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

এপিআই কী
পাবলিক ডেটা, যেমন ম্যাপস এপিআই (Maps API) ব্যবহার করে সরবরাহ করা ডেটা, অ্যাক্সেস করার অনুরোধ জানাতে ব্যবহৃত ক্রেডেনশিয়াল। "এই লিঙ্কের মাধ্যমে ইন্টারনেটে যে কেউ" (Anyone on the Internet) সেটিং ব্যবহার করে শেয়ার করা পাবলিক গুগল ওয়ার্কস্পেস ফাইলগুলিও এইভাবে অ্যাক্সেস করা যায়, যদিও বেশিরভাগ গুগল ওয়ার্কস্পেস ডেটার জন্য OAuth 2.0 প্রয়োজন হয়।
OAuth 2 ক্লায়েন্ট আইডি
ব্যবহারকারীর মালিকানাধীন ডেটাতে অ্যাক্সেসের অনুরোধ করার জন্য ব্যবহৃত ক্রেডেনশিয়াল। গুগল ওয়ার্কস্পেস এপিআই (Google Workspace APIs) ব্যবহার করে ডেটাতে অ্যাক্সেসের অনুরোধ করার সময় এটিই প্রধান ক্রেডেনশিয়াল। এই ক্রেডেনশিয়ালটির জন্য ব্যবহারকারীর সম্মতি প্রয়োজন।
ক্লায়েন্টের গোপনীয়তা
এটি এমন একটি অক্ষর-সমষ্টি যা শুধুমাত্র আপনার অ্যাপ্লিকেশন এবং অনুমোদন সার্ভারেরই জানা থাকা উচিত। ক্লায়েন্ট সিক্রেট শুধুমাত্র অনুমোদিত অনুরোধকারীদের টোকেন প্রদান করার মাধ্যমে ব্যবহারকারীর ডেটা সুরক্ষিত রাখে। আপনার অ্যাপে কখনোই আপনার এনক্রিপ্ট না করা ক্লায়েন্ট সিক্রেট অন্তর্ভুক্ত করা উচিত নয়। আমরা ক্লায়েন্ট সিক্রেটটি নিরাপদে সংরক্ষণ করার পরামর্শ দিই। আরও তথ্যের জন্য, ‘ক্লায়েন্ট ক্রেডেনশিয়াল নিরাপদে পরিচালনা করুন ’ দেখুন।
পরিষেবা অ্যাকাউন্ট কীগুলি
গুগল পরিষেবা ব্যবহারের অনুমোদন পেতে পরিষেবা অ্যাকাউন্টগুলো এটি ব্যবহার করে।
পরিষেবা অ্যাকাউন্ট
সার্ভার-টু-সার্ভার যোগাযোগের জন্য ব্যবহৃত একটি ক্রেডেনশিয়াল, যেমন ব্যবহারকারী ইন্টারফেসবিহীন কোনো অ্যাপ্লিকেশন যা ডেটা অ্যাক্সেস করতে বা বিভিন্ন অপারেশন সম্পাদন করতে একটি প্রসেস হিসেবে চলে। সার্ভিস অ্যাকাউন্ট সাধারণত ক্লাউড-ভিত্তিক ডেটা এবং অপারেশন অ্যাক্সেস করতে ব্যবহৃত হয়। তবে, ডোমেন-ব্যাপী কর্তৃত্ব অর্পণের সাথে ব্যবহার করা হলে, এগুলি ব্যবহারকারীর ডেটা অ্যাক্সেস করতেও ব্যবহার করা যেতে পারে।
পরিধি

একটি OAuth 2.0 URI স্ট্রিং যা একটি অ্যাপকে রিসোর্স বা অ্যাকশনে অ্যাক্সেসের স্তর নির্ধারণ করে। Google Workspace-এর জন্য, অথরাইজেশন স্কোপ URI-তে Google Workspace অ্যাপের নাম, এটি কী ধরনের ডেটা অ্যাক্সেস করে এবং অ্যাক্সেসের স্তর অন্তর্ভুক্ত থাকে। আপনার অ্যাপের ব্যবহারকারীরা অনুরোধ করা স্কোপগুলো পর্যালোচনা করতে এবং কী ধরনের অ্যাক্সেস দেওয়া হবে তা বেছে নিতে পারেন, এরপর Google-এর অথেন্টিকেশন সার্ভার একটি অ্যাক্সেস টোকেনের মাধ্যমে অনুমোদিত স্কোপগুলো আপনার অ্যাপে ফেরত পাঠায়। আরও বিস্তারিত জানতে, "আপনার অ্যাপের জন্য কীভাবে স্কোপ নির্বাচন করবেন" দেখুন।

অনুমোদন সার্ভার

কোনো অ্যাপের অনুরোধ করা ডেটা ও কার্যক্রমে অ্যাক্সেস দেওয়ার জন্য, অ্যাক্সেস টোকেন ব্যবহার করে গুগলের সার্ভার।

অনুমোদন কোড

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

অ্যাক্সেস টোকেন

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

রিসোর্স সার্ভার

যে সার্ভারটি আপনার অ্যাপ দ্বারা কল করতে চাওয়া এপিআই-টি হোস্ট করছে।

OAuth 2.0 ফ্রেমওয়ার্ক

একটি স্ট্যান্ডার্ড যা আপনার অ্যাপ ব্যবহার করে ব্যবহারকারীর পক্ষ থেকে ডেটা ও অপারেশনে ‘সিকিউর ডেলিগেটেড অ্যাক্সেস’ বা অ্যাক্সেস প্রদান করতে পারে। আপনার অ্যাপে ব্যবহৃত অথেনটিকেশন এবং অথরাইজেশন পদ্ধতিগুলো OAuth 2.0 ফ্রেমওয়ার্কের আপনার নিজস্ব বাস্তবায়নকে তুলে ধরে।

অধ্যক্ষ

একটি সত্তা, যা আইডেন্টিটি নামেও পরিচিত, যাকে কোনো রিসোর্সে অ্যাক্সেস দেওয়া যেতে পারে। গুগল ওয়ার্কস্পেস এপিআই দুই ধরনের প্রিন্সিপাল সমর্থন করে: ইউজার অ্যাকাউন্ট এবং সার্ভিস অ্যাকাউন্ট। আরও বিস্তারিত জানতে, প্রিন্সিপালস দেখুন।

ডেটা টাইপ

প্রমাণীকরণ এবং অনুমোদনের প্রেক্ষাপটে, ডেটা টাইপ বলতে সেই সত্তাকে বোঝায়, যেটি আপনার অ্যাপের অ্যাক্সেস করতে চাওয়া ডেটার মালিক। ডেটা টাইপ তিন প্রকার:

পাবলিক ডোমেইন ডেটা
যে কোনো ব্যক্তির জন্য অ্যাক্সেসযোগ্য ডেটা, যেমন কিছু গুগল ম্যাপস ডেটা। এই ডেটা সাধারণত একটি এপিআই কী (API key) ব্যবহার করে অ্যাক্সেস করা হয়।
শেষ ব্যবহারকারীর ডেটা
কোনো নির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীর ডেটা, যেমন কোনো নির্দিষ্ট ব্যবহারকারীর গুগল ড্রাইভ ফাইল। এই ধরনের ডেটা সাধারণত একটি OAuth 2 ক্লায়েন্ট আইডি বা পরিষেবা অ্যাকাউন্ট ব্যবহার করে অ্যাক্সেস করা হয়।
ক্লাউড ডেটা
গুগল ক্লাউড প্রকল্পের মালিকানাধীন ডেটা। এই ডেটা টাইপটি সাধারণত একটি সার্ভিস অ্যাকাউন্টের মাধ্যমে অ্যাক্সেস করা হয়।
ব্যবহারকারীর সম্মতি

এটি একটি অনুমোদন ধাপ, যেখানে আপনার অ্যাপের ব্যবহারকারীকে তার পক্ষ থেকে ডেটা অ্যাক্সেস করতে এবং বিভিন্ন কার্যক্রম সম্পাদন করার জন্য অ্যাপটিকে অনুমোদন দিতে হয়।

আবেদনের ধরণ

আপনি যে ধরনের অ্যাপ তৈরি করতে যাচ্ছেন। গুগল ক্লাউড কনসোল ব্যবহার করে ক্রেডেনশিয়াল তৈরি করার সময়, আপনাকে আপনার অ্যাপ্লিকেশনের ধরন নির্বাচন করতে বলা হয়। অ্যাপ্লিকেশনের ধরনগুলো হলো: ওয়েব অ্যাপ্লিকেশন (জাভাস্ক্রিপ্ট), অ্যান্ড্রয়েড, ক্রোম এক্সটেনশন, আইওএস, টিভি ও সীমিত ইনপুট ডিভাইস, এবং ডেস্কটপ অ্যাপ (যাকে "ইনস্টলড অ্যাপ"ও বলা হয়)।

পরিষেবা অ্যাকাউন্ট

এক বিশেষ ধরনের গুগল অ্যাকাউন্ট, যা এমন একজন অ-মানব ব্যবহারকারীর প্রতিনিধিত্ব করার জন্য তৈরি করা হয়েছে, যাকে ডেটা অ্যাক্সেস করার জন্য প্রমাণীকরণ ও অনুমোদন করতে হয়। আপনার অ্যাপ্লিকেশনটি গুগল এপিআই (Google APIs) কল করার জন্য সার্ভিস অ্যাকাউন্টের পরিচয় গ্রহণ করে, ফলে ব্যবহারকারীরা সরাসরি এতে জড়িত থাকেন না। সার্ভিস অ্যাকাউন্টগুলো নিজে থেকে গুগল ওয়ার্কস্পেস এপিআই (Google Workspace APIs) ব্যবহার করে প্রচলিতভাবে অ্যাক্সেস করা ব্যবহারকারীর ডেটা অ্যাক্সেস করতে পারে না। তবে, একটি সার্ভিস অ্যাকাউন্ট ডোমেন-ব্যাপী কর্তৃত্ব অর্পণ (delegation of authority) বাস্তবায়নের মাধ্যমে ব্যবহারকারীর ডেটা অ্যাক্সেস করতে পারে। আরও বিস্তারিত জানতে, ‘সার্ভিস অ্যাকাউন্ট বোঝা’ (Understanding service accounts) অংশটি দেখুন।

ডোমেন-ব্যাপী কর্তৃত্বের হস্তান্তর

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

পরবর্তী পদক্ষেপ

আপনার অ্যাপের OAuth সম্মতি স্ক্রিনটি এমনভাবে কনফিগার করুন , যাতে ব্যবহারকারীরা বুঝতে পারেন এবং অনুমোদন করতে পারেন যে আপনার অ্যাপ তাদের ডেটাতে কী ধরনের অ্যাক্সেস পাবে।