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 আর্গুমেন্ট দিতে হবে না। ইউটিলিটি ক্যাশে করা টোকেন পড়ে এবং এটি অটোমেটিক ইনজেক্ট করে।