get_token এবং acurl ইউটিলিটি ব্যবহার করা

Apigee SSO এবং Edge ম্যানেজমেন্ট API-এর সাথে ইন্টার‍্যাকশন সহজ করতে Apigee get_token এবং acurl ইউটিলিটি প্রদান করে। এইসব টুল টোকেন তৈরি, ক্যাশিং, রিফ্রেশিং ও ইনজেকশন অটোমেটিক ম্যানেজ করে।

/opt/apigee/apigee-openldap/bin/-এ OpenLDAP নোডে ইউটিলিটি ইনস্টল করা আছে।

get_token ইউটিলিটি

get_token ইউটিলিটি OIDC/OAuth2 অ্যাক্সেস ও রিফ্রেশ টোকেন পাওয়ার জন্য দায়ী। এটি দুটি প্রাথমিক যাচাইকরণ ফ্লোকে সাপোর্ট করে এবং এতে বিল্ট-ইন টোকেন ক্যাশিং অন্তর্ভুক্ত থাকে।

যাচাইকরণ ফ্লো

  • ডিভাইস কোড ফ্লো (RFC 8628): এক্সটার্নাল আইডেন্টিটি প্রোভাইডারের (যেমন SAML, Okta বা OIDC) মাধ্যমে যাচাইকরণ করা হিউম্যান ইউজারদের জন্য ডিজাইন করা হয়েছে। আপনি শুধুমাত্র একটি ইমেল আইডি (-u <email>) পাস করলে, ইউটিলিটি এই ফ্লো শুরু করে, আপনাকে একটি URL এবং ব্রাউজারে অনুমোদন করার জন্য কোড সহ প্রম্পট করে।
  • পাসওয়ার্ড গ্র্যান্ট (ROPC): হেডলেস মেশিন ব্যবহারকারী এবং অটোমেটেড স্ক্রিপ্টের জন্য ডিজাইন করা হয়েছে। আপনি ইউজারনেম ও পাসওয়ার্ড (-u <user>:<password>) দুটিই পাস করলে, এটি ব্রাউজার ইন্টার‍্যাকশন ছাড়াই সরাসরি Apigee SSO-এর মাধ্যমে যাচাই করে।

টোকেন ক্যাশিং ও অটোমেটিক রিফ্রেশ

get_token ইউটিলিটি অটোমেটিক টোকেন লাইফসাইকেল ম্যানেজ করে, তাই আপনাকে ম্যানুয়ালি মেয়াদ শেষ হওয়ার সময় ট্র্যাক করতে হবে না:

  • ক্যাশে চেক: চালু করা হলে, get_token ~/.sso-cli/<username>-token.json-এ লোকাল ক্যাশে চেক করে। কোনও সঠিক টোকেন থাকলে এবং সেটির মেয়াদ শেষ না হয়ে গেলে, এটি আবার যাচাই না করেই টোকেনটি আবার ব্যবহার করে।
  • অটো-রিফ্রেশ: ক্যাশে করা অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলেও যদি কোনও বৈধ রিফ্রেশ টোকেন থাকে, তাহলে ইউটিলিটি অটোমেটিক Apigee SSO-তে রিফ্রেশ টোকেন এক্সচেঞ্জ করে নতুন অ্যাক্সেস টোকেন নিয়ে নেয়।

এনভায়রনমেন্ট ভেরিয়েবল

আপনি চাইলে নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে get_token-এর আচরণ কাস্টমাইজ করতে পারবেন:

  • SSO_LOGIN_URL: Apigee SSO URL (ডিফল্ট: http://localhost:9099)।
  • CLIENT_ID: OAuth2 ক্লায়েন্ট আইডি (ডিফল্ট: edgecli)।
  • CLIENT_SECRET: OAuth2 ক্লায়েন্ট সিক্রেট (ডিফল্ট: edgeclisecret)।

acurl ইউটিলিটি

acurl ইউটিলিটি হল স্ট্যান্ডার্ড curl-এর চারপাশে একটি স্বচ্ছ র‍্যাপার। এটি নিশ্চিত করে যে প্রতিটি API অনুরোধে একটি সঠিক বিয়ারার টোকেন অন্তর্ভুক্ত থাকে।

  • আর্গুমেন্ট আলাদা করা: ইউটিলিটি -u <user:password> বা -u <user> আর্গুমেন্ট এক্সট্র্যাক্ট করে এবং get_token-এ পাস করে। এটি অন্যান্য সব আর্গুমেন্ট (যেমন -X, -H, -d, -v, -s) সরাসরি স্ট্যান্ডার্ড curl-এ ফরওয়ার্ড করে।
  • এক্সিকিউশন: get_token থেকে সঠিক টোকেন সফলভাবে পাওয়ার বা ফিরিয়ে আনার পরে, acurl অটোমেটিক -H "Authorization: Bearer <token>" হেডারকে curl ইনভোকেশনে ইনজেক্ট করে।

ব্যবহারের উদাহরণ

উদাহরণ ১: কোনও হিউম্যান ইউজারের জন্য ইন্টার‍্যাক্টিভ লগ-ইন

/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations

এই কমান্ডটি পজ করে, ব্যবহারকারীকে তাদের এক্সটার্নাল IDP-এর মাধ্যমে যাচাই করার জন্য একটি ব্রাউজারে যেতে প্রম্পট করে এবং তারপরে অনুমোদন হয়ে গেলে API কলটি এক্সিকিউট করে।

উদাহরণ ২: মেশিন ব্যবহারকারীর জন্য হেডলেস লগ-ইন

/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations

এই কমান্ডটি সরাসরি পাসওয়ার্ড গ্র্যান্টের মাধ্যমে যাচাই করে এবং সাথে সাথেই API কলটি এক্সিকিউট করে।

উদাহরণ ৩: ক্যাশে করা টোকেন আবার ব্যবহার করা

/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users

আগের ধাপে টোকেন ক্যাশে করা হয়েছে বলে আপনাকে আবার -u আর্গুমেন্ট দিতে হবে না। ইউটিলিটি ক্যাশে করা টোকেন পড়ে এবং এটি অটোমেটিক ইনজেক্ট করে।