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

প্রাইভেট ক্লাউড v4.18.01 এর জন্য এজ

এজ ম্যানেজমেন্ট এপিআই-তে কল করার সময় মৌলিক প্রমাণীকরণ হল প্রমাণীকরণের একটি উপায়। উদাহরণস্বরূপ, আপনি আপনার প্রতিষ্ঠান সম্পর্কে তথ্য অ্যাক্সেস করার জন্য এজ ম্যানেজমেন্ট এপিআই-এর কাছে নিম্নলিখিত সিআরএল অনুরোধ করতে পারেন:

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

এই উদাহরণে, আপনি মৌলিক প্রমাণীকরণ শংসাপত্রগুলি পাস করতে cURL -u বিকল্পটি ব্যবহার করেন৷ বিকল্পভাবে, আপনি এজ ম্যানেজমেন্ট API কল করতে Bearer হেডারে একটি OAuth2 টোকেন পাস করতে পারেন। যেমন:

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

আপনি SAML সক্ষম করার পরে, আপনি ঐচ্ছিকভাবে মৌলিক প্রমাণীকরণ অক্ষম করতে পারেন। যদি আপনি Basic Auth নিষ্ক্রিয় করেন, তাহলে সমস্ত স্ক্রিপ্ট (Maven স্ক্রিপ্ট, শেল স্ক্রিপ্ট, apigeetool , ইত্যাদি) যেগুলি এজ ম্যানেজমেন্ট API কলগুলির উপর নির্ভর করে যেগুলি বেসিক প্রমাণ সমর্থন করে তা আর কাজ করবে না। Bearer হেডারে OAuth2 অ্যাক্সেস টোকেন পাস করার জন্য বেসিক প্রমাণ ব্যবহার করে এমন যেকোনো API কল এবং স্ক্রিপ্ট আপডেট করতে হবে।

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

get_token ইউটিলিটি একটি OAuth2 অ্যাক্সেস এবং রিফ্রেশ টোকেনের জন্য আপনার মৌলিক প্রমাণপত্র এবং একটি পাসকোড বিনিময় করে। get_token ইউটিলিটি আপনার শংসাপত্র গ্রহণ করে এবং একটি বৈধ অ্যাক্সেস টোকেন প্রিন্ট করে। যদি একটি টোকেন রিফ্রেশ করা যায় তবে এটি রিফ্রেশ করবে এবং এটি প্রিন্ট আউট করবে। রিফ্রেশ টোকেনের মেয়াদ শেষ হলে, এটি ব্যবহারকারীর শংসাপত্রের জন্য অনুরোধ করবে।

get_token ইউটিলিটি ডিস্কে টোকেন সংরক্ষণ করে, প্রয়োজনে ব্যবহারের জন্য প্রস্তুত। এটি stdout-এ একটি বৈধ অ্যাক্সেস টোকেনও প্রিন্ট করে। সেখান থেকে, আপনি পোস্টম্যান ব্যবহার করতে পারেন বা কার্ল ব্যবহার করার জন্য এটি একটি পরিবেশ পরিবর্তনশীল এম্বেড করতে পারেন।

নিম্নোক্ত পদ্ধতি বর্ণনা করে কিভাবে এজ ম্যানেজমেন্ট এপিআই কল করার জন্য একটি OAuth2 অ্যাক্সেস টোকেন পেতে get_token ব্যবহার করতে হয়:

  1. sso-cli বান্ডেল ডাউনলোড করুন:
    > কার্ল http:// edge_sso_IP_DNS: 9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    যেখানে edge_sso_IP_DNS হল এজ SSO মডিউল হোস্ট করা মেশিনের DNS নামের IP ঠিকানা। আপনি যদি এজ এসএসও-তে TLS কনফিগার করেন, তাহলে https এবং সঠিক TLS পোর্ট নম্বর ব্যবহার করুন।
  2. ssocli-bundle.zip বান্ডেলটি আনজিপ করুন:
    > ssocli-bundle.zip আনজিপ করুন
  3. /usr/local/binget_token ইনস্টল করুন:
    > ./install একটি ভিন্ন অবস্থান নির্দিষ্ট করতে -b বিকল্পটি ব্যবহার করুন: > ./install -b পাথ
  4. আপনার লগইন URL-এ SSO_LOGIN_URL এনভায়রনমেন্ট ভেরিয়েবল সেট করুন, ফর্মে:
    রপ্তানি করুন SSO_LOGIN_URL="http:// edge_sso_IP_DNS :9099"

    যেখানে edge_sso_IP_DNS হল এজ SSO মডিউল হোস্ট করা মেশিনের DNS নামের IP ঠিকানা। আপনি যদি এজ এসএসও-তে TLS কনফিগার করেন, তাহলে https এবং সঠিক TLS পোর্ট নম্বর ব্যবহার করুন।
  5. একটি ব্রাউজারে, একটি এককালীন পাসকোড পেতে নিম্নলিখিত URL এ যান:
    http:// edge_sso_IP_DNS :9099/পাসকোড

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

    দ্রষ্টব্য : আপনি যদি বর্তমানে আপনার পরিচয় প্রদানকারীর দ্বারা লগ ইন না করে থাকেন তবে আপনাকে লগ ইন করতে বলা হবে৷

    এই URLটি একটি এককালীন পাসকোড ফেরত দেয় যা বৈধ থাকে যতক্ষণ না আপনি একটি নতুন পাসকোড পেতে সেই URLটি রিফ্রেশ করেন, অথবা আপনি একটি অ্যাক্সেস টোকেন তৈরি করতে get_token- এর সাথে পাসকোড ব্যবহার করেন৷
  6. OAuth2 অ্যাক্সেস টোকেন পেতে get_token আহ্বান করুন:
    > get_token -u ইমেইল ঠিকানা

    যেখানে emailAddress হল একটি Edge ব্যবহারকারীর ইমেল ঠিকানা। আপনি ধাপ 3 এ প্রাপ্ত ওয়ান-টাইম পাসকোডটি প্রবেশ করতে অনুরোধ করা হচ্ছে:
    ওয়ান টাইম কোড ( https://edge_sso_IP.com/passcode এ একটি পান)
    SAML সক্রিয় থাকলে পাসকোড লিখুন বা ENTER টিপুন:


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

    আপনি ফর্মে একটি get_token কমান্ড ব্যবহার করে কমান্ড লাইনে পাসকোড লিখতে পারেন:
    > get_token -u emailAddress -p পাসকোড
  7. বিয়ারার হেডার হিসাবে একটি এজ ম্যানেজমেন্ট এপিআই কলে অ্যাক্সেস টোকেনটি পাস করুন:
    > curl -H "অনুমোদন: বহনকারী অ্যাক্সেস_টোকেন " https:// ms_IP :8080/v1/organizations/ orgName

    আপনি প্রথমবার একটি নতুন অ্যাক্সেস টোকেন পাওয়ার পরে, আপনি অ্যাক্সেস টোকেনটি পেতে পারেন এবং এটিকে একটি একক কমান্ডে একটি API কলে পাস করতে পারেন, যেমনটি নীচে দেখানো হয়েছে:
    > header=`get_token` && curl -H "অনুমোদন: Bearer $header" https:// ms_IP :8080/v1/o/ orgName

    কমান্ডের এই ফর্মের সাথে, অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, রিফ্রেশ টোকেনের মেয়াদ শেষ না হওয়া পর্যন্ত এটি স্বয়ংক্রিয়ভাবে রিফ্রেশ হয়।

রিফ্রেশ টোকেনের মেয়াদ শেষ হওয়ার পরে, get_token আপনাকে একটি নতুন পাসকোডের জন্য অনুরোধ করে। একটি নতুন OAuth অ্যাক্সেস টোকেন তৈরি করার আগে আপনাকে অবশ্যই ধাপ 3-এ উপরে দেখানো URL-এ যেতে হবে এবং একটি নতুন পাসকোড তৈরি করতে হবে

টোকেন পেতে এবং রিফ্রেশ করতে ব্যবস্থাপনা API ব্যবহার করে

Apigee এজ ম্যানেজমেন্ট এপিআই-এর সাথে OAuth2 সিকিউরিটি ব্যবহার করার জন্য নির্দেশাবলী রয়েছে যা দেখায় কিভাবে এজ ম্যানেজমেন্ট এপিআই ব্যবহার করতে হয় এবং টোকেন রিফ্রেশ করতে হয়। আপনি SAML দাবী থেকে তৈরি টোকেনগুলির জন্য এজ এপিআই কলগুলিও ব্যবহার করতে পারেন৷

Apigee এজ ম্যানেজমেন্ট API এর সাথে OAuth2 সিকিউরিটি ব্যবহার করার ক্ষেত্রে নথিভুক্ত API কলগুলির মধ্যে একমাত্র পার্থক্য হল যে কলের URL আপনার জোনের নাম উল্লেখ করতে হবে। উপরন্তু, প্রাথমিক অ্যাক্সেস টোকেন তৈরি করার জন্য, আপনাকে অবশ্যই পাসকোড অন্তর্ভুক্ত করতে হবে, যেমনটি উপরের পদ্ধতির ধাপ 3 এ দেখানো হয়েছে।

উদাহরণস্বরূপ, প্রাথমিক অ্যাক্সেস এবং রিফ্রেশ টোকেন তৈরি করতে নিম্নলিখিত 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'