Edge ম্যানেজমেন্ট API-তে কল করার সময় যাচাইকরণের একটি উপায় হল Basic Auth। যেমন, আপনার সংস্থা সম্পর্কে তথ্য অ্যাক্সেস করতে, Edge ম্যানেজমেন্ট API-তে নিম্নলিখিত cURL অনুরোধ করতে পারেন:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
এই উদাহরণে, আপনি Basic Auth ক্রেডেনশিয়াল পাস করার জন্য cURL -u বিকল্প ব্যবহার করেন। অথবা, Edge ম্যানেজমেন্ট API কল করার জন্য আপনি Bearer হেডার OAuth2 টোকেন পাস করতে পারেন। যেমন:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
SAML চালু করার পরে, আপনি চাইলে Basic Auth বন্ধ করে দিতে পারেন। Basic Auth বন্ধ করে দিলে, Edge ম্যানেজমেন্ট API কলের উপর নির্ভর করে এমন সব স্ক্রিপ্ট (Maven স্ক্রিপ্ট, শেল স্ক্রিপ্ট, apigeetool ইত্যাদি) আর কাজ করে না যেগুলি Basic Auth-কে সাপোর্ট করে। আপনাকে অবশ্যই এমন যেকোনও API কল ও স্ক্রিপ্ট আপডেট করতে হবে যা বিয়ারার হেডারে OAuth2 অ্যাক্সেস টোকেন পাস করার জন্য Basic Auth ব্যবহার করে।
টোকেন পেতে ও রিফ্রেশ করতে get_token ব্যবহার করা
get_token ইউটিলিটি আপনার প্রাথমিক যাচাইকরণের ক্রেডেনশিয়াল এবং OAuth2 অ্যাক্সেস ও রিফ্রেশ টোকেনের জন্য পাসকোড এক্সচেঞ্জ করে। get_token ইউটিলিটি আপনার ক্রেডেনশিয়াল গ্রহণ করে এবং একটি সঠিক অ্যাক্সেস টোকেন প্রিন্ট করে। কোনও টোকেন রিফ্রেশ করা গেলে, এটি সেটি রিফ্রেশ করবে এবং প্রিন্ট করবে। রিফ্রেশ টোকেনের মেয়াদ শেষ হয়ে গেলে, ব্যবহারকারীর ক্রেডেনশিয়াল প্রম্পট করা হবে।
get_token ইউটিলিটি ডিস্কে টোকেন সেভ করে, প্রয়োজন হলে ব্যবহার করার জন্য রেডি থাকে। এছাড়াও, এটি stdout-এ একটি সঠিক অ্যাক্সেস টোকেন প্রিন্ট করে। সেখান থেকে, আপনি Postman ব্যবহার করতে পারেন অথবা curl-এ ব্যবহারের জন্য এনভায়রনমেন্ট ভেরিয়েবলে এম্বেড করতে পারেন।
Edge ম্যানেজমেন্ট API কল করার জন্য OAuth2 অ্যাক্সেস টোকেন পেতে get_token কীভাবে ব্যবহার করতে হয় তা নিম্নলিখিত পদ্ধতি বর্ণনা করে:
- sso-cli
বান্ডেল ডাউনলোড করুন:
curl http://edge_sso_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
যেখানে edge_sso_IP_DNS হল Edge SSO মডিউল হোস্ট করা মেশিনের DNS নামের IP অ্যাড্রেস। আপনি Edge SSO-তে TLS কনফিগার করে থাকলে,
httpsএবং সঠিক TLS পোর্ট নম্বর ব্যবহার করুন। ssocli-bundle.zipবান্ডেল আনজিপ করুন:unzip ssocli-bundle.zip
- get_token ইনস্টল করুন
/usr/local/bin:
> ./install অন্য লোকেশন নির্দিষ্ট করতে -b বিকল্প ব্যবহার করুন: > ./install -b path - আপনার লগ-ইন URL-এ SSO_LOGIN_URL
এনভায়রনমেন্ট ভেরিয়েবল সেট করুন, এই ফর্ম্যাটে:
export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
যেখানে edge_sso_IP_DNS হল Edge SSO মডিউল হোস্ট করা মেশিনের IP অ্যাড্রেস বা DNS নাম । Edge SSO-তে TLS কনফিগার করে থাকলে, https এবং সঠিক TLS পোর্ট নম্বর ব্যবহার করুন। - ব্রাউজারে, এককালীন পাসকোড পেতে নিম্নলিখিত URL-এ যান:
http://edge_sso_IP_DNS:9099/passcode
আপনি Edge SSO-তে TLS কনফিগার করে থাকলে, https এবং সঠিক TLS পোর্ট নম্বর ব্যবহার করুন।
মনে রাখবেন: আপনি বর্তমানে নিজের পরিচয় প্রদানকারীর মাধ্যমে লগ-ইন করে না থাকলে, আপনাকে লগ-ইন করার জন্য প্রম্পট দেখানো হবে।
এই URL একটি ওয়ান-টাইম পাসকোড রিটার্ন করে যা আপনি নতুন পাসকোড পাওয়ার জন্য URL রিফ্রেশ না করা পর্যন্ত অথবা অ্যাক্সেস টোকেন জেনারেট করার জন্য get_token-এর সাথে পাসকোড ব্যবহার না করা পর্যন্ত বৈধ থাকে। - OAuth2 অ্যাক্সেস টোকেন পেতে
get_token ইনভোক করুন:
> get_token -u emailAddress
যেখানে emailAddress হল Edge ব্যবহারকারীর ইমেল আইডি। আপনাকে ওয়ান-টাইম পাসকোড লিখতে বলা হবে যা আপনি ৩ নম্বর ধাপে পেয়েছেন:
ওয়ান-টাইম কোড ( এখান থেকে পান: https://edge_sso_IP.com/passcode )
SAML চালু থাকলে পাসকোড লিখুন অথবা ENTER টিপুন:
পাসকোড লিখুন। get_token ইউটিলিটি OAuth2 অ্যাক্সেস টোকেন পায়, এটি স্ক্রিনে প্রিন্ট করে এবং ~/.sso-cli-তে এটি ও রিফ্রেশ টোকেন লেখে।
আপনি কমান্ড লাইনে get_token কমান্ড ব্যবহার করে এই ফর্ম্যাটে পাসকোড লিখতে পারেন:
> get_token -u emailAddress -p passcode - Bearer হেডার হিসেবে Edge ম্যানেজমেন্ট API কলে অ্যাক্সেস টোকেন পাস করুন:
> curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
আপনি প্রথমবার নতুন অ্যাক্সেস টোকেন পাওয়ার পরে, অ্যাক্সেস টোকেন পেতে এবং নিচে দেখানো পদ্ধতিতে একটি কমান্ডের মাধ্যমে API কলে পাস করতে পারবেন:
> header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
এই ধরনের কমান্ডের মাধ্যমে, অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, রিফ্রেশ টোকেনের মেয়াদ শেষ না হওয়া পর্যন্ত এটি অটোমেটিক রিফ্রেশ হয়ে যায়।
রিফ্রেশ টোকেনের মেয়াদ শেষ হয়ে গেলে, get_token আপনাকে নতুন পাসকোড দিতে বলবে। আপনাকে অবশ্যই ধাপ ৩-এ দেখানো URL-এ যেতে হবে এবং নতুন OAuth অ্যাক্সেস টোকেন জেনারেট করার আগে একটি নতুন পাসকোড জেনারেট করতে হবে
টোকেন পাওয়া ও রিফ্রেশ করার জন্য ম্যানেজমেন্ট API ব্যবহার করা
Apigee Edge ম্যানেজমেন্ট API-এর সাথে OAuth2 সুরক্ষা ব্যবহার করা নিবন্ধে টোকেন পাওয়ার ও রিফ্রেশ করার জন্য Edge ম্যানেজমেন্ট API কীভাবে ব্যবহার করতে হয় সেই সংক্রান্ত নির্দেশাবলী রয়েছে। এছাড়াও, SAML অ্যাসারশন থেকে তৈরি টোকেনের জন্য Edge API কল ব্যবহার করতে পারেন।
Apigee Edge ম্যানেজমেন্ট API-এর সাথে OAuth2 নিরাপত্তা ব্যবহার করা ডকুমেন্টেশনে উল্লেখ করা API কলের সাথে একমাত্র পার্থক্য হল, কলের URL-এ আপনার জোন নামের রেফারেন্স থাকতে হবে। এছাড়াও, প্রাথমিক অ্যাক্সেস টোকেন তৈরি করার জন্য, আপনাকে অবশ্যই পাসকোড অন্তর্ভুক্ত করতে হবে, যেমন উপরের পদ্ধতির ৩ নম্বর ধাপে দেখানো হয়েছে।
যেমন, প্রাথমিক অ্যাক্সেস ও রিফ্রেশ টোকেন জেনারেট করতে, নিম্নলিখিত API কল ব্যবহার করুন:
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://edge_sso_IP_DNS:9099/oauth/token -s / -d 'grant_type=password&response_type=token&passcode=passcode'
অনুমোদনের জন্য, অনুমোদন হেডার থেকে একটি সংরক্ষিত OAuth2 ক্লায়েন্ট ক্রেডেনশিয়াল পাস করুন। কলটি স্ক্রিনে অ্যাক্সেস ও রিফ্রেশ টোকেন প্রিন্ট করে।
পরে অ্যাক্সেস টোকেন রিফ্রেশ করতে, রিফ্রেশ টোকেন সহ নিম্নলিখিত কল ব্যবহার করুন:
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://edge_sso_IP_DNS:9099/oauth/token / -d 'grant_type=refresh_token&refresh_token=refreshToken'