অ্যান্টিপ্যাটার্ন: OAuth টোকেনগুলির জন্য কোনও মেয়াদ শেষ হওয়ার সময় সেট করুন না, অ্যান্টিপ্যাটার্ন: OAuth টোকেনের জন্য কোনও মেয়াদ শেষ হওয়ার সময় সেট করুন না

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

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

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

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

এই অ্যান্টিপ্যাটার্নটি OAuth টোকেনের জন্য দীর্ঘ মেয়াদ শেষ হওয়ার সময় সেট করার অ্যান্টিপ্যাটার্নের সাথে সম্পর্কিত।

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

OAuthv2 নীতিতে রিফ্রেশ টোকেনের মেয়াদ শেষ হওয়ার সময় নির্ধারণ না করায় OAuth টোকেন জমা হয় এবং ক্যাসান্ড্রা নোডগুলিতে ডিস্কের স্থান ব্যবহার বৃদ্ধি পায়।

নিম্নলিখিত উদাহরণ OAuthV2 নীতি <RefreshTokenExpiresIn> এর জন্য একটি অনুপস্থিত কনফিগারেশন দেখায়:

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

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

  • অ্যাক্সেস টোকেনটি 30 মিনিটের যুক্তিসঙ্গতভাবে কম মেয়াদ শেষ হওয়ার সাথে সেট করা হয়েছে।
  • রিফ্রেশ টোকেনের মেয়াদ সেট করা নেই।
  • রিফ্রেশ টোকেন ডাটা স্টোরে (ক্যাসান্ড্রা) চিরতরে টিকে থাকে, যার ফলে ডেটা জমা হয়।
  • মেয়াদ শেষ না হয়ে রিফ্রেশ টোকেন তৈরি করা অনির্দিষ্টকালের জন্য অ্যাক্সেস টোকেন তৈরি করতে ব্যবহার করা যেতে পারে।
  • যদি এই API-তে ট্রাফিক প্রতি সেকেন্ডে 10টি অনুরোধ হয়, তাহলে এটি একদিনে 864,000 টোকেন তৈরি করতে পারে।

প্রভাব

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

সর্বোত্তম অনুশীলন

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

বেসরকারী ক্লাউড গ্রাহকদের জন্য বিশেষভাবে এজের জন্য সর্বোত্তম অনুশীলন

বিভাগটি বিশেষভাবে প্রাইভেট ক্লাউড গ্রাহকদের জন্য এজের জন্য সেরা অনুশীলনগুলি বর্ণনা করে।

একটি ডিফল্ট রিফ্রেশ টোকেন মেয়াদ শেষ করা নির্দিষ্ট করুন

ডিফল্টরূপে, যদি একটি পলিসি কনফিগারেশনে একটি রিফ্রেশ টোকেনের মেয়াদ উল্লিখিত না থাকে, তাহলে এজ কোনো মেয়াদ ছাড়াই একটি রিফ্রেশ টোকেন তৈরি করে। আপনি নিম্নলিখিত পদ্ধতি দ্বারা এই আচরণ ওভাররাইড করতে পারেন:

  1. একটি বার্তা প্রসেসর নোডে, কনফিগারেশন ওভাররাইড ফাইল $APIGEE_ROOT/customer/application/message-processor.properties সম্পাদনা করুন বা তৈরি করুন। নিশ্চিত করুন যে এই ফাইলটি apigee ব্যবহারকারীর দ্বারা পাঠযোগ্য।
  2. ফাইলে নিম্নলিখিত লাইন যোগ করুন:
    conf_keymanagement_oauth_refresh_token_expiry_time_in_millis=3600000
    এটি ডিফল্ট রিফ্রেশ টোকেনের মেয়াদ নির্ধারণ করবে, যদি কোনো নীতিতে নির্দিষ্ট না থাকে, তাহলে 1 ঘন্টা। আপনি আপনার ব্যবসার প্রয়োজনের উপর ভিত্তি করে এই ডিফল্ট মান পরিবর্তন করতে পারেন।
  3. বার্তা প্রসেসর পরিষেবা পুনরায় চালু করুন:
    apigee-service edge-message-processor restart
  4. সমস্ত মেসেজ প্রসেসর নোডে এক এক করে উপরের ধাপগুলি পুনরাবৃত্তি করুন।

ক্যাসান্দ্রার সেরা অনুশীলন

সর্বজনীনভাবে উপলব্ধ Apigee এর সর্বশেষ সংস্করণে আপগ্রেড করার চেষ্টা করুন। Apigee এপিজির মধ্যে টোকেন পরিচালনার উন্নতি এবং অপ্টিমাইজ করার জন্য অবিরত সংশোধন এবং বর্ধিতকরণ প্রকাশ করে চলেছে। Apigee-তে, অ্যাক্সেস এবং রিফ্রেশ টোকেনগুলি "কিমি" কীস্পেসের মধ্যে ক্যাসান্দ্রায় সংরক্ষণ করা হয়। আপনার নিশ্চিত করা উচিত যে এই কীস্পেসের কম্প্যাকশন কৌশলটি LeveledCompactionStrategy স্ট্র্যাটেজিতে সেট করা আছে। আপনার পরীক্ষা করা উচিত যে নিম্নলিখিত সূচকগুলি উপস্থিত নেই :
  • kms.oauth_20_access_tokens.oauth_20_access_tokens_organization_name_idx #f0f0f0 এবং
  • kms.oauth_20_access_tokens.oauth_20_access_tokens_status_idx

এছাড়াও আপনি টেবিলে gc_grace_seconds kms.oauth_20_access_tokens কমিয়ে 10 দিন থেকে কম মানের (যেমন 3 দিন) করতে পারেন যাতে নিশ্চিত করা যায় যে টোকেনগুলি মুছে ফেলার কারণে তৈরি হওয়া সমাধির পাথরগুলি ডেটা স্টোর থেকে দ্রুত পরিষ্কার করা হয়৷

আরও পড়া