অ্যান্টিপ্যাটার্ন: OAuth টোকেনের মেয়াদ শেষ হওয়ার সময় অনেক বেশি করে সেট করা

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

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

Apigee Edge, ডেভেলপারদের চারটি OAuth2 গ্র্যান্টের মধ্যে যেকোনও একটি প্রয়োগ করে অ্যাক্সেস এবং/অথবা রিফ্রেশ টোকেন তৈরি করতে দেয় - ক্লায়েন্ট ক্রেডেনশিয়াল, পাসওয়ার্ড, ইমপ্লিসিট এবং অনুমোদন কোড - OAuthv2 নীতি ব্যবহার করে। ক্লায়েন্ট অ্যাপ্লিকেশন সুরক্ষিত API ব্যবহার করার জন্য অ্যাক্সেস টোকেন ব্যবহার করে। প্রতিটি অ্যাক্সেস টোকেনের নিজস্ব মেয়াদ শেষ হওয়ার সময় থাকে, যা OAuthv2 নীতিতে সেট করা যেতে পারে।

কিছু গ্রান্টের ধরনের ক্ষেত্রে অ্যাক্সেস টোকেনের সাথে ঐচ্ছিকভাবে রিফ্রেশ টোকেন ইস্যু করা হয়। মূল অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে বা সেটি তুলে নেওয়া হলে, নতুন, সঠিক অ্যাক্সেস টোকেন পাওয়ার জন্য রিফ্রেশ টোকেন ব্যবহার করা হয়। OAuthv2 নীতিতে রিফ্রেশ টোকেনের মেয়াদ শেষ হওয়ার সময়ও সেট করা যেতে পারে।

অ্যান্টিপ্যাটার্ন

OAuthv2 নীতিতে অ্যাক্সেস টোকেন এবং/অথবা রিফ্রেশ টোকেনের জন্য দীর্ঘ মেয়াদ শেষ হওয়ার সময় সেট করলে OAuth টোকেন জমা হতে থাকে এবং Cassandra নোডে ডিস্ক স্পেসের ব্যবহার বেড়ে যায়।

নিম্নলিখিত OAuthV2 নীতিতে রিফ্রেশ টোকেনের মেয়াদ শেষ হওয়ার সময় ২০০ দিন হিসেবে দেখানো হয়েছে:

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
    <SupportedGrantTypes>
      <GrantType>password</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

উপরের উদাহরণে:

  • অ্যাক্সেস টোকেন ৩০ মিনিটের তুলনামূলক কম মেয়াদ সহ সেট করা হয়।
  • রিফ্রেশ টোকেনটি ২০০ দিনের খুব দীর্ঘ মেয়াদ শেষ হওয়ার সময় সেট করা হয়।
  • এই API-তে ট্রাফিক যদি ১০টি অনুরোধ/সেকেন্ড হয়, তাহলে এটি এক দিনে ৮৬৪,০০০টি টোকেন জেনারেট করতে পারে।
  • রিফ্রেশ টোকেনের মেয়াদ ২০০ দিন পরে শেষ হয় বলে, সেগুলি ডেটা স্টোরে (Cassandra) দীর্ঘ সময় ধরে থেকে যায় এবং ক্রমাগত জমা হতে থাকে।

প্রভাব

  • ডেটা স্টোরে (Cassandra) ডিস্ক স্পেসের ব্যবহার উল্লেখযোগ্যভাবে বেড়ে যায়।
  • প্রাইভেট ক্লাউড ব্যবহারকারীদের ক্ষেত্রে, এটি স্টোরেজ খরচ বাড়িয়ে দিতে পারে বা সবচেয়ে খারাপ ক্ষেত্রে, ডিস্কটি পূর্ণ হয়ে যেতে পারে এবং রানটাইম সমস্যা বা পরিষেবা বন্ধ হয়ে যেতে পারে।

পেশাদার পদ্ধতি

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

রিফ্রেশ টোকেনের মেয়াদ শেষ হওয়ার সময় এমনভাবে সেট করুন যাতে সেটি অ্যাক্সেস টোকেনের চেয়ে কিছুটা বেশি সময় ধরে বৈধ থাকে। যেমন, আপনি যদি অ্যাক্সেস টোকেনের জন্য ৩০ মিনিট এবং তারপরে রিফ্রেশ টোকেনের জন্য ৬০ মিনিট সেট করেন।

এটি নিশ্চিত করে যে:

  • অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে যাওয়ার পরে নতুন অ্যাক্সেস ও রিফ্রেশ টোকেন জেনারেট করার জন্য রিফ্রেশ টোকেন ব্যবহার করার জন্য যথেষ্ট সময় থাকে।
  • রিফ্রেশ টোকেন কিছুক্ষণ পরে মেয়াদ শেষ হয়ে যাবে এবং জমা হওয়া এড়াতে সময়মতো তা মুছে ফেলা যাবে।

আরও পড়ুন