Edge ম্যানেজমেন্ট API-এর সাথে SAML ব্যবহার করা

Edge for Private Cloud v. 4.17.09

Edge ম্যানেজমেন্ট API-তে কল করার সময় যাচাই করার একটি উপায় হল বেসিক অথেন্টিকেশন। যেমন, আপনার প্রতিষ্ঠান সম্পর্কে তথ্য অ্যাক্সেস করতে আপনি Edge ম্যানেজমেন্ট API-তে নিম্নলিখিত cURL অনুরোধ করতে পারেন:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

এই উদাহরণে, আপনি বেসিক Auth ক্রেডেনশিয়াল পাস করার জন্য cURL -u বিকল্প ব্যবহার করেন। বিকল্প হিসেবে, আপনি Edge ম্যানেজমেন্ট API কল করার জন্য Bearer হেডারে OAuth2 টোকেন পাঠাতে পারেন। যেমন:

curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName

SAML চালু করার পরে, আপনি চাইলে বেসিক অথেন্টিকেশন বন্ধ করতে পারেন। বেসিক অথেন্টিকেশন বন্ধ করলে, বেসিক অথেন্টিকেশন সমর্থন করে এমন Edge ম্যানেজমেন্ট API কলের উপর নির্ভর করে এমন সব স্ক্রিপ্ট (Maven স্ক্রিপ্ট, শেল স্ক্রিপ্ট, apigeetool ইত্যাদি) আর কাজ করবে না। আপনাকে অবশ্যই যেকোনও API কল এবং স্ক্রিপ্ট আপডেট করতে হবে যা বিয়ারার হেডারে OAuth2 অ্যাক্সেস টোকেন পাস করার জন্য বেসিক প্রমাণীকরণ ব্যবহার করে।

টোকেন পেতে এবং রিফ্রেশ করতে get_token ব্যবহার করা হচ্ছে

get_token ইউটিলিটি আপনার বেসিক Auth ক্রেডেনশিয়াল এবং পাসকোড OAuth2 অ্যাক্সেস ও রিফ্রেশ টোকেনের সাথে এক্সচেঞ্জ করে। get_token ইউটিলিটি আপনার ক্রেডেনশিয়াল গ্রহণ করে এবং একটি সঠিক অ্যাক্সেস টোকেন প্রিন্ট করে। কোনও টোকেন রিফ্রেশ করা গেলে, এটি সেটি রিফ্রেশ করবে এবং প্রিন্ট করবে। রিফ্রেশ টোকেনের মেয়াদ শেষ হয়ে গেলে, এটি ব্যবহারকারীর ক্রেডেনশিয়াল চাইবে।

get_token ইউটিলিটি ডিস্কে টোকেন স্টোর করে, যা প্রয়োজন হলে ব্যবহারের জন্য রেডি থাকে। এটি stdout-এ একটি সঠিক অ্যাক্সেস টোকেনও প্রিন্ট করে। সেখান থেকে, আপনি Postman ব্যবহার করতে পারেন বা curl-এ ব্যবহারের জন্য এটিকে এনভায়রনমেন্ট ভেরিয়েবলে এম্বেড করতে পারেন।

Edge ম্যানেজমেন্ট API কল করার জন্য OAuth2 অ্যাক্সেস টোকেন পেতে কীভাবে get_token ব্যবহার করবেন তা নিম্নলিখিত পদ্ধতিতে বর্ণনা করা হয়েছে:

  1. 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 পোর্ট নম্বর ব্যবহার করুন।

  2. ssocli-bundle.zip বান্ডেল আনজিপ করুন:
    unzip ssocli-bundle.zip
  3. get_token-এ /usr/local/bin ইনস্টল করুন:
    ./install

    অন্য লোকেশন নির্দিষ্ট করতে -b বিকল্প ব্যবহার করুন:

    ./install -b path
  4. আপনার লগ-ইন URL-এ SSO_LOGIN_URL এনভায়রনমেন্ট ভেরিয়েবেল সেট করুন, এই ফর্ম্যাটে:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    যেখানে edge_sso_IP_DNS হল Edge SSO মডিউল হোস্ট করা মেশিনের DNS নামের IP অ্যাড্রেস। আপনি Edge SSO-তে TLS কনফিগার করলে, https এবং সঠিক TLS পোর্ট নম্বর ব্যবহার করুন।

  5. ব্রাউজারে, ওয়ান-টাইম পাসকোড পেতে নিম্নলিখিত URL-এ যান:
    http://edge_sso_IP_DNS:9099/passcode

    আপনি Edge SSO-তে TLS কনফিগার করে থাকলে, https এবং সঠিক TLS পোর্ট নম্বর ব্যবহার করুন।

    এই URL একটি ওয়ান-টাইম পাসকোড প্রদান করে যা নতুন পাসকোড পাওয়ার জন্য URL রিফ্রেশ না করা পর্যন্ত অথবা অ্যাক্সেস টোকেন তৈরি করার জন্য get_token-এর সাথে পাসকোড ব্যবহার না করা পর্যন্ত বৈধ থাকে।

  6. OAuth2 অ্যাক্সেস টোকেন পেতে get_token ইনভোক করুন:
    get_token -u emailAddress

    যেখানে emailAddress হল Edge ব্যবহারকারীর ইমেল আইডি। আপনাকে ৩ নম্বর ধাপে পাওয়া ওয়ান-টাইম পাসকোড লিখতে বলা হবে:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

    পাসকোড লিখুন। get_token ইউটিলিটি OAuth2 অ্যাক্সেস টোকেন পায়, এটি স্ক্রিনে প্রিন্ট করে এবং এটি ও রিফ্রেশ টোকেন ~/.sso-cli-এ লেখে।

    আপনি এই ফর্ম্যাটে get_token কমান্ড ব্যবহার করে কমান্ড লাইনে পাসকোড লিখতে পারবেন:

    get_token -u emailAddress -p passcode
  7. 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 আপনাকে নতুন পাসকোড দেওয়ার জন্য প্রম্পট করে। নতুন OAuth অ্যাক্সেস টোকেন জেনারেট করার আগে আপনাকে ধাপ ৩-এ দেখানো URL-এ গিয়ে নতুন পাসকোড জেনারেট করতে হবে

টোকেন পেতে এবং রিফ্রেশ করতে ম্যানেজমেন্ট 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'

অনুমোদনের জন্য, Authorization হেডারে একটি সংরক্ষিত 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'