एसएएमएल के साथ Edge एपीआई ऐक्सेस करें

Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं Apigee X दस्तावेज़.
info

एसएएमएल, सिंगल साइन-ऑन (एसएसओ) एनवायरमेंट के साथ काम करता है. Edge के साथ एसएएमएल का इस्तेमाल करके, Edge यूज़र इंटरफ़ेस (यूआई) और एपीआई के लिए एसएसओ की सुविधा दी जा सकती है. इसके अलावा, एसएएमएल की सुविधा देने वाली अन्य सेवाओं के लिए भी एसएसओ की सुविधा दी जा सकती है .

ज़रूरी शर्तें: Edge API को ऐक्सेस करने के लिए, आपको कम से कम एक संगठन के लिए एसएएमएल की सुविधा चालू करनी होगी.

एसएएमएल और OAuth2 के बीच अंतर

एसएएमएल सेट अप करने के बाद, इसका इस्तेमाल करना Edge API को ऐक्सेस करने के लिए OAuth2 का इस्तेमाल करने जैसा ही होता है. Edge API को कॉल करते समय, अपने अनुरोध में OAuth2 ऐक्सेस टोकन शामिल करें

Edge API को ऐक्सेस करते समय, एसएएमएल और OAuth2 के बीच मुख्य अंतर यह है कि टोकन कैसे पाए जाते हैं. एसएएमएल के साथ, टोकन पेयर पाने के लिए, आपको यह जानकारी शामिल करनी होगी:

  1. ज़ोन: पब्लिक क्लाउड के उपयोगकर्ताओं को टोकन पाने के लिए, अपने ज़ोन के नाम का रेफ़रंस देना होगा.
  2. पासकोड: ऐक्सेस/रीफ़्रेश टोकन पेयर का अनुरोध करते समय, एक बार इस्तेमाल होने वाला पासकोड शामिल करें.

एसएएमएल, Edge OAuth2 सेवा पर मौजूद एक ही एंडपॉइंट का इस्तेमाल करता है. हालांकि, इसमें ज़ोन का सही नाम शामिल किया जाता है.

एसएएमएल के साथ ऐक्सेस टोकन पाने के लिए, इस सेक्शन में बताए गए इनमें से किसी एक तरीके का इस्तेमाल किया जा सकता है:

इसके अलावा, मशीन उपयोगकर्ताओं के लिए टोकन जनरेट करने की प्रोसेस को ऑटोमेट किया जा सकता है. इसके बारे में, टोकन जनरेट करने की प्रोसेस को ऑटोमेट करना लेख में बताया गया है.

get_token की मदद से ऐक्सेस टोकन पाना

एसएएमएल के साथ इस्तेमाल किए जाने वाले OAuth2 ऐक्सेस और रीफ़्रेश टोकन के लिए, अपने क्रेडेंशियल को एक्सचेंज करने के लिए, get_token यूटिलिटी का इस्तेमाल किया जा सकता है.

get_token की मदद से ऐक्सेस टोकन पाने के लिए:

  1. SSO_LOGIN_URL एनवायरमेंट वैरिएबल को अपने लॉगिन यूआरएल पर सेट करें. लॉगिन यूआरएल का फ़ॉर्मैट यह होता है:
    https://zoneName.login.apigee.com

    उदाहरण के लिए, "acme" नाम के ज़ोन के लिए, SSO_LOGIN_URL को "https://acme.login.apigee.com" पर सेट करें. जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. OAuth2 ऐक्सेस टोकन पाने के लिए, get_token को कॉल करें:
    get_token -u me@example.com

    एक बार इस्तेमाल होने वाला पासकोड पाने के लिए, आपको दिखाए गए यूआरएल पर जाने के लिए कहा जाएगा:

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    अगर आपने हाल ही में अपने आइडेंटिटी प्रोवाइडर के ज़रिए साइन इन नहीं किया है, तो आपसे साइन इन करने के लिए कहा जाएगा.

    इस यूआरएल से एक बार इस्तेमाल होने वाला पासकोड मिलता है. यह पासकोड तब तक मान्य रहता है, जब तक नया पासकोड पाने के लिए उस यूआरएल को रीफ़्रेश नहीं किया जाता या जब तक get_token के साथ पासकोड का इस्तेमाल करके ऐक्सेस टोकन जनरेट नहीं किया जाता. उदाहरण के लिए:

  3. पासकोड डालें. get_token यूटिलिटी, OAuth2 टोकन हासिल करती है. साथ ही, stdout पर ऐक्सेस टोकन प्रिंट करती है. इसके अलावा, ~/.sso-cli में ऐक्सेस और रीफ़्रेश टोकन लिखती है.

  4. Edge API को कॉल करें और Authorization: Bearer हेडर में ऐक्सेस टोकन पास करें. जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    stdout से ऐक्सेस टोकन की वैल्यू कॉपी की जा सकती है.

    इस उदाहरण में, दिए गए संगठन के बारे में जानकारी मिलती है. मैनेजमेंट एपीआई एंडपॉइंट की पूरी सूची देखने के लिए, Apigee Edge API का रेफ़रंस देखें.

ऐक्सेस टोकन की समयसीमा खत्म होने पर, नया ऐक्सेस टोकन पाने के लिए, get_token को फिर से कॉल किया जा सकता है. उदाहरण के लिए:

get_token -u me@example.com

रीफ़्रेश टोकन की समयसीमा खत्म होने तक, आपसे नया पासकोड नहीं मांगा जाएगा.

रीफ़्रेश टोकन की समयसीमा खत्म होने पर, get_token आपसे नया पासकोड मांगेगा. नया OAuth2 ऐक्सेस टोकन जनरेट करने से पहले, आपको नया पासकोड जनरेट करना होगा.

Edge OAuth2 सेवा की मदद से ऐक्सेस टोकन पाना

एसएएमएल के साथ इस्तेमाल किए जाने वाले ऐक्सेस टोकन पाने के लिए, Edge OAuth2 सेवा का इस्तेमाल किया जा सकता है. Edge API से अपनी पुष्टि करने के लिए, ऐक्सेस/रीफ़्रेश टोकन पेयर पाने के शुरुआती अनुरोध में पासकोड का इस्तेमाल करें. इसके बाद, नया टोकन पेयर पाने के लिए फिर से पासकोड का इस्तेमाल करें.

Edge API की मदद से टोकन पेयर पाने के लिए:

  1. एक बार इस्तेमाल होने वाला पासकोड पाने के लिए, किसी ब्राउज़र में यह यूआरएल खोलें:
    https://zoneName.login.apigee.com/passcode

    उदाहरण के लिए, "acme" नाम के ज़ोन के लिए, यह यूआरएल खोलें:

    https://acme.login.apigee.com/passcode

    अगर आपने हाल ही में अपने आइडेंटिटी प्रोवाइडर के ज़रिए साइन इन नहीं किया है, तो आपसे साइन इन करने के लिए कहा जाएगा.

    इस यूआरएल से एक बार इस्तेमाल होने वाला पासकोड मिलता है. यह पासकोड, टोकन पाने के लिए आपके क्रेडेंशियल के तौर पर काम करता है. यह पासकोड तब तक मान्य रहता है, जब तक नया पासकोड पाने के लिए यूआरएल को रीफ़्रेश नहीं किया जाता. इसके अलावा, get_token के साथ पासकोड का इस्तेमाल करके ऐक्सेस टोकन जनरेट किया जा सकता है. उदाहरण के लिए:

  2. Edge API को कोई अनुरोध भेजें. जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    passcode, अनुमति के लिए आपके क्रेडेंशियल के तौर पर काम करता है.

    कहां:

    • Authorization हेडर "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" है. इस वैल्यू का ही इस्तेमाल करें.
    • अनुरोध का टाइप POST है.
    • अनुरोध के मुख्य हिस्से में यह जानकारी शामिल होती है:
      • grant_type "password" है.
      • response_type "token" है.
      • passcode passcode में वह पासकोड शामिल करें जो पिछले चरण में मिला था.

    कॉल करने पर, स्क्रीन पर ऐक्सेस और रीफ़्रेश टोकन दिखते हैं.

अपने ऐक्सेस टोकन को रीफ़्रेश करने के लिए:

https://zoneName.login.apigee.com/oauth/token को कोई अनुरोध सबमिट करें. जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

कहां:

  • अनुरोध के मुख्य हिस्से में यह जानकारी शामिल होती है:
    • grant_type "refresh_token" है.
    • refresh_token में रीफ़्रेश टोकन की वैल्यू शामिल करें.
  • Authorization हेडर "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" है. इस वैल्यू का ही इस्तेमाल करें.
  • अनुरोध का टाइप POST है.

एसएएमएल की मदद से Edge API को ऐक्सेस करना

Edge API को ऐक्सेस करने के लिए, curl या Apigee की यूटिलिटी acurl जैसे टूल का इस्तेमाल किया जा सकता है.

curl की मदद से, Edge API को कॉल करें और Authorization: Bearer हेडर में ऐक्सेस टोकन पास करें. जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

acurl के साथ, आपको Authorization हेडर तय करने की ज़रूरत नहीं होती. उदाहरण के लिए:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

इन उदाहरणों में, Edge API के उस एंडपॉइंट को कॉल किया गया है जिससे दिए गए संगठन के बारे में जानकारी मिलती है. Edge API के एंडपॉइंट की पूरी सूची देखने के लिए, Apigee Edge API का रेफ़रंस देखें.

एपीआई को कॉल करने के अन्य तरीकों के बारे में जानने के लिए, Edge API को OAuth2 की मदद से ऐक्सेस करना लेख पढ़ें. इसमें यह भी बताया गया है कि टोकन को रीफ़्रेश कैसे किया जाता है .

एसएएमएल ज़ोन में मशीन उपयोगकर्ता

एसएएमएल ज़ोन में मशीन उपयोगकर्ताओं के लिए, Edge API को ऑटोमेटेड तरीके से ऐक्सेस करने के लिए, acurl और get_token यूटिलिटी का इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरण में, get_token का इस्तेमाल करके ऐक्सेस टोकन का अनुरोध करने और फिर curl कॉल में टोकन की वैल्यू जोड़ने का तरीका बताया गया है:

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

ऊपर दिए गए उदाहरण में, -m की वैल्यू को खाली स्ट्रिंग पर सेट करने से, मशीन उपयोगकर्ता को एमएफ़ए कोड के लिए प्रॉम्प्ट नहीं किया जाएगा. --force-basic-auth फ़्लैग का इस्तेमाल करने से, एसएएमएल ज़ोन वाले अनुरोधों से ट्रिगर होने वाले पासकोड के लिए स्टैंडर्ड प्रॉम्प्ट ओवरराइड हो जाएगा.

इसके अलावा, acurl यूटिलिटी का इस्तेमाल करके, टोकन के अनुरोध और curl कॉल को एक साथ किया जा सकता है. उदाहरण के लिए:

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'