Edge मैनेजमेंट एपीआई के साथ एसएएमएल का इस्तेमाल करना

Edge for Private Cloud v. 4.17.09

'बुनियादी पुष्टि' सुविधा, Edge Management API पर कॉल करते समय पुष्टि करने का एक तरीका है. उदाहरण के लिए, अपने संगठन की जानकारी को ऐक्सेस करने के लिए, Edge management API को नीचे दिए गए cURL के लिए अनुरोध किया जा सकता है:

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

इस उदाहरण में, आप बेसिक पुष्टि क्रेडेंशियल पास करने के लिए cURL -u विकल्प का इस्तेमाल करते हैं. इसके अलावा, Edge मैनेजमेंट एपीआई कॉल करने के लिए, Bearer हेडर में OAuth2 टोकन पास किया जा सकता है. उदाहरण के लिए:

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

एसएएमएल चालू करने के बाद, 'बुनियादी पुष्टि' को बंद किया जा सकता है. अगर आपने 'बुनियादी पुष्टि' को बंद किया है, तो ऐसी सभी स्क्रिप्ट (Maven स्क्रिप्ट, शेल स्क्रिप्ट, apigeetool वगैरह) अब काम नहीं करेंगी जो Edge मैनेजमेंट एपीआई कॉल पर निर्भर हैं. आपको ऐसे सभी एपीआई कॉल और स्क्रिप्ट को अपडेट करना होगा जो बेयरर हेडर में, OAuth2 ऐक्सेस टोकन पास करने के लिए बेसिक पुष्टि का इस्तेमाल करती हैं.

टोकन पाने और रीफ़्रेश करने के लिए get_token का इस्तेमाल करना

get_token यूटिलिटी, आपके बेसिक पुष्टि करने के क्रेडेंशियल और OAuth2 ऐक्सेस और रीफ़्रेश टोकन के लिए पासवर्ड बदल देती है. get_token उपयोगिता आपके क्रेडेंशियल स्वीकार करती है और मान्य ऐक्सेस टोकन प्रिंट करती है. अगर किसी टोकन को रीफ़्रेश किया जा सकता है, तो वह उसे रीफ़्रेश कर देगा और प्रिंट कर देगा. रीफ़्रेश टोकन की समयसीमा खत्म होने पर, इससे उपयोगकर्ता के क्रेडेंशियल डालने का अनुरोध दिखेगा.

get_token यूटिलिटी, डिस्क पर टोकन सेव करती है और ज़रूरत पड़ने पर इनका इस्तेमाल कर सकती है. यह stdout के लिए एक मान्य ऐक्सेस टोकन भी प्रिंट करता है. वहां से, पोस्टमैन का इस्तेमाल किया जा सकता है या कर्ल में इस्तेमाल करने के लिए इसे एनवायरमेंट वैरिएबल में एम्बेड किया जा सकता है.

इस प्रोसेस में बताया गया है कि Edge मैनेजमेंट एपीआई कॉल करने के लिए, get_token का इस्तेमाल करके OAuth2 ऐक्सेस टोकन कैसे हासिल किया जा सकता है:

  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 एसएसओ मॉड्यूल को होस्ट करने वाली मशीन के डीएनएस नाम का आईपी पता है. अगर आपने 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. SSO_LOGIN_URL एनवायरमेंट वैरिएबल को अपने लॉगिन यूआरएल में इस फ़ॉर्म में सेट करें:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    जहां edge_sso_IP_DNS, Edge एसएसओ मॉड्यूल को होस्ट करने वाली मशीन के डीएनएस नाम का आईपी पता है. अगर आपने Edge एसएसओ (SSO) पर TLS को कॉन्फ़िगर किया है, तो https और सही TLS पोर्ट नंबर का इस्तेमाल करें.

  5. एक बार इस्तेमाल होने वाला पासवर्ड पाने के लिए, ब्राउज़र में इस यूआरएल पर जाएं:
    http://edge_sso_IP_DNS:9099/passcode

    अगर आपने Edge एसएसओ (SSO) पर TLS को कॉन्फ़िगर किया है, तो https और सही TLS पोर्ट नंबर का इस्तेमाल करें.

    यह यूआरएल एक बार इस्तेमाल होने वाला पासवर्ड देता है. यह तब तक मान्य रहता है, जब तक नया पासवर्ड पाने के लिए उस यूआरएल को रीफ़्रेश नहीं किया जाता. इसके अलावा, ऐक्सेस टोकन जनरेट करने के लिए, 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. बेयरर हेडर के तौर पर, ऐक्सेस टोकन को Edge मैनेजमेंट एपीआई कॉल में पास करें:
    curl -H "Authorization: Bearer access_token"
    https://ms_IP:8080/v1/organizations/orgName

    पहली बार नया ऐक्सेस टोकन पाने के बाद, आपके पास ऐक्सेस टोकन पाने और उसे एक निर्देश में एपीआई कॉल में भेजने का विकल्प होता है, जैसा कि यहां दिखाया गया है:

    header=`get_token` &&
    curl -H "Authorization: Bearer $header"
    https://ms_IP:8080/v1/o/orgName

    इस तरह के निर्देश के साथ, अगर ऐक्सेस टोकन की समयसीमा खत्म हो जाती है, तो रीफ़्रेश टोकन की समयसीमा खत्म होने तक उसे अपने-आप रीफ़्रेश कर दिया जाता है.

रीफ़्रेश टोकन के इस्तेमाल की समयसीमा खत्म होने के बाद, get_token आपको नया पासवर्ड डालने का अनुरोध करता है. नया OAuth ऐक्सेस टोकन जनरेट करने से पहले, आपको तीसरे चरण में ऊपर दिखाए गए यूआरएल पर जाकर एक नया पासवर्ड जनरेट करना होगा

टोकन पाने और उन्हें रीफ़्रेश करने के लिए, management API का इस्तेमाल करना

Apigee Edge management API की मदद से, OAuth2 सुरक्षा का इस्तेमाल करने में निर्देश दिए गए हैं. इनमें बताया गया है कि टोकन पाने और उन्हें रीफ़्रेश करने के लिए, Edge मैनेजमेंट एपीआई का इस्तेमाल कैसे करें. एसएएमएल दावों से जनरेट हुए टोकन के लिए भी, EDGE API कॉल का इस्तेमाल किया जा सकता है.

Apigee Edge मैनेजमेंट एपीआई के साथ 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 -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'