টোকেন পেতে Edge OAuth2 পরিষেবা ব্যবহার করা

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

অ্যাক্সেস ও রিফ্রেশ টোকেনের জন্য আপনার ক্রেডেনশিয়াল এক্সচেঞ্জ করতে, আপনি Edge OAuth2 পরিষেবা ব্যবহার করতে পারবেন যা আপনি পরে নিজের OAuth ওয়ার্কফ্লোতে Edge এন্ডপয়েন্ট কল করতে ব্যবহার করেন।

এই বিভাগে বর্ণিত পদ্ধতি ছাড়াও, আপনি OAuth2 টোকেন পেতে acurl এবং get_token ইউটিলিটি ব্যবহার করতে পারেন।

পথ

POST https://login.apigee.com/oauth/token

আপনি যদি Edge for Public Cloud-এ SAML চালু করা কোনও সংস্থা থেকে Edge OAuth2 পরিষেবা অ্যাক্সেস করেন, তাহলে আপনাকে অবশ্যই আপনার পাথে জোন নাম অন্তর্ভুক্ত করতে হবে। যেমন:

POST https://zone.login.apigee.com/oauth/token

অনুরোধের হেডার

প্যারামিটার ভ্যালু
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;charset=utf-8"
Authorization

"Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

আপনি এই ভ্যালু একটি এনভায়রনমেন্ট ভেরিয়েবলে এক্সপোর্ট করতে পারেন যাতে আপনি এইসব API কলে এটি আবার ব্যবহার করতে পারেন। যেমন:

export CLIENT_AUTH=ZWRnZWNsaTplZGdlY2xpc2VjcmV0
curl ... -H "Authorization: Basic $CLIENT_AUTH" ...

ফর্ম প্যারামিটার

প্যারামিটার প্রয়োজনীয়? ভ্যালু
username ঐচ্ছিক। ইউজারনেম ও পাসওয়ার্ডের সংমিশ্রণ বা পাসকোড প্রয়োজন। আপনার Apigee ইউজারনেম, যেটি সাধারণত আপনার Apigee অ্যাকাউন্টের সাথে যুক্ত ইমেল আইডি।
password ঐচ্ছিক। ইউজারনেম ও পাসওয়ার্ডের সংমিশ্রণ বা পাসকোড প্রয়োজন। আপনার Apigee অ্যাকাউন্টের পাসওয়ার্ড।
mfa_token ঐচ্ছিক আপনার অ্যাকাউন্টের জন্য একটি বৈধ বহু-স্তরীয় যাচাইকরণ (MFA) কোড। আপনার MFA চালু করা থাকলে তবেই প্রয়োজন।
passcode ঐচ্ছিক। ইউজারনেম ও পাসওয়ার্ডের সংমিশ্রণ বা পাসকোড প্রয়োজন। ওয়ান-টাইম পাসকোড যা আপনি পাসওয়ার্ডের পরিবর্তে ব্যবহার করতে পারবেন। SAML IDP-এর মাধ্যমে যাচাই করার সময় পাসকোড প্রয়োজন হয় এবং LDAP IDP-এর মাধ্যমে যাচাই করার সময় এটি ব্যবহার করা হতে পারে।
grant_type আবশ্যক

আপনি নতুন অ্যাক্সেস টোকেন পাবেন নাকি আগে থেকে থাকা টোকেন রিফ্রেশ করবেন তা নির্ধারণ করে। সঠিক মান হল:

  • "password": নতুন অ্যাক্সেস টোকেন পান। grant_type "password" হলে, আপনাকে অবশ্যই অনুরোধে নিজের Apigee ক্রেডেনশিয়াল যোগ করতে হবে।
  • "refresh_token": নতুন অ্যাক্সেস টোকেন পেতে রিফ্রেশ টোকেন পাঠান। যখন grant_type হল "refresh_token", তখন আপনাকে অনুরোধে নিজের ক্রেডেনশিয়াল যোগ করতে হবে না।
refresh_token ঐচ্ছিক বর্তমান অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে নতুন অ্যাক্সেস টোকেন পাওয়ার জন্য আপনাকে যে টোকেন দিতে হবে। grant_type-এর মান "refresh_token" হলে এই প্যারামিটারটি প্রয়োজন।

উদাহরণ

নতুন অ্যাক্সেস টোকেন পাওয়া

নতুন অ্যাক্সেস টোকেন পেতে, grant_type-কে "পাসওয়ার্ড" হিসেবে সেট করুন:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
      -X POST https://login.apigee.com/oauth/token \
      -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

MFA সহ নতুন অ্যাক্সেস টোকেন পাওয়া

MFA (মাল্টি-ফ্যাক্টর অথেন্টিকেশন) চালু করা অবস্থায় নতুন অ্যাক্সেস টোকেন পেতে, MFA কোড পান এবং তারপর mfa_token প্যারামিটারকে এর ভ্যালুতে সেট করুন:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
  -X POST https://login.apigee.com/oauth/token?mfa_token=424242 \
  -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

অ্যাক্সেস টোকেন রিফ্রেশ করা

অ্যাক্সেস টোকেন রিফ্রেশ করতে, grant_type-কে "refresh_token" হিসেবে সেট করুন এবং ফর্ম প্যারামিটার হিসেবে আপনার আগে থেকে থাকা রিফ্রেশ টোকেন যোগ করুন:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8"
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
  -X POST https://login.apigee.com/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN'

মনে রাখবেন, আপনার অ্যাক্সেস টোকেন রিফ্রেশ করার সময় আপনাকে নিজের ক্রেডেনশিয়াল পাস করতে হবে না।

প্রতিক্রিয়া

সফল হলে, আপনি একটি অ্যাক্সেস টোকেন, রিফ্রেশ টোকেন ও সম্পর্কিত তথ্য ফিরে পাবেন। যেমন:

{
  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOimYyD8IP2IyYS1jNmNiLTQ4NTgtYjZkMS1mZjkyNGFkYTk1YWUiLCJzdWIiOiI0X0KLSNjZlNjM0ZC0zZjlhLTRiNYmFjNi1kYjE2M2M5OGEzOGYiLCJzY29wZSI6WyJzYbmlkIiwicGFzc3dvcmQud3JpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsImNpZCI6ImVkZ2VjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iYWM2LWRiMTYzYzk4YTM4ZiIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoid3dpdG1hbkBhcGlnZWUuY29tIiwiZW1haWwiOiJ3d2l0bWFuQGFwaWdlZS5jb20iLCJhdXRoX3RpbWUiOjE0NzMyNjU4NzcsImFsIjoyLCJyZXZfc2lnIjoiZTc0ZGY0M2QiLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3MzI2NzY3NywiaXNzIjoiaHR0cHM6Ly9sb2dpbi5hcGlnZWUuY29tL29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwi2ltLm1lIiwib3BlYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.AFuevkeGGUGSPED8leyEKaT-xg1xk_VEiKJLEpipVvQBXIqEc9wqcpm-ZuoatA9DhjASRuFSRaHH8Fasx_vBxEBsUNhRY-GTMw7_8fv4yRMOb2AO3WUl_NWwPkC8XRSI1zCMbAZicojsJ1n3OSP487Mu9dl9ByX5A_QfHV2_cj4l9-SD7u6vOdfdbBxbNMAQkfZLrVIEU8myF2dhKnNeMiuoHSHANsQFcx0_BFA1HnSUnVi4RYj1FlTs9SbcPnS1d7t7eVdxWz_q2OFVXNIBMELAvvM0WhXPYTW3Osve3UvvUs6ekGs-K-RCPSok-4-NJbdCDpZQQTgqHsrf77NTsw",
  "token_type": "bearer",
  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZTIIMZWI0ZS00YzFmLTRjOTEtYmY5Mi1mMzZLEMzNjZhMDctciIsInN1YiI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iY17LLWRiMTYzYzk4YTM4ZiIsInNjb3BlIjpbInNjaW0ubWUiLCJvcGVuaWQiLCJwYXNzd29yZC53cml0ZSIsImFwcHJvdmFscy5tZSIsIm9hdXRoLmFwcHJvdmFscyJdLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3NsaSIsImNsaWVudF9pZCI6ImVkZ2VjbGkiLCJpc3MiOiJodHRwczovL2xvZ2luLmFwaWdlZS5jb20vb2F1dGgvdG9rZW4iLCJ6aWQiOiJ1YWEiLCJncmFudF90eXBlIjoicGFzc3dvcmQiLCJ1c2VyX25hbWUiOiJ3d2l0bWFuQGFwaWdlZS5jbMzM1MDQ3NywiY2lkIjoiZWRnZW20iLCJvcmlnaW4iOiJ1c2VyZ3JpZCIsInVzZXJfaWQiOiI0NjZlNjM0ZC0zZjlhLTRiNDEtYmFjNi1kYjE2M2M5OGEzOGYiLCJhbCI6MiwicmV2X3NpZyI6ImU3NGRmNDNkIiwiYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.kBP5AkbRS7Tnp-5VAfTLVfkUbUer4gFEU6A7g202KTKiXbqTwPSmOIGFTK12XevVPQYmAaSMFAnempWKfY7sjaY7HC7q3mGl53_A18cnkKhtNq15wCnyMom_bX_MYLW1RQPFytJ6akSJ-JkoPFU0x_FQg1JIvub1A8eqQxcR0KP-QRCxYAS4HTjH80vDIxHNt1tg7clmpa3RlHri0dlPVVsSpTXXhkpXRg5QbiWMrpkACSV22c0x0KiNu7vx5A520VOCO7hQ7IzmVIcSWcRqI97L7WdCjH_q4105bs2qmW73670MC0UGiJ9t5B1S1cxwqpUEd-NAuCsY8SVn6eWzbA",
  "expires_in": 1799,
  "scope": "scim.me openid password.write approvals.me oauth.approvals",
  "jti": "9bf2cb2a-c6cb-4858-b6d1-ff924ada95ae"
}

উত্তরের ভ্যালু সেভ করুন:

  • Edge API-তে কল করার সময় access_token ব্যবহার করুন
  • আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে এবং সেটি রিফ্রেশ করার প্রয়োজন হলে refresh_token ব্যবহার করুন

আপনি যদি এই ধরনের উত্তর পান:

{
  "error": "unauthorized",
  "error_description": "Bad credentials"
}

আপনার অনুরোধে উপরে দেওয়া স্ট্রিংটিই ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") যে Authorization হেডারে ব্যবহার করেছেন তা নিশ্চিত করুন।