এজ এপিআই অ্যাক্সেস করতে OAuth2 ব্যবহার করা হচ্ছে

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

Apigee Edge আপনাকে Edge API কল করতে দেয় যা OAuth2 টোকেন দ্বারা প্রমাণীকৃত। OAuth2-এর জন্য সমর্থন ক্লাউড অ্যাকাউন্টের জন্য এজ-এ ডিফল্টরূপে সক্রিয় করা আছে। আপনি যদি ব্যক্তিগত ক্লাউডের জন্য এজ ব্যবহার করেন, আপনি প্রথমে SAML বা LDAP সেট আপ না করে OAuth2 ব্যবহার করতে পারবেন না।

কিভাবে OAuth2 কাজ করে (Apigee Edge API এর সাথে)

Apigee Edge API-তে কল করার জন্য প্রমাণীকরণের প্রয়োজন হয় যাতে আমরা নিশ্চিত হতে পারি যে আপনি যা বলছেন আপনি সেই ব্যক্তি। আপনাকে প্রমাণীকরণ করার জন্য, আমাদের API অ্যাক্সেস করার জন্য আপনার অনুরোধের সাথে একটি OAuth2 অ্যাক্সেস টোকেন পাঠানো প্রয়োজন।

উদাহরণস্বরূপ, যদি আপনি এজ-এ একটি সংস্থার বিশদ বিবরণ পেতে চান তবে আপনি নিম্নলিখিতগুলির মতো একটি URL-এ একটি অনুরোধ পাঠাবেন:

https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

কিন্তু আপনি কে আমাদের না জানিয়ে সেই অনুরোধটি পাঠাতে পারবেন না। অন্যথায়, যে কেউ আপনার প্রতিষ্ঠানের বিবরণ দেখতে পারে।

এখানেই OAuth2 আসে: আপনাকে প্রমাণীকরণ করার জন্য, আমাদের সেই অনুরোধে আমাদের একটি অ্যাক্সেস টোকেন পাঠাতে হবে। অ্যাক্সেস টোকেন আমাদের বলে যে আপনি কে তাই আমরা নিশ্চিত হতে পারি যে আপনি প্রতিষ্ঠানের বিশদ বিবরণ দেখতে পাবেন।

সৌভাগ্যবশত, আপনি Edge OAuth2 পরিষেবাতে আপনার শংসাপত্র পাঠিয়ে একটি টোকেন পেতে পারেন। পরিষেবাটি অ্যাক্সেস এবং রিফ্রেশ টোকেনগুলির সাথে প্রতিক্রিয়া জানায়৷

OAuth2 ফ্লো: প্রাথমিক অনুরোধ

আপনি যখন প্রথমবার এজ এপিআই অ্যাক্সেস করেন তখন নিম্নলিখিত চিত্রটি OAuth2 প্রবাহ দেখায়:

OAuth ফ্লো: প্রথম অনুরোধ
চিত্র 1: OAuth ফ্লো: প্রথম অনুরোধ

যেমন চিত্র 1 দেখায়, আপনি যখন এজ এপিআই-তে আপনার প্রাথমিক অনুরোধ করেন:

  1. আপনি একটি অ্যাক্সেস টোকেন অনুরোধ করুন. আপনি Edge API , acurl , বা get_token দিয়ে এটি করতে পারেন। যেমন:
    get_token
    Enter username:
    ahamilton@apigee.com
    Enter the password for user 'ahamilton@apigee.com'
    [hidden input]
    Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:
    123456
  2. এজ OAuth2 পরিষেবা একটি অ্যাক্সেস টোকেনের সাথে প্রতিক্রিয়া জানায় এবং এটিকে stdout এ প্রিন্ট করে; উদাহরণস্বরূপ:
    Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz
    AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm
    NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI
    GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic
    ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0
    RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG
    420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M
    2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw

    acurl এবং get_token ইউটিলিটিগুলি নিঃশব্দে অ্যাক্সেস সংরক্ষণ করে এবং টোকেনগুলিকে ~/.sso-cli তে রিফ্রেশ করে (রিফ্রেশ টোকেনটি stdout এ লেখা হয় না।) আপনি যদি টোকেনগুলি পেতে Edge OAuth2 পরিষেবা ব্যবহার করেন, তাহলে আপনাকে পরবর্তীতে নিজের ব্যবহারের জন্য সেগুলি সংরক্ষণ করতে হবে .

  3. আপনি অ্যাক্সেস টোকেন সহ এজ এপিআইতে একটি অনুরোধ পাঠান। acurl স্বয়ংক্রিয়ভাবে টোকেন সংযুক্ত করে; উদাহরণস্বরূপ:
    acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

    আপনি অন্য HTTP ক্লায়েন্ট ব্যবহার করলে, অ্যাক্সেস টোকেন যোগ করতে ভুলবেন না। যেমন:

    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"
  4. এজ এপিআই আপনার অনুরোধ কার্যকর করে এবং সাধারণত ডেটা সহ একটি প্রতিক্রিয়া প্রদান করে।

OAuth2 ফ্লো: পরবর্তী অনুরোধ

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

OAuth ফ্লো: পরবর্তী অনুরোধ
চিত্র 2: OAuth ফ্লো: পরবর্তী অনুরোধ

চিত্র 2 দেখায়, যখন আপনার কাছে ইতিমধ্যে একটি অ্যাক্সেস টোকেন থাকে:

  1. আপনি অ্যাক্সেস টোকেন সহ এজ এপিআইতে একটি অনুরোধ পাঠান। acurl স্বয়ংক্রিয়ভাবে টোকেন সংযুক্ত করে। আপনি যদি অন্যান্য সরঞ্জাম ব্যবহার করেন তবে আপনাকে টোকেনটি ম্যানুয়ালি যোগ করতে হবে।
  2. এজ এপিআই আপনার অনুরোধ কার্যকর করে এবং সাধারণত ডেটা সহ একটি প্রতিক্রিয়া প্রদান করে।

OAuth2 ফ্লো: আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হলে

যখন একটি অ্যাক্সেস টোকেনের মেয়াদ শেষ হয় (12 ঘন্টা পরে), আপনি একটি নতুন অ্যাক্সেস টোকেন পেতে রিফ্রেশ টোকেন ব্যবহার করতে পারেন:

OAuth ফ্লো: অ্যাক্সেস টোকেন রিফ্রেশ করা হচ্ছে
চিত্র 3: OAuth ফ্লো: অ্যাক্সেস টোকেন রিফ্রেশ করা হচ্ছে

চিত্র 3 দেখায়, যখন আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে যায়:

  1. আপনি এজ এপিআইতে একটি অনুরোধ পাঠান, কিন্তু আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেছে।
  2. এজ এপিআই আপনার অনুরোধটিকে অননুমোদিত বলে প্রত্যাখ্যান করে।
  3. আপনি এজ OAuth2 পরিষেবাতে একটি রিফ্রেশ টোকেন পাঠান। আপনি যদি acurl ব্যবহার করেন তবে এটি আপনার জন্য স্বয়ংক্রিয়ভাবে সম্পন্ন হয়।
  4. এজ OAuth2 পরিষেবা একটি নতুন অ্যাক্সেস টোকেনের সাথে প্রতিক্রিয়া জানায়।
  5. আপনি নতুন অ্যাক্সেস টোকেন সহ এজ এপিআইতে একটি অনুরোধ পাঠান।
  6. এজ এপিআই আপনার অনুরোধ কার্যকর করে এবং সাধারণত ডেটা সহ একটি প্রতিক্রিয়া প্রদান করে।

টোকেন পান

একটি অ্যাক্সেস টোকেন পেতে যা আপনি এজ এপিআইতে পাঠাতে পারেন, আপনি curl এর মতো একটি ইউটিলিটি ছাড়াও নিম্নলিখিত অ্যাপিজি ইউটিলিটিগুলি ব্যবহার করতে পারেন:

  • get_token ইউটিলিটি : অ্যাক্সেসের জন্য আপনার Apigee শংসাপত্র বিনিময় করে এবং টোকেন রিফ্রেশ করে যা আপনি এজ API কল করতে ব্যবহার করতে পারেন।
  • acurl ইউটিলিটি : একটি স্ট্যান্ডার্ড curl কমান্ডের চারপাশে একটি সুবিধার মোড়ক প্রদান করে। এজ এপিআই-তে HTTP অনুরোধ তৈরি করে, get_token থেকে অ্যাক্সেস এবং রিফ্রেশ টোকেন পায় এবং এজ এপিআই-এ অ্যাক্সেস টোকেন পাস করে।
  • এজ OAuth2 পরিষেবাতে টোকেন এন্ডপয়েন্ট : অ্যাক্সেসের জন্য আপনার Apigee শংসাপত্রগুলি বিনিময় করুন এবং এজ এপিআই-তে একটি কলের মাধ্যমে টোকেনগুলি রিফ্রেশ করুন৷

এই ইউটিলিটিগুলি নিম্নলিখিত সময়কালের সাথে টোকেনের জন্য আপনার Apigee অ্যাকাউন্টের শংসাপত্র (ইমেল ঠিকানা এবং পাসওয়ার্ড) বিনিময় করে:

  • অ্যাক্সেস টোকেন 12 ঘন্টার মধ্যে মেয়াদ শেষ হয়.
  • রিফ্রেশ টোকেন 30 দিনের মধ্যে মেয়াদ শেষ হয়.

ফলস্বরূপ, একবার আপনি সফলভাবে acurl বা get_token দিয়ে একটি API কল করলে, আপনি 30 দিনের জন্য টোকেন জোড়া ব্যবহার করা চালিয়ে যেতে পারেন। মেয়াদ শেষ হওয়ার পরে, আপনাকে অবশ্যই আপনার শংসাপত্রগুলি পুনরায় প্রবেশ করতে হবে এবং নতুন টোকেন পেতে হবে।

OAuth2 দিয়ে এজ এপিআই অ্যাক্সেস করুন

এজ এপিআই অ্যাক্সেস করতে, আপনি একটি এপিআই এন্ডপয়েন্টে একটি অনুরোধ পাঠান এবং অ্যাক্সেস টোকেন অন্তর্ভুক্ত করুন। আপনি যেকোন HTTP ক্লায়েন্টের সাথে এটি করতে পারেন, যার মধ্যে একটি কমান্ড-লাইন ইউটিলিটি যেমন curl , একটি ব্রাউজার-ভিত্তিক UI যেমন পোস্টম্যান, বা acurl এর মতো একটি Apigee ইউটিলিটি।

acurl এবং curl সহ এজ এপিআই অ্যাক্সেস করা নিম্নলিখিত বিভাগগুলিতে বর্ণনা করা হয়েছে।

acurl ব্যবহার করুন

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

পরবর্তী অনুরোধে, acurl ~/.sso-cli এ সংরক্ষিত টোকেনগুলি ব্যবহার করে যাতে টোকেনগুলির মেয়াদ শেষ না হওয়া পর্যন্ত আপনাকে আবার আপনার শংসাপত্রগুলি অন্তর্ভুক্ত করতে না হয়৷

নিম্নলিখিত উদাহরণটি একটি প্রাথমিক acurl অনুরোধ দেখায় যা "আহমিলটন-ইভাল" সংস্থার বিশদ বিবরণ পায়:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -u ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'
[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:
1a2b3c
{
  "createdAt" : 1491854501264,
  "createdBy" : "noreply_iops@apigee.com",
  "displayName" : "ahamilton",
  "environments" : [ "prod", "test" ],
  "lastModifiedAt" : 1491854501264,
  "lastModifiedBy" : "noreply_iops@apigee.com",
  "name" : "ahamilton",
  "properties" : {
    "property" : [ {
      "name" : "features.isSmbOrganization",
      "value" : "false"
    }, {
      "name" : "features.isCpsEnabled",
      "value" : "true"
    } ]
  },
  "type" : "trial"
}

acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies

[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]

সংস্থা সম্পর্কে বিশদ বিবরণ পাওয়ার পাশাপাশি, এই উদাহরণটি একটি দ্বিতীয় অনুরোধও দেখায় যা "হ্যালোওয়ার্ল্ড" API প্রক্সির মধ্যে নীতিগুলির একটি তালিকা পায়৷ দ্বিতীয় অনুরোধটি URL-এ "অর্গানাইজেশন"-এর জন্য "o" সংক্ষিপ্তকরণ ব্যবহার করে।

মনে রাখবেন যে acurl স্বয়ংক্রিয়ভাবে দ্বিতীয় অনুরোধে অ্যাক্সেস টোকেন পাস করে। একবার acurl OAuth2 টোকেন সংরক্ষণ করলে আপনার ব্যবহারকারীর শংসাপত্রগুলি পাস করার দরকার নেই৷ এটি পরবর্তী কলগুলির জন্য ~/.sso-cli থেকে টোকেন পায়৷

আরও তথ্যের জন্য, এজ এপিআই অ্যাক্সেস করতে acurl ব্যবহার করা দেখুন।

কার্ল ব্যবহার করুন

আপনি এজ এপিআই অ্যাক্সেস করতে curl ব্যবহার করতে পারেন। এটি করার জন্য, আপনাকে প্রথমে অ্যাক্সেস পেতে হবে এবং টোকেন রিফ্রেশ করতে হবে। আপনি get_token বা Edge OAuth2 পরিষেবার মতো একটি ইউটিলিটি ব্যবহার করে এগুলি পেতে পারেন। .

আপনি সফলভাবে আপনার অ্যাক্সেস টোকেন সংরক্ষণ করার পরে, আপনি এটিকে আপনার কলগুলির Authorization শিরোনামে এজ এপিআইতে পাস করবেন, যেমনটি নিম্নলিখিত উদাহরণটি দেখায়:

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

অ্যাক্সেস টোকেন ইস্যু করার পরে 12 ঘন্টার জন্য বৈধ। অ্যাক্সেস টোকেনের মেয়াদ শেষ হওয়ার পরে, শংসাপত্রের প্রয়োজন ছাড়াই অন্য অ্যাক্সেস টোকেন ইস্যু করতে রিফ্রেশ টোকেনটি 30 দিনের জন্য ব্যবহার করা যেতে পারে। Apigee রেফারেশ টোকেনের মেয়াদ শেষ হওয়ার পরেই একটি নতুন অ্যাক্সেস টোকেনের অনুরোধ করার সুপারিশ করে, শংসাপত্রগুলি প্রবেশ করানো এবং প্রতিটি API কলের সাথে একটি নতুন অনুরোধ করার পরিবর্তে।

টোকেনের মেয়াদ শেষ

একবার আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, আপনি আবার আপনার শংসাপত্র জমা না দিয়ে একটি নতুন অ্যাক্সেস টোকেন পেতে রিফ্রেশ টোকেন ব্যবহার করতে পারেন।

আপনি কীভাবে আপনার অ্যাক্সেস টোকেন রিফ্রেশ করবেন তা নির্ভর করে আপনি কোন টুল ব্যবহার করছেন তার উপর:

  • acurl : কোন কর্মের প্রয়োজন নেই। acurl স্বয়ংক্রিয়ভাবে অ্যাক্সেস টোকেন রিফ্রেশ করে যখন আপনি একটি অনুরোধ পাঠান যাতে একটি পুরানো একটি রয়েছে।
  • get_token : অ্যাক্সেস টোকেন রিফ্রেশ করতে get_token কল করুন।
  • এজ OAuth2 পরিষেবা : একটি অনুরোধ পাঠান যাতে রয়েছে:
    • টোকেন রিফ্রেশ করুন
    • grant_type ফর্ম প্যারামিটার "refresh_token" এ সেট করা হয়েছে

মেশিন ব্যবহারকারীদের জন্য OAuth2

আপনি মেশিন ব্যবহারকারীদের জন্য OAuth2 প্রমাণীকরণ সহ Edge API-তে স্বয়ংক্রিয় অ্যাক্সেস স্ক্রিপ্ট করতে acurl এবং get_token ইউটিলিটিগুলি ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি অ্যাক্সেস টোকেন অনুরোধ করতে get_token ব্যবহার করতে হয় এবং তারপরে একটি curl কলে টোকেন মান যুক্ত করতে হয়:

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '')
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

বিকল্পভাবে, আপনি acurl ইউটিলিটি ব্যবহার করে টোকেন অনুরোধ এবং curl কল একত্রিত করতে পারেন। যেমন:

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
  

উভয় উদাহরণেই, -m এর মান একটি খালি স্ট্রিং-এ সেট করা একজন মেশিন ব্যবহারকারীকে MFA কোডের জন্য অনুরোধ করা থেকে বাধা দেবে।