আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
অ্যাক্সেস প্রত্যাহার এবং রিফ্রেশ টোকেন
কিছু ক্ষেত্রে, অ্যাপগুলিকে টোকেন স্পষ্টভাবে বাতিল বা অবৈধ করতে হতে পারে, যেমন, যখন কোনো ব্যবহারকারী একটি OAuth-সক্ষম অ্যাপ থেকে লগ আউট করেন। আপনি যদি একটি টোকেন বাতিল করেন, তবে এর মেয়াদ শেষ হওয়ার আগে যেকোনো সময় এটি পুনরায় অনুমোদন করা যেতে পারে।
টোকেন বাতিলের কার্যপ্রণালী OAuth 2.0 টোকেন বাতিলকরণ স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত করা হয়েছে।
Apigee Edge একটি InvalidateToken অপারেশন প্রদান করে, যা আপনাকে একটি ডেডিকেটেড টোকেন বাতিলকরণ এন্ডপয়েন্ট কনফিগার করার সুযোগ দেয়। এই এন্ডপয়েন্টের URI প্রকাশ করার মাধ্যমে, আপনি অ্যাপ ডেভেলপারদের Edge দ্বারা ইস্যু করা টোকেনগুলো বাতিল করার ক্ষমতা দেন।
এখানে OAuthV2 পলিসি এবং InvalidateToken অপারেশনের একটি উদাহরণ কনফিগারেশন দেওয়া হলো। এক্ষেত্রে, অ্যাক্সেস টোকেন এবং এর সাথে যুক্ত রিফ্রেশ টোকেন উভয়ই বাতিল করা হয়। প্রযুক্তিগতভাবে, উভয়ই বাতিল করা হয় কারণ ক্যাসকেড ফ্ল্যাগটি 'true' তে সেট করা আছে। ক্যাসকেড ফ্ল্যাগ কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, নিচে টোকেন এলিমেন্টের অ্যাট্রিবিউটস বিভাগটি দেখুন।
<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:- অ্যাক্সেস টোকেন বাতিল করতে, টাইপ অ্যাক্সেসটোকেন উল্লেখ করুন।
- অ্যাক্সেস এবং রিফ্রেশ টোকেন উভয়ই বাতিল করতে, `type refreshtoken` উল্লেখ করুন। `type refreshtoken` দেখলে Edge ধরে নেয় যে টোকেনটি একটি রিফ্রেশ টোকেন। যদি সেই রিফ্রেশ টোকেনটি পাওয়া যায়, তবে তা বাতিল করা হয়। যদি সেই রিফ্রেশ টোকেনটি না পাওয়া যায়, তবে Edge পরীক্ষা করে দেখে যে এটি একটি অ্যাক্সেস টোকেন কি না। যদি অ্যাক্সেস টোকেনটি বিদ্যমান থাকে, তবে তা বাতিল করা হয়।
দ্রষ্টব্য: আপনি যদি কোনো InvalidateToken পলিসিতে আগে থেকেই বাতিল করা কোনো টোকেন পাঠান, তাহলে পলিসিটি কোনো ত্রুটি দেখায় না, যদিও আপনি তা আশা করতে পারেন। এই ধরনের অপারেশনের কোনো প্রভাব নেই।
-
cascade(ঐচ্ছিক, বুলিয়ান, ডিফল্ট: ট্রু) এই অ্যাট্রিবিউটের প্রধান ব্যবহার হলো সংশ্লিষ্ট অ্যাক্সেস টোকেন বাতিল না করেই একটি রিফ্রেশ টোকেন বাতিল করা। নিম্নলিখিত ক্ষেত্রগুলো বিবেচনা করুন:- শুধুমাত্র রিফ্রেশ টোকেন বাতিল করুন এবং এর সাথে যুক্ত অ্যাক্সেস টোকেনটি বাতিল করবেন না। এটি করার জন্য, <Token> টাইপটি
refreshtokenএ এবং cascade-কেfalseএ সেট করুন। - অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন উভয়ই বাতিল করুন। এটি করার জন্য, <Token> টাইপটি
accesstokenএ সেট করুন। cascade-এর মানtrue(ডিফল্ট) বাfalseহতে পারে। যদি আপনি এটিtrueতে সেট করেন, তাহলে অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন উভয়ই বাতিল হয়ে যাবে। যদি আপনি এটিfalseএ সেট করেন, তাহলে অ্যাক্সেস টোকেনটি বাতিল হয়ে যাবে এবং রিফ্রেশ টোকেনটি অব্যবহারযোগ্য হয়ে পড়বে। আরও ব্যাখ্যার জন্য নিচের নোটটি দেখুন। - অ্যাক্সেস টোকেন বাতিল করুন কিন্তু এর সাথে যুক্ত রিফ্রেশ টোকেন বাতিল করবেন না। এটি সমর্থিত নয়। আরও ব্যাখ্যার জন্য নিচের নোটটি দেখুন।
- শুধুমাত্র রিফ্রেশ টোকেন বাতিল করুন এবং এর সাথে যুক্ত অ্যাক্সেস টোকেনটি বাতিল করবেন না। এটি করার জন্য, <Token> টাইপটি
দ্রষ্টব্য: নিরাপত্তার কারণে, আপনি যদি একটি অ্যাক্সেস টোকেন বাতিল করেন, তবে এর সাথে যুক্ত রিফ্রেশ টোকেনটিও বাতিল হয়ে যাবে। তাই, শুধুমাত্র একটি অ্যাক্সেস টোকেন বাতিল করার জন্য আপনি ক্যাসকেড অ্যাট্রিবিউট ব্যবহার করতে পারবেন না। উদাহরণস্বরূপ, যদি আপনি <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সেট করেন, তাহলে শুধুমাত্র নির্দিষ্ট অ্যাক্সেস বা রিফ্রেশ টোকেনটিই ভ্যালিডেট করা হবে।