অ্যাক্সেস টোকেন অনুমোদন এবং প্রত্যাহার করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

অ্যাক্সেস প্রত্যাহার এবং টোকেন রিফ্রেশ করা হচ্ছে

কিছু ক্ষেত্রে, অ্যাপগুলিকে স্পষ্টভাবে টোকেন প্রত্যাহার বা বাতিল করার প্রয়োজন হয়, উদাহরণস্বরূপ, যখন কোনও ব্যবহারকারী একটি OAuth-সক্ষম অ্যাপ থেকে লগ আউট করেন। আপনি যদি একটি টোকেন প্রত্যাহার করেন, তাহলে মেয়াদ শেষ হওয়ার আগে যে কোনো সময় এটি পুনরায় অনুমোদন করা যেতে পারে।

টোকেন প্রত্যাহার করার পদ্ধতিটি OAuth 2.0 টোকেন প্রত্যাহার স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত করা হয়েছে।

Apigee Edge একটি InvalidateToken অপারেশন প্রদান করে যা আপনাকে একটি ডেডিকেটেড টোকেন প্রত্যাহার শেষ পয়েন্ট কনফিগার করতে সক্ষম করে। এই এন্ডপয়েন্টের URI প্রকাশ করে, আপনি অ্যাপ ডেভেলপারদের এজ দ্বারা জারি করা টোকেনগুলিকে বাতিল করতে সক্ষম করেন।

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

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

<টোকেন>/<টোকেন> উপাদান

ফ্লো ভেরিয়েবল সনাক্ত করে যা প্রত্যাহার করার টোকেন নির্দিষ্ট করে। যদি বিকাশকারীরা access_token নামের একটি ক্যোয়ারী প্যারামিটার ব্যবহার করে একটি প্রত্যাহার অনুরোধ জমা দেওয়ার আশা করা হয়, উদাহরণস্বরূপ, সঠিক ফ্লো ভেরিয়েবলটি হবে: request.queryparam.access_token । একটি HTTP হেডারে টোকেন প্রয়োজন, উদাহরণস্বরূপ, এই মানটি request.header.access_token এ সেট করুন।

গুণাবলী

  • type (প্রয়োজনীয়, স্ট্রিং): নির্দিষ্ট পরিবর্তনশীল দ্বারা চিহ্নিত টোকেন প্রকার। সমর্থিত মানগুলি হল accesstoken এবং refreshtoken:
    • একটি অ্যাক্সেস টোকেন প্রত্যাহার করতে, টাইপ অ্যাক্সেসটোকেন নির্দিষ্ট করুন।
    • অ্যাক্সেস এবং রিফ্রেশ টোকেন উভয়ই প্রত্যাহার করতে, রিফ্রেশটোকেন টাইপ করুন। যখন এটি রিফ্রেশটোকেন টাইপ দেখে, এজ ধরে নেয় টোকেনটি একটি রিফ্রেশ টোকেন। যদি সেই রিফ্রেশ টোকেন পাওয়া যায়, তাহলে তা প্রত্যাহার করা হবে। যদি সেই রিফ্রেশ টোকেনটি পাওয়া না যায়, তাহলে এজ এটি একটি অ্যাক্সেস টোকেন কিনা তা পরীক্ষা করে। যদি অ্যাক্সেস টোকেন বিদ্যমান থাকে, তাহলে এটি প্রত্যাহার করা হয়।

      দ্রষ্টব্য: আপনি যদি ইতিমধ্যে একটি অবৈধ টোকেন একটি InvalidateToken নীতিতে পাস করেন, তবে নীতিটি একটি ত্রুটি ফেরত দেয় না, যদিও আপনি এটি আশা করতে পারেন। এই ধরনের অপারেশন কোন প্রভাব আছে.
  • cascade (ঐচ্ছিক, বুলিয়ান, ডিফল্ট: সত্য) এই অ্যাট্রিবিউটের প্রাথমিক ব্যবহার হল একটি রিফ্রেশ টোকেন প্রত্যাহার না করে তার সম্পর্কিত অ্যাক্সেস টোকেন প্রত্যাহার করা। এই ক্ষেত্রে বিবেচনা করুন:
    • শুধুমাত্র একটি রিফ্রেশ টোকেন প্রত্যাহার করুন এবং এর সংশ্লিষ্ট অ্যাক্সেস টোকেন প্রত্যাহার করবেন না। এটি করার জন্য, <Token> টাইপটিকে refreshtoken সেট করুন এবং ক্যাসকেডকে false সেট করুন।
    • অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন উভয়ই প্রত্যাহার করুন। এটি করার জন্য, accesstoken <টোকেন> টাইপ সেট করুন। ক্যাসকেডের মান true (ডিফল্ট) বা false হতে পারে। যদি আপনি এটি true সেট করেন, তাহলে অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন উভয়ই প্রত্যাহার করা হবে। আপনি যদি এটি false সেট করেন তবে অ্যাক্সেস টোকেন প্রত্যাহার করা হবে এবং রিফ্রেশ টোকেনটি ব্যবহার করা যাবে না। আরও ব্যাখ্যার জন্য নীচের নোটটি দেখুন।
    • একটি অ্যাক্সেস টোকেন প্রত্যাহার করুন এবং এর সাথে সম্পর্কিত রিফ্রেশ টোকেন প্রত্যাহার করবেন না। সমর্থিত নয়। আরও ব্যাখ্যার জন্য নীচের নোটটি দেখুন।

দ্রষ্টব্য: নিরাপত্তার কারণে, আপনি যদি একটি অ্যাক্সেস টোকেন প্রত্যাহার করেন, তাহলে সংশ্লিষ্ট রিফ্রেশ টোকেনটিও প্রত্যাহার করা হবে। অতএব, আপনি শুধুমাত্র একটি অ্যাক্সেস টোকেন প্রত্যাহার করতে ক্যাসকেড বৈশিষ্ট্য ব্যবহার করতে পারবেন না। উদাহরণস্বরূপ, আপনি যদি <Token> টাইপ accesstoken সেট করেন এবং cascade=false সেট করেন, তাহলে অ্যাক্সেস টোকেন প্রত্যাহার করা হবে (প্রত্যাশিত হিসাবে); যাইহোক, সংশ্লিষ্ট রিফ্রেশ টোকেনটি ব্যবহারযোগ্য নয়। এটি প্রত্যাহার করা অ্যাক্সেস টোকেন রিফ্রেশ করতে ব্যবহার করা যাবে না। ক্যাসকেড অ্যাট্রিবিউটের প্রাথমিক ব্যবহারের ক্ষেত্রে যখন আপনি শুধুমাত্র একটি রিফ্রেশ টোকেন প্রত্যাহার করতে চান। সেক্ষেত্রে, <Token> টাইপটিকে refreshtoken এ সেট করুন এবং cascade=false সেট করুন। রিফ্রেশ টোকেন প্রত্যাহার করা হবে, কিন্তু এর সংশ্লিষ্ট অ্যাক্সেস টোকেন বৈধ থাকবে (এটি মেয়াদ শেষ না হওয়া পর্যন্ত বা প্রত্যাহার না করা পর্যন্ত)। আরও তথ্যের জন্য, এই কমিউনিটি ফোরাম আলোচনা দেখুন।

অ্যাক্সেস এবং রিফ্রেশ টোকেন অনুমোদন করা হচ্ছে

একটি প্রত্যাহার করা টোকেন "পুনরায় অনুমোদন" করতে ValidateToken অপারেশন ব্যবহার করুন। অর্থাৎ, যখন আপনি এই ক্রিয়াকলাপটি প্রয়োগ করেন, তখন লক্ষ্যযুক্ত অ্যাক্সেস বা রিফ্রেশ টোকেনের স্থিতি 'প্রত্যাহার' থেকে 'অনুমোদিত'-এ পরিবর্তিত হয়। আপনি যেকোন প্রত্যাহার করা টোকেন যাচাই করতে পারেন যার মেয়াদ শেষ হয়নি।

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

<টোকেন>/<টোকেন> উপাদান

ফ্লো ভেরিয়েবল সনাক্ত করে যা টোকেনটিকে বৈধ করার জন্য নির্দিষ্ট করে। যদি বিকাশকারীরা access_token নামের একটি ক্যোয়ারী প্যারামিটার ব্যবহার করে একটি বৈধতা অনুরোধ জমা দেওয়ার আশা করা হয়, উদাহরণস্বরূপ, সঠিক ফ্লো ভেরিয়েবলটি হবে: request.queryparam.access_token । একটি HTTP হেডারে টোকেন প্রয়োজন, উদাহরণস্বরূপ, এই মানটি request.header.access_token এ সেট করুন।

গুণাবলী

  • type (প্রয়োজনীয়, স্ট্রিং) নির্দিষ্ট ভেরিয়েবল দ্বারা চিহ্নিত টোকেন প্রকার। সমর্থিত মান হল accesstoken এবং refreshtoken
  • cascade (ঐচ্ছিক, বুলিয়ান): ডিফল্টরূপে, এই বিকল্পটি true তে সেট করা থাকে এবং বৈধতাকে সংশ্লিষ্ট টোকেনে প্রচার করে। সুতরাং, যদি একটি রিফ্রেশ টোকেনে প্রয়োগ করা হয়, তবে এর সাথে যুক্ত অ্যাক্সেস টোকেনও যাচাই করা হয়। যদি একটি অ্যাক্সেস টোকেনে প্রয়োগ করা হয়, তবে এর সাথে সম্পর্কিত রিফ্রেশ টোকেনও যাচাই করা হয়। আপনি যদি এটি false সেট করেন, তাহলে শুধুমাত্র নির্দিষ্ট অ্যাক্সেস বা রিফ্রেশ টোকেনটি বৈধ হবে।