টোকেন এবং অনুমোদন কোড কাস্টমাইজ করা

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

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

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 প্রক্সি টোকেনের সাথে সংযুক্ত কাস্টম ডেটার উপর ভিত্তি করে সূক্ষ্ম অনুমোদন বা রাউটিং সংক্রান্ত সিদ্ধান্ত নিতে পারে।

একটি টোকেনের সাথে যেকোনো ডেটা সংযুক্ত করতে, 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 সেট করা থাকে, তখন কাস্টম অ্যাট্রিবিউটগুলো ডেটা স্টোরে সংরক্ষিত হয়, কিন্তু রেসপন্স মেসেজে ফেরত আসে না। উভয় ক্ষেত্রেই, টোকেন ভেরিফাই হওয়ার পর কাস্টম ডেটা এপিআই প্রক্সির ভেতরের পলিসিগুলোর জন্য উপলব্ধ থাকে।

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

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

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

  • সংস্থার নাম
  • ডেভেলপার.আইডি
  • ডেভেলপার.অ্যাপ.নাম
  • ক্লায়েন্ট_আইডি
  • অনুদানের ধরণ
  • টোকেন_টাইপ
  • অ্যাক্সেস_টোকেন
  • ইস্যু করা হয়েছে
  • expires_in //--সেকেন্ডে
  • অবস্থা
  • পরিধি
  • apiproduct.name*

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

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

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

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

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

আপনি একটি টোকেনের সাথে সংযুক্ত কাস্টম অ্যাট্রিবিউটগুলো আপডেট করতে Edge API-ও ব্যবহার করতে পারেন। Update OAuth 2.0 Access Token মেথডটির জন্য API ডকুমেন্টেশন দেখুন।