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

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

অ্যাপ আইডিগুলি স্বয়ংক্রিয়ভাবে একটি 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",
  "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",
  "refresh_count" : "0"
}

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

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

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

শেষ ব্যবহারকারী আইডি হল সেই স্ট্রিং যা এজ ডেভেলপার আইডি হিসেবে ব্যবহার করে, ডেভেলপারের ইমেল ঠিকানা নয়। গেট ডেভেলপার API কল ব্যবহার করে আপনি বিকাশকারীর ইমেল ঠিকানা থেকে বিকাশকারীর আইডি নির্ধারণ করতে পারেন।

আপনি টোকেনে শেষ ব্যবহারকারী আইডি অন্তর্ভুক্ত করার জন্য এজ কনফিগার করার পরে, এটি নীচে দেখানো হিসাবে 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",
  "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",
  "refresh_count" : "0"
}

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

ব্যবহারকারী আইডি, অ্যাপ আইডি বা উভয় দ্বারা OAuth টোকেন অ্যাক্সেস করতে নিম্নলিখিত APIগুলি ব্যবহার করুন:

টোকেন অ্যাক্সেস সক্ষম করার পদ্ধতি

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

ধাপ 1: একটি প্রতিষ্ঠানের জন্য টোকেন অ্যাক্সেস সমর্থন সক্ষম করুন

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

নিম্নলিখিত কল করা ব্যবহারকারীকে অবশ্যই প্রতিষ্ঠানের জন্য অর্গানডমিন বা opsadmin ভূমিকায় থাকতে হবে। আপনার সংগঠন-নির্দিষ্ট মানগুলির সাথে values প্রতিস্থাপন করুন:

curl -H "Content-type:text/xml" -X POST \
  https://management_server_IP;:8080/v1/organizations/org_name \
  -d '<Organization name="org_name">
      <Properties>
        <Property name="features.isOAuthRevokeEnabled">true</Property>
        <Property name="features.isOAuth2TokenSearchEnabled">true</Property>
      </Properties>
    </Organization>' \
  -u USER_EMAIL:PASSWORD

ধাপ 2: প্রতিষ্ঠানে opsadmin ভূমিকার জন্য অনুমতি সেট করুন

শুধুমাত্র একটি প্রতিষ্ঠানের orgadmin এবং opsadmin ভূমিকাকে ব্যবহারকারী আইডি বা অ্যাপ আইডির উপর ভিত্তি করে OAuth 2.0 টোকেন পুনরুদ্ধার (HTTP GET) এবং প্রত্যাহার (HTTP PUT) করার অনুমতি দেওয়া উচিত। অ্যাক্সেস নিয়ন্ত্রণ করতে, একটি প্রতিষ্ঠানের জন্য /oauth2 রিসোর্সে অনুমতি সেট করুন এবং রাখুন। সেই সংস্থানটির ফর্মটিতে একটি URL রয়েছে:

https://management_server_IP:8080/v1/organizations/org_name/oauth2

orgadmin ভূমিকার ইতিমধ্যেই প্রয়োজনীয় অনুমতি থাকা উচিত। /oauth2 রিসোর্সের জন্য opsadmin ভূমিকার জন্য, অনুমতিগুলি দেখতে এইরকম হওয়া উচিত:

<ResourcePermission path="/oauth2">
  <Permissions>
    <Permission>get</Permission>
    <Permission>put</Permission>
  </Permissions>
</ResourcePermission>

/oauth2 রিসোর্সের জন্য কোন ভূমিকার অনুমতি আছে তা দেখতে আপনি একটি একক সম্পদ API কলের জন্য অনুমতি পান ব্যবহার করতে পারেন।

প্রতিক্রিয়ার উপর ভিত্তি করে, আপনি /oauth2 রিসোর্স অনুমতিগুলিতে প্রয়োজনীয় সামঞ্জস্য করতে রিসোর্স API কলগুলির জন্য একটি ভূমিকাতে সংস্থানের অনুমতি যোগ করুন এবং অনুমতি মুছুন ব্যবহার করতে পারেন।

opsadmin ভূমিকা get এবং /oauth2 রিসোর্সের জন্য অনুমতি put নিম্নলিখিত curl কমান্ডটি ব্যবহার করুন। আপনার সংগঠন-নির্দিষ্ট মানগুলির সাথে values প্রতিস্থাপন করুন:

curl -X POST -H 'Content-type:application/xml' \
  http://management_server_IP:8080/v1/organizations/org_name/userroles/opsadmin/permissions \
  -d '<ResourcePermission path="/oauth2">
      <Permissions>
        <Permission>get</Permission>
        <Permission>put</Permission>
      </Permissions>
    </ResourcePermission>' \
  -u USEREMAIL:PASSWORD

orgadmin এবং opsadmin ব্যতীত অন্য ভূমিকা থেকে /oauth2 put get প্রত্যাহার করতে নিম্নলিখিত curl কমান্ডটি ব্যবহার করুন। আপনার সংগঠন-নির্দিষ্ট মানগুলির সাথে values প্রতিস্থাপন করুন:

curl -X DELETE -H 'Content-type:application/xml' \
  http://management_server_IP:8080/v1/organizations/org_name/userroles/roles/permissions \
  -d '<ResourcePermission path="/oauth2">
      <Permissions></Permissions>
    </ResourcePermission>' \
   -u USEREMAIL:PASSWORD

ধাপ 3: oauth_max_search_limit প্রপার্টি সেট করুন

নিশ্চিত করুন যে /opt/apigee/customer/application/management-server.properties ফাইলে conf_keymanagement_oauth_max_search_limit প্রপার্টি 100 এ সেট করা আছে:

conf_keymanagement_oauth_max_search_limit = 100

এই ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন।

এই বৈশিষ্ট্যটি টোকেন আনার সময় ব্যবহৃত পৃষ্ঠার আকার সেট করে। Apigee 100 এর মান সুপারিশ করে, কিন্তু আপনি এটিকে উপযুক্ত মনে করে সেট করতে পারেন।

একটি নতুন ইনস্টলেশনে, সম্পত্তিটি ইতিমধ্যেই 100 এ সেট করা উচিত। আপনাকে যদি এই সম্পত্তির মান পরিবর্তন করতে হয়, কমান্ডগুলি ব্যবহার করে ম্যানেজমেন্ট সার্ভার এবং বার্তা প্রসেসর পুনরায় চালু করুন:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

ধাপ 4: OAuth 2.0 নীতি কনফিগার করুন যা শেষ ব্যবহারকারী আইডি অন্তর্ভুক্ত করতে টোকেন তৈরি করে

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

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

GenerateAccessTokenClient নামে নীচের OAuth 2.0 নীতি, একটি 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=k3nJyFJIA3p62TKIkLO6OJNXFmP&client_secret=gk5K5lIp943AY4'

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

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