শেষ ব্যবহারকারী আইডি, অ্যাপ আইডি বা উভয় দ্বারা OAuth 2.0 অ্যাক্সেস টোকেন পুনরুদ্ধার এবং প্রত্যাহার সক্ষম করুন

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

এই বিভাগটি বর্ণনা করে যে কীভাবে শেষ ব্যবহারকারী আইডি, অ্যাপ আইডি বা উভয়ের মাধ্যমে OAuth 2.0 অ্যাক্সেস টোকেন পুনরুদ্ধার এবং প্রত্যাহার সক্ষম করবেন। শেষ ব্যবহারকারী আইডি বৈশিষ্ট্য এই বিষয়ে বর্ণিত হিসাবে বিশেষ সেটআপ প্রয়োজন. শেষ ব্যবহারকারী বলতে, আমরা সেই অ্যাপটির ব্যবহারকারীকে বোঝাই যেটি API কল করছে।

কখন শেষ ব্যবহারকারী আইডি অ্যাক্সেস সক্ষম করবেন

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

  • আপনার ওয়েবসাইট বা অ্যাপের জন্য একটি বৈশিষ্ট্য যেখানে ব্যবহারকারীরা দেখতে পারে যে তারা কোন তৃতীয় পক্ষের অ্যাপগুলিকে অনুমোদন করেছে এবং সেই অ্যাপগুলিতে অ্যাক্সেস প্রত্যাহার করার বিকল্প প্রদান করতে পারে।
  • একটি বৈশিষ্ট্য যা একটি অনুমোদিত ব্যবহারকারীকে একটি নির্দিষ্ট বিকাশকারী অ্যাপের সাথে যুক্ত সমস্ত অ্যাক্সেস টোকেন প্রত্যাহার করতে দেয়৷

OAuth অ্যাক্সেস টোকেন সম্পর্কে

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

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

ডিফল্টরূপে, যখন এজ একটি OAuth 2.0 অ্যাক্সেস টোকেন তৈরি করে, তখন টোকেনের বিন্যাসটি নীচে দেখানো হয়:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

নিম্নলিখিত নোট করুন:

  • অ্যাপ্লিকেশন_নাম ক্ষেত্রটিতে টোকেনের সাথে যুক্ত অ্যাপের UUID রয়েছে। আপনি যদি অ্যাপ আইডির মাধ্যমে OAuth 2.0 অ্যাক্সেস টোকেন পুনরুদ্ধার এবং প্রত্যাহার সক্ষম করেন, তাহলে এই অ্যাপ আইডিটি আপনি ব্যবহার করেন।
  • অ্যাক্সেস_টোকেন ক্ষেত্রটিতে OAuth 2.0 অ্যাক্সেস টোকেন মান রয়েছে।

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

আপনি টোকেন তৈরির শেষ পয়েন্টে শেষ ব্যবহারকারী আইডি পাস করেন। আপনি শেষ ব্যবহারকারীর আইডি একটি ক্যোয়ারী প্যারামিটার, ফর্ম প্যারামিটার বা হেডারে পাস করতে পারেন (যেমন এই বিষয়ে পরে ব্যাখ্যা করা হয়েছে)। আপনি টোকেনে শেষ ব্যবহারকারী আইডি অন্তর্ভুক্ত করার জন্য এজ কনফিগার করার পরে, এটি নীচে দেখানো হিসাবে app_enduser ক্ষেত্র হিসাবে অন্তর্ভুক্ত করা হয়েছে:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "app_enduser" : "6ZG094fgnjNf02EK",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

এই পুনরুদ্ধার এবং প্রত্যাহার করে এমন API কলগুলি কীভাবে করতে হয় তা শিখতে, নিম্নলিখিত স্মার্ট ডক্স দেখুন:

ব্যবহারকারী আইডি এবং অ্যাপ আইডি দ্বারা OAuth 2.0 টোকেনগুলিতে অ্যাক্সেস সক্ষম করা হচ্ছে৷

আপনি কীভাবে ব্যবহারকারী আইডি এবং অ্যাপ আইডি দ্বারা OAuth 2.0 টোকেনগুলিতে অ্যাক্সেস সক্ষম করবেন তা আপনি কীভাবে এজ স্থাপন করেছেন তার উপর নির্ভর করে:

  • ক্লাউড-ভিত্তিক স্থাপনা

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

  • ব্যক্তিগত ক্লাউড স্থাপনার জন্য প্রান্ত

    Apigee Edge-এর জন্য প্রাইভেট ক্লাউড (অন-প্রাঙ্গনে), আপনি কনফিগারেশনের জন্য সম্পূর্ণভাবে দায়ী। আরও তথ্যের জন্য, অপারেশন এবং কনফিগারেশন দেখুন।

  • এপিজি হাইব্রিড

    ব্যবহারকারী আইডি দ্বারা OAuth 2.0 টোকেনগুলিতে অ্যাক্সেস ডিফল্টরূপে সক্ষম হয়৷ অ্যাক্সেস টোকেনে ব্যবহারকারী আইডি যোগ করার জন্য OAuth 2.0 নীতি কনফিগার করার জন্য আপনি শুধুমাত্র দায়ী। আরও তথ্যের জন্য, নীচের পদ্ধতির ধাপ 5 দেখুন।

ক্লাউডে অ্যাক্সেস সক্ষম করা হচ্ছে

ধাপ 1: এই বৈশিষ্ট্যটিকে সমর্থন করার জন্য একটি org সক্রিয় করুন

আপনি এই বৈশিষ্ট্যটিকে সমর্থন করতে চান এমন প্রতিটি সংস্থার জন্য এই বৈশিষ্ট্যটি সক্ষম করা আবশ্যক৷

Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন যাতে তারা আপনার প্রতিষ্ঠান আপডেট করে।

ধাপ 2: opsadmin এবং orgadmin ভূমিকার জন্য oauth2 রিসোর্স অনুমতি প্রদান করুন

এন্ড ইউজার আইডি বা অ্যাপ আইডির উপর ভিত্তি করে oauth2 রিসোর্সে কলগুলি পুনরুদ্ধার ( get ) এবং প্রত্যাহার ( put ) করার জন্য শুধুমাত্র আপনার অর্গ্যাডমিন এবং অপস্যাডমিন ভূমিকাগুলিকে অনুমতি দেওয়া উচিত।

কোন ভূমিকাগুলি oauth2 রিসোর্সের জন্য get এবং রাখা হয়েছে তা দেখতে আপনি একটি রিসোর্স API কলের জন্য অনুমতি পান put করতে পারেন৷

আপনি যদি কোনো অনুমতি যোগ করতে বা অপসারণ করতে চান, Apigee Edge সহায়তার সাথে যোগাযোগ করুন যাতে তারা আপডেটগুলি সম্পাদন করে।

ধাপ 3: আপনার Cassandra নোডগুলিতে বিদ্যমান OAuth 2.0 অ্যাক্সেস টোকেনগুলি অনুলিপি করুন

Apigee সাপোর্ট দ্বারা সম্পাদিত : এই টাস্কে, প্রভাবিত প্রতিষ্ঠানগুলিতে বিদ্যমান OAuth 2.0 অ্যাক্সেস টোকেনগুলির অনুলিপিগুলি আপনার ক্যাসান্দ্রা নোডগুলিতে অনুলিপি এবং সংরক্ষণ করা হবে। এই পদ্ধতিটি আপনার প্রতিটি এপিজি এজ পডের জন্য ক্যাসান্ড্রা নোডগুলিতে সঞ্চালিত হবে। এটি আপনার সমস্ত OAuth 2.0 অ্যাক্সেস টোকেন, বিদ্যমান এবং সদ্য তৈরি হওয়া সমস্ত API কলগুলিকে পুনরুদ্ধার এবং প্রত্যাহার করার অনুমতি দেবে৷

ধাপ 4: আপনার ব্যবস্থাপনা সার্ভার এবং বার্তা প্রসেসরে oauth_max_search_limit প্রপার্টি যোগ করুন

এই কাজটিতে, আপনার ব্যবস্থাপনা সার্ভার এবং বার্তা প্রসেসরের keymanagement.properties ফাইলগুলি এই বৈশিষ্ট্যটি অন্তর্ভুক্ত করার জন্য আপডেট করা হবে: oauth_max_search_limit = 100100 হল Apigee-এর প্রস্তাবিত মান, কিন্তু আপনি মানানসই হিসাবে সেট করা যেতে পারে।

Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন যাতে তারা এই সংযোজন করতে পারেন।

ধাপ 5: একটি OAuth 2.0 নীতি কনফিগার করুন যাতে এক্সেস টোকেন জেনারেট করা যায় যাতে শেষ ব্যবহারকারী আইডি অন্তর্ভুক্ত থাকে

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

একটি অ্যাক্সেস টোকেনে একটি শেষ ব্যবহারকারী আইডি অন্তর্ভুক্ত করার জন্য নীতিটি কনফিগার করতে, আপনাকে অবশ্যই শেষ ব্যবহারকারী আইডি ধারণকারী ইনপুট ভেরিয়েবল নির্দিষ্ট করতে হবে। ভেরিয়েবল নির্দিষ্ট করতে <AppEndUser> ট্যাগ ব্যবহার করুন।

নিচের OAuth 2.0 নীতি, GenerateAccessTokenClient নামে, একটি OAuth 2.0 অ্যাক্সেস টোকেন তৈরি করে। বোল্ডে <AppEndUser> ট্যাগের সংযোজন নোট করুন:

<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient">
  <DisplayName>OAuth 2.0.0 1</DisplayName>
  <ExternalAuthorization>false</ExternalAuthorization>
  <Operation>GenerateAccessToken</Operation>
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GenerateResponse enabled="true"/>
  <GrantType>request.queryparam.grant_type</GrantType>
  <AppEndUser>request.header.appuserID</AppEndUser>
  <ExpiresIn>960000</ExpiresIn>
</OAuthV2>

তারপরে আপনি OAuth 2.0 অ্যাক্সেস টোকেন তৈরি করতে নিম্নলিখিত cURL কমান্ডটি ব্যবহার করতে পারেন, appuserID হেডার হিসাবে ব্যবহারকারী আইডি পাস করে:

curl -H "appuserID:6ZG094fgnjNf02EK" /
  https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials /
  -X POST /
  -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'

এই উদাহরণে, appuserID একটি অনুরোধ শিরোনাম হিসাবে পাস করা হয়। আপনি অনেক উপায়ে একটি অনুরোধের অংশ হিসাবে তথ্য পাস করতে পারেন. উদাহরণস্বরূপ, একটি বিকল্প হিসাবে, আপনি করতে পারেন:

  • একটি ফর্ম প্যারামিটার ভেরিয়েবল ব্যবহার করুন: request.formparam.appuserID
  • শেষ ব্যবহারকারী আইডি প্রদান করে একটি ফ্লো ভেরিয়েবল ব্যবহার করুন