Edge API को ऐक्सेस करने के लिए OAuth2 का इस्तेमाल करना

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

Apigee Edge की मदद से, Edge एपीआई कॉल किए जा सकते हैं. साथ ही, OAuth2 टोकन की मदद से पुष्टि की जा सकती है. Cloud खातों के लिए Edge पर OAuth2 डिफ़ॉल्ट रूप से काम करता है. अगर Edge का इस्तेमाल किया जा रहा है के बिना OAuth2 का इस्तेमाल नहीं किया जा सकता. पहले SAML या LDAP सेट अप करें.

OAuth2 के काम करने का तरीका (Apigee Edge एपीआई के साथ)

Apigee Edge एपीआई को कॉल करने के लिए, पहचान की पुष्टि करना ज़रूरी होता है, ताकि हम पुष्टि कर सकें कि तुम कह रहे हो कि आप हैं. आपको प्रमाणित करने के लिए, हमें आपके अनुरोध के साथ एक OAuth2 ऐक्सेस टोकन भेजना होगा एपीआई को ऐक्सेस करने के लिए.

उदाहरण के लिए, अगर आपको Edge पर मौजूद किसी संगठन के बारे में जानकारी चाहिए, तो इस तरह का यूआरएल:

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

हालांकि, अपनी पहचान के बारे में हमें बताए बिना, सिर्फ़ यह अनुरोध नहीं भेजा जा सकता. अगर ऐसा नहीं है, तो कोई भी आपके संगठन की जानकारी देख सकती है.

ऐसे मामलों में OAuth2 की ज़रूरत होती है: आपकी पहचान की पुष्टि करने के लिए, आपको हमें ऐक्सेस टोकन भेजना होगा भी शामिल हैं. ऐक्सेस टोकन हमें आपकी पहचान बताता है, ताकि हम यह पक्का कर सकें कि संगठन की जानकारी देखें.

अच्छी बात यह है कि Edge OAuth2 सेवा को अपने क्रेडेंशियल भेजकर भी टोकन हासिल किया जा सकता है. कॉन्टेंट बनाने सेवा, ऐक्सेस और रीफ़्रेश टोकन के साथ जवाब देती है.

OAuth2 फ़्लो: शुरुआती अनुरोध

Edge API को पहली बार ऐक्सेस करने पर, नीचे दी गई इमेज में OAuth2 फ़्लो दिखाया गया है समय:

OAuth फ़्लो: पहला अनुरोध
पहली इमेज: OAuth फ़्लो: पहला अनुरोध

जैसा कि पहली इमेज में दिखाया गया है, Edge API से पहली बार अनुरोध करने पर:

  1. आपने ऐक्सेस टोकन का अनुरोध किया हो. ऐसा करने के लिए Edge API, acurl या get_token. जैसे:
    get_token
    Enter username:
    ahamilton@apigee.com
    Enter the password for user 'ahamilton@apigee.com'
    [hidden input]
    Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:
    123456
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  2. Edge OAuth2 सेवा, ऐक्सेस टोकन के साथ जवाब देती है और उसे stdout पर प्रिंट करती है; उदाहरण के लिए:
    Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz
    AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm
    NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI
    GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic
    ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0
    RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG
    420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M
    2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw

    acurl और get_token सुविधाएं, अपने-आप ऐक्सेस सेव करती हैं और ~/.sso-cli के लिए रीफ़्रेश टोकन (रीफ़्रेश टोकन इनके लिए नहीं लिखा गया है stdout.) टोकन पाने के लिए Edge OAuth2 सेवा का इस्तेमाल करने पर, आपको उन्हें का इस्तेमाल कैसे करता है.

  3. ऐक्सेस टोकन के साथ Edge API को अनुरोध भेजा जाता है. acurl अटैच किया गया उसे अपने-आप ट्रांसफ़र कर दिया जाएगा; उदाहरण के लिए:
    acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

    अगर किसी दूसरे एचटीटीपी क्लाइंट का इस्तेमाल किया जा रहा है, तो ऐक्सेस टोकन जोड़ना न भूलें. उदाहरण के लिए:

    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"
  4. Edge API आपके अनुरोध पर काम करता है और आम तौर पर, डेटा के साथ रिस्पॉन्स दिखाता है.

OAuth2 फ़्लो: बाद के अनुरोध

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

OAuth फ़्लो: बाद के अनुरोध
दूसरी इमेज: OAuth फ़्लो: बाद के अनुरोध

जैसा कि दूसरी इमेज में दिखाया गया है, जब आपके पास पहले से ही ऐक्सेस टोकन होता है:

  1. ऐक्सेस टोकन के साथ Edge API को अनुरोध भेजा जाता है. acurl अटैच किया गया अपने-आप अपडेट हो जाएगा. अन्य टूल का इस्तेमाल करने पर, आपको मैन्युअल तरीके से टोकन जोड़ना होगा.
  2. Edge API आपके अनुरोध पर काम करता है और आम तौर पर, डेटा के साथ रिस्पॉन्स दिखाता है.

OAuth2 फ़्लो: आपके ऐक्सेस टोकन की समयसीमा खत्म होने पर

जब ऐक्सेस टोकन की समयसीमा 12 घंटे के बाद खत्म हो जाती है, तो नया टोकन पाने के लिए रीफ़्रेश टोकन का इस्तेमाल करें ऐक्सेस टोकन:

OAuth फ़्लो: ऐक्सेस टोकन को रीफ़्रेश किया जा रहा है
तीसरी इमेज: OAuth फ़्लो: ऐक्सेस टोकन को रीफ़्रेश करना

जैसा कि तीसरी इमेज में दिखाया गया है, जब आपके ऐक्सेस टोकन की समयसीमा खत्म हो गई है:

  1. आपने Edge API को अनुरोध भेजा है, लेकिन आपके ऐक्सेस टोकन की समयसीमा खत्म हो गई है.
  2. Edge API आपके अनुरोध को 'बिना अनुमति के' के तौर पर अस्वीकार कर देता है.
  3. Edge OAuth2 सेवा पर रीफ़्रेश टोकन भेजा जाता है. अगर आप acurl का इस्तेमाल कर रहे हैं, तो यह हो गया है आपके लिए अपने-आप.
  4. Edge OAuth2 सेवा नए ऐक्सेस टोकन के साथ जवाब देती है.
  5. आपने नए ऐक्सेस टोकन के साथ Edge API को अनुरोध भेजा है.
  6. Edge API आपके अनुरोध पर काम करता है और आम तौर पर, डेटा के साथ रिस्पॉन्स दिखाता है.

टोकन पाएं

Edge API पर भेजा जा सकने वाला ऐक्सेस टोकन पाने के लिए, इन तरीकों का इस्तेमाल करें curl जैसी उपयोगिता के अलावा, Apigee सुविधाएं:

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

ये सुविधाएं, आपके Apigee खाते के क्रेडेंशियल (ईमेल पता और पासवर्ड) का इस्तेमाल करें:

  • ऐक्सेस टोकन की समयसीमा 12 घंटे में खत्म हो जाती है.
  • रीफ़्रेश टोकन की समयसीमा 30 दिन में खत्म हो जाती है.

इस वजह से, acurl या get_token के साथ एपीआई कॉल करने के बाद, टोकन पेयर का इस्तेमाल 30 दिनों तक किया जा सकता है. समयसीमा खत्म होने के बाद, आपको इसे फिर से डालना होगा क्रेडेंशियल और नए टोकन पाएं.

OAuth2 के साथ Edge API ऐक्सेस करें

Edge API को ऐक्सेस करने के लिए, आपको एपीआई एंडपॉइंट को अनुरोध भेजना होगा और ऐक्सेस टोकन शामिल करना होगा. यह काम किसी भी एचटीटीपी क्लाइंट के साथ किया जा सकता है. इसमें कमांड-लाइन यूटिलिटी, जैसे कि curl, ब्राउज़र पर आधारित यूज़र इंटरफ़ेस (यूआई) जैसे कि Postman या acurl जैसी Apigee यूटिलिटी.

acurl और curl की मदद से Edge API को ऐक्सेस करने के बारे में यहां बताया गया है सेक्शन.

acurl का इस्तेमाल करें

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

बाद के अनुरोधों पर acurl, ~/.sso-cli में सेव किए गए टोकन का इस्तेमाल करता है, इसलिए इसके लिए, आपको टोकन की समयसीमा खत्म होने तक अपने क्रेडेंशियल दोबारा शामिल करने की ज़रूरत नहीं है.

यहां दिए गए उदाहरण में, शुरुआती acurl अनुरोध को दिखाया गया है. इसमें "अहमिल्टन-एवल" संगठन:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -u ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'
[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:
1a2b3c
{
  "createdAt" : 1491854501264,
  "createdBy" : "noreply_iops@apigee.com",
  "displayName" : "ahamilton",
  "environments" : [ "prod", "test" ],
  "lastModifiedAt" : 1491854501264,
  "lastModifiedBy" : "noreply_iops@apigee.com",
  "name" : "ahamilton",
  "properties" : {
    "property" : [ {
      "name" : "features.isSmbOrganization",
      "value" : "false"
    }, {
      "name" : "features.isCpsEnabled",
      "value" : "true"
    } ]
  },
  "type" : "trial"
}

acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies

[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]

संगठन के बारे में जानकारी पाने के अलावा, इस उदाहरण में दूसरा अनुरोध भी दिखाया गया है जिसे "helloworld" के तहत नीतियों की एक सूची मिलती है एपीआई प्रॉक्सी. दूसरा अनुरोध, "o" को छोटा करना "संगठनों" के लिए डालें.

ध्यान दें कि acurl दूसरे अनुरोध पर ऐक्सेस टोकन को अपने-आप पास कर देता है. आपने लोगों तक पहुंचाया मुफ़्त में acurl को OAuth2 टोकन सेव करने के बाद, अपने उपयोगकर्ता क्रेडेंशियल भेजने की ज़रूरत नहीं है. यह बाद के कॉल के लिए, ~/.sso-cli से टोकन लेता है.

ज़्यादा जानकारी के लिए, Edge API को ऐक्सेस करने के लिए acurl का इस्तेमाल करना लेख पढ़ें.

कर्ल का इस्तेमाल करें

Edge API को ऐक्सेस करने के लिए, curl का इस्तेमाल किया जा सकता है. ऐसा करने के लिए, आपको पहले टोकन ऐक्सेस और रीफ़्रेश करने की सुविधा मिलती है. आप get_token जैसी यूटिलिटी कंपनी या Edge OAuth2 सेवा..

अपना ऐक्सेस टोकन सेव करने के बाद, आप उसे Edge API को किए गए आपके कॉल का Authorization हेडर, जैसा कि नीचे दिया गया है दिखाता है:

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

ऐक्सेस टोकन, जारी किए जाने के 12 घंटे बाद तक मान्य होता है. ऐक्सेस टोकन की समयसीमा खत्म होने के बाद, रीफ़्रेश टोकन को जारी करने के लिए 30 दिनों तक इस्तेमाल किया जा सकता है क्रेडेंशियल के बिना कोई दूसरा ऐक्सेस टोकन. Apigee का सुझाव है कि रेफ़रल टोकन की समयसीमा खत्म होने के बाद ही नए ऐक्सेस टोकन का अनुरोध करें, क्रेडेंशियल डालकर और हर एपीआई कॉल के साथ नया अनुरोध करें.

टोकन खत्म होने की तारीख

ऐक्सेस टोकन की समयसीमा खत्म होने के बाद, नया ऐक्सेस टोकन पाने के लिए रीफ़्रेश टोकन का इस्तेमाल करें आपको अपने क्रेडेंशियल फिर से सबमिट करने होंगे.

ऐक्सेस टोकन को रीफ़्रेश करने का तरीका, इस्तेमाल किए जा रहे टूल पर निर्भर करता है:

  • acurl: किसी कार्रवाई की ज़रूरत नहीं है. acurl, ऐक्सेस टोकन को अपने-आप रीफ़्रेश करता है जब कोई ऐसा अनुरोध भेजा जाता है जिसमें कोई पुराना कोड शामिल होता है.
  • get_token: ऐक्सेस टोकन को रीफ़्रेश करने के लिए, get_token पर कॉल करें.
  • Edge OAuth2 सेवा: एक अनुरोध भेजें, जिसमें ये चीज़ें शामिल हों:
    • टोकन रीफ़्रेश करें
    • grant_type फ़ॉर्म पैरामीटर "refresh_token" पर सेट किया गया

मशीन उपयोगकर्ताओं के लिए OAuth2

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

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

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

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

दोनों उदाहरणों में, -m की वैल्यू को खाली स्ट्रिंग पर सेट करने से, मशीन का इस्तेमाल करने वाले लोग ऐसा नहीं कर पाएंगे को MFA कोड के लिए संकेत दिए जाने से रोका जा सकता है.