টোকেন ও অথরাইজেশন কোড কাস্টমাইজ করা

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

টোকেন মেটাডেটা সম্পর্কে

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

Edge এইসব OAuth আর্টিফ্যাক্ট তৈরি করার সময়, টোকেন বা কোডের সাথে মেটাডেটাও অ্যাটাচ করে। যেমন, অ্যাক্সেস টোকেন নাম/ভ্যালু পেয়ারের সাথে যুক্ত থাকে যা মেয়াদ শেষ হওয়ার সময়, যুক্ত অ্যাপ ও ডেভেলপার এবং অন্যান্য তথ্যকে সংজ্ঞায়িত করে।

Edge অ্যাক্সেস টোকেনের JSON উপস্থাপনাটি নিম্নলিখিতগুলির মতো দেখায়:

{
  "issued_at" : "1372170159093",
  "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[Product1,Product2]",
  "api_product_list_json" : ["Product1", "Product2"],
  "expires_in" : "3599", //--in seconds
  "developer.email" : "joe@weathersample.com",
  "organization_id" : "0",
  "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe",
  "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND",
  "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp",
  "organization_name" : "apifactory",
  "refresh_count" : "0"
}

OAuth টোকেনে কাস্টম অ্যাট্রিবিউট যোগ করা

কখনও কখনও অ্যাক্সেস টোকেনের সাথে কাস্টম মেটাডেটা অ্যাটাচ করা কাজে লাগে। যেমন, আপনি হয়ত কোনও টোকেনে ব্যবহারকারীর নাম, গ্রুপ মেম্বারশিপ বা ভূমিকা, গ্রাহক আইডি, সেশন শনাক্তকারী, বা অন্যান্য স্বেচ্ছাচারী তথ্য যোগ করতে চান। Apigee Edge-এ, এই ডেটাকে "কাস্টম অ্যাট্রিবিউট" বলা হয়। এরপরে, API অনুরোধের স্কোপের মধ্যে টোকেন যাচাই করা হলে, সেই ডেটা কনটেক্সট ভেরিয়েবলের মাধ্যমে API প্রক্সি সার্ভারের কাছে উপলভ্য করা হয়। API Proxy, টোকেনের সাথে অ্যাটাচ করা কাস্টম ডেটার উপর ভিত্তি করে ফাইন-গ্রেনড অনুমোদন বা রাউটিং সংক্রান্ত সিদ্ধান্ত নিতে পারে।

কোনও টোকেনের সাথে আর্বিটারি ডেটা অ্যাটাচ করতে, OAuthV2 নীতিতে <Attributes> এলিমেন্ট ব্যবহার করুন। আপনি কাস্টম অ্যাট্রিবিউটের নাম এবং এর ভ্যালু নির্দিষ্ট করতে পারবেন। যেমন, এখানে একটি নীতি কনফিগারেশন দেওয়া হল যা একটি টোকেন তৈরি করে এবং টোকেনের সাথে "tenant_list" নামের একটি কাস্টম অ্যাট্রিবিউট অ্যাটাচ করে:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>600000</ExpiresIn>
  <GenerateResponse />
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>request.queryparam.grant_type</GrantType>
  <Attributes> 
    <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/>
  </Attributes>
</OAuthV2>

আপনি একাধিক কাস্টম অ্যাট্রিবিউট নির্দিষ্ট করতে পারবেন এবং জেনারেশনের সময় আপনি এগুলিকে কোনও অনুমোদন কোড (<Operation>GenerateAuthorizationCode</Operation>) বা টোকেনের (<Operation>GenerateAccessToken</Operation>) সাথে পরোক্ষভাবে অ্যাটাচ করতে পারবেন।

display-এর মান true (ডিফল্ট) হিসেবে সেট করা থাকলে, কাস্টম অ্যাট্রিবিউটগুলি উত্তরে ফেরত দেওয়া হয়, যেখানে সেগুলি অ্যাপের মাধ্যমে দেখা যেতে পারে অথবা ব্যবহারকারীর কাছে পাঠানো হতে পারে। display-এর মান false হিসেবে সেট করা থাকলে, কাস্টম অ্যাট্রিবিউট ডেটা স্টোরে সেভ করা হয়, কিন্তু উত্তর মেসেজে তা দেখানো হয় না। দুটি ক্ষেত্রেই, টোকেন যাচাই করার পরে API প্রক্সির মধ্যে থাকা নীতিতে কাস্টম ডেটা উপলভ্য থাকে।

display বিকল্প উত্তরে কাস্টম অ্যাট্রিবিউট দেখানো বা লুকানো সম্পর্কে আরও তথ্য পেতে।

রানটাইমে কাস্টম অ্যাট্রিবিউট পাওয়া

OAuthV2/VerifyAccessToken-এ কল করা হলে, Apigee Edge টোকেন স্টোরে টোকেনটি খুঁজে দেখে সেটি যাচাই করে। Apigee Edge তারপরে টোকেন সম্পর্কে তথ্য সহ কনটেক্সট ভেরিয়েবলের একটি সেট পূরণ করে। এর মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • expires_in //--in seconds
  • স্ট্যাটাস
  • স্কোপ
  • apiproduct.name*

টোকেনে কোনও কাস্টম অ্যাট্রিবিউট থাকলে, সেই কাস্টম অ্যাট্রিবিউটগুলি accesstoken.{custom_attribute} নামের একটি কনটেক্সট ভেরিয়েবলে উপলভ্য করা হয়। যেমন, ধরে নিন, উপরে দেখানো নীতি থেকে একটি টোকেন ইস্যু করা হয়েছে। এই ধরনের টোকেন যাচাই করার পরে, accesstoken.tenant_list নামের একটি অতিরিক্ত কন্টেক্সট ভেরিয়েবল থাকবে, যার মধ্যে টোকেন তৈরি করার সময় সেভ করা ভ্যালু থাকবে।

নীতি বা শর্তাবলী এইসব ভেরিয়েবল উল্লেখ করতে পারে এবং সেগুলির মধ্যে সেভ করা ভ্যালুর উপর ভিত্তি করে আচরণ পরিবর্তন করতে পারে।

রানটাইমে কাস্টম অ্যাট্রিবিউট সেট ও আপডেট করা

কিছু পরিস্থিতিতে, আপনি চাইবেন যে Apigee Edge-এ API কল প্রসেস করার সময় আপনার API প্রক্সি যেন রানটাইমে অ্যাক্সেস টোকেনের সাথে যুক্ত মেটাডেটা আপডেট করে। এই ব্যাপারে সাহায্য করতে, টোকেন অ্যাট্রিবিউট পাওয়া ও সেট করার জন্য Apigee নীতি প্রদান করে। আরও তথ্যের জন্য, OAuth V2 সংক্রান্ত তথ্য পান নীতি এবং OAuth V2 সংক্রান্ত তথ্য নীতি সেট করুন দেখুন।

এইসব নীতির প্রতিটিতে, AccessToken এলিমেন্টটি এমন একটি ভেরিয়েবলকে রেফার করবে যা অ্যাক্সেস টোকেন কন্টেন করে।

এছাড়াও, টোকেনের সাথে অ্যাটাচ করা কাস্টম অ্যাট্রিবিউট আপডেট করতে আপনি Edge API ব্যবহার করতে পারবেন। OAuth 2.0 অ্যাক্সেস টোকেন আপডেট করুন পদ্ধতির জন্য API ডকুমেন্টেশন দেখুন।