OAuth का इस्तेमाल करके एपीआई को सुरक्षित बनाएं

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

आपको क्या सीखने को मिलेगा

  • एपीआई प्रॉक्सी का सैंपल डाउनलोड और डिप्लॉय करें.
  • OAuth से सुरक्षित की गई एपीआई प्रॉक्सी बनाएं.
  • कोई प्रॉडक्ट, डेवलपर, और ऐप्लिकेशन बनाएं.
  • OAuth ऐक्सेस टोकन के लिए क्रेडेंशियल बदलें.
  • ऐक्सेस टोकन की मदद से, किसी एपीआई को कॉल करें.

इस ट्यूटोरियल में, OAuth 2.0 की मदद से किसी एपीआई को सुरक्षित करने का तरीका बताया गया है.

OAuth, अनुमति देने वाला एक प्रोटोकॉल है. इसकी मदद से ऐप्लिकेशन, उपयोगकर्ताओं की ओर से जानकारी ऐक्सेस कर सकते हैं. इसके लिए, उपयोगकर्ताओं को अपना उपयोगकर्ता नाम और पासवर्ड बताने की ज़रूरत नहीं होती.

OAuth की मदद से, सुरक्षा क्रेडेंशियल (जैसे कि उपयोगकर्ता नाम/पासवर्ड या कुंजी/सीक्रेट) को ऐक्सेस टोकन के लिए एक्सचेंज किया जाता है. उदाहरण के लिए:

joe:joes_password (username:password) या
Nf2moHOASMJeUmXVdDhlMbPaXm2U7eMc:unUOXYpPe74ZfLEb (key:secret)

कुछ इस तरह का हो जाता है:

b0uiYwjRZLEo4lEu7ky2GGxHkanN

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

OAuth 2.0 स्पेसिफ़िकेशन में, ऐप्लिकेशन के लिए ऐक्सेस टोकन डिस्ट्रिब्यूट करने के अलग-अलग तरीके बताए गए हैं. इन्हें "अनुमति के टाइप" कहा जाता है. OAuth 2.0 के तहत तय किया गया सबसे बुनियादी ग्रांट टाइप, "क्लाइंट क्रेडेंशियल" कहलाता है. इस तरह के ग्रांट टाइप में, OAuth ऐक्सेस टोकन, क्लाइंट क्रेडेंशियल के बदले में जनरेट किए जाते हैं. ये क्रेडेंशियल, उपभोक्ता कुंजी/उपयोगकर्ता सीक्रेट के जोड़े होते हैं. जैसे, ऊपर दिए गए उदाहरण में बताया गया है.

Edge में क्लाइंट क्रेडेंशियल ग्रांट टाइप को, एपीआई प्रॉक्सी में नीतियों का इस्तेमाल करके लागू किया जाता है. OAuth के सामान्य फ़्लो में दो चरण होते हैं:

  • क्लाइंट क्रेडेंशियल से OAuth ऐक्सेस टोकन जनरेट करने के लिए, एपीआई प्रॉक्सी 1 को कॉल करें. एपीआई प्रॉक्सी पर OAuth v2.0 की नीति, इसे मैनेज करती है.
  • एपीआई कॉल में OAuth ऐक्सेस टोकन भेजने के लिए, एपीआई प्रॉक्सी 2 को कॉल करें. एपीआई प्रॉक्सी, OAuth v2.0 की नीति का इस्तेमाल करके ऐक्सेस टोकन की पुष्टि करती है.

आपको किन चीज़ों की ज़रूरत होगी

  • Apigee Edge खाता. अगर आपके पास अब तक ऐसा कोई खाता नहीं है, तो Apigee Edge खाता बनाने के निर्देशों का पालन करके साइन अप करें.
  • आपकी मशीन पर cURL इंस्टॉल होना चाहिए, ताकि कमांड लाइन से एपीआई कॉल किए जा सकें.

टोकन जनरेट करने वाले एपीआई प्रॉक्सी को डाउनलोड और डिप्लॉय करना

इस चरण में, आपको एक एपीआई प्रॉक्सी बनानी होगी. यह एपीआई कॉल में भेजी गई उपभोक्ता कुंजी और उपभोक्ता सीक्रेट से, OAuth ऐक्सेस टोकन जनरेट करती है. Apigee, एक सैंपल एपीआई प्रॉक्सी उपलब्ध कराता है. आपको प्रॉक्सी को अभी डाउनलोड और डिप्लॉय करना होगा. इसके बाद, ट्यूटोरियल में इसका इस्तेमाल किया जा सकेगा. (इस एपीआई प्रॉक्सी को खुद ही आसानी से बनाया जा सकता है. डाउनलोड और डिप्लॉय करने का यह चरण, आपकी सुविधा के लिए है. साथ ही, इससे आपको यह पता चलेगा कि पहले से बनाई गई प्रॉक्सी को शेयर करना कितना आसान है.)

  1. 'oauth' सैंपल एपीआई प्रॉक्सी की ZIP फ़ाइल को अपने फ़ाइल सिस्टम की किसी भी डायरेक्ट्री में डाउनलोड करें.
  2. https://apigee.com/edge पर जाएं और साइन इन करें.
  3. बाईं ओर मौजूद नेविगेशन बार में, डेवलप करें > एपीआई प्रॉक्सी चुनें.
  4. + प्रॉक्सी पर क्लिक करें.
    प्रॉक्सी बनाएं बटन
  5. प्रॉक्सी बनाएं विज़र्ड में, प्रॉक्सी बंडल अपलोड करें पर क्लिक करें.
  6. डाउनलोड की गई oauth.zip फ़ाइल चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  7. बनाएं पर क्लिक करें.
  8. बिल्ड पूरा होने के बाद, एपीआई प्रॉक्सी एडिटर में नई प्रॉक्सी देखने के लिए, प्रॉक्सी में बदलाव करें पर क्लिक करें.
  9. एपीआई प्रॉक्सी एडिटर के खास जानकारी वाले पेज पर, डिप्लॉयमेंट ड्रॉप-डाउन पर क्लिक करें. इसके बाद, test चुनें. यह आपके संगठन का टेस्ट एनवायरमेंट है.

    पुष्टि करने के लिए दिए गए प्रॉम्प्ट में, डिप्लॉय करें पर क्लिक करें.
    डिपार्टमेंट ड्रॉप-डाउन पर फिर से क्लिक करने पर, हरे रंग का आइकॉन दिखता है. इससे पता चलता है कि प्रॉक्सी को टेस्ट एनवायरमेंट में डिप्लॉय किया गया है.

बहुत खूब! आपने अपने Edge संगठन में, ऐक्सेस टोकन जनरेट करने वाली API प्रॉक्सी को डाउनलोड और डिप्लॉय कर लिया है.

OAuth फ़्लो और नीति देखना

आइए, एपीआई प्रॉक्सी के बारे में ज़्यादा जानें.

  1. एपीआई प्रॉक्सी एडिटर में, Develop टैब पर क्लिक करें. बाईं ओर मौजूद Navigator पैनल में, आपको दो नीतियां दिखेंगी. आपको Proxy Endpoints सेक्शन में दो POST फ़्लो भी दिखेंगे.
  2. Proxy Endpoints में जाकर, AccessTokenClientCredential पर क्लिक करें.

    एक्सएमएल कोड व्यू में, आपको Flow दिखेगा. इसे AccessTokenClientCredential कहा जाता है:

    <Flow name="AccessTokenClientCredential">
        <Description/>
        <Request>
            <Step>
                <Name>GenerateAccessTokenClient</Name>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/accesstoken") and (request.verb = "POST")</Condition>
    </Flow>

    फ़्लो, एपीआई प्रॉक्सी में प्रोसेसिंग का एक चरण होता है. इस मामले में, किसी शर्त के पूरा होने पर फ़्लो ट्रिगर होता है. इसे शर्त के हिसाब से ट्रिगर होने वाला फ़्लो कहा जाता है. <Condition> एलिमेंट में तय की गई शर्त के मुताबिक, अगर एपीआई प्रॉक्सी कॉल /accesstoken रिसॉर्स को किया जाता है और अनुरोध वर्ब POST है, तो GenerateAccessTokenClient नीति लागू करें. यह नीति, ऐक्सेस टोकन जनरेट करती है.

  3. अब उस नीति के बारे में जानते हैं जिसे कंडिशनल फ़्लो ट्रिगर करेगा. फ़्लो डायग्राम में, GenerateAccessTokenClient नीति के आइकॉन पर क्लिक करें.

    यहां दिया गया एक्सएमएल कॉन्फ़िगरेशन, कोड व्यू में लोड किया जाता है:

    <OAuthV2 name="GenerateAccessTokenClient">
        <!-- This policy generates an OAuth 2.0 access token using the client_credentials grant type -->
        <Operation>GenerateAccessToken</Operation>
        <!-- This is in millseconds, so expire in an hour -->
        <ExpiresIn>3600000</ExpiresIn>
        <SupportedGrantTypes>
            <!-- This part is very important: most real OAuth 2.0 apps will want to use other
             grant types. In this case it is important to NOT include the "client_credentials"
             type because it allows a client to get access to a token with no user authentication -->
            <GrantType>client_credentials</GrantType>
        </SupportedGrantTypes>
        <GrantType>request.queryparam.grant_type</GrantType>
        <GenerateResponse/>
    </OAuthV2>

    कॉन्फ़िगरेशन में यह जानकारी शामिल होती है:

    • <Operation>, पहले से तय की गई कई वैल्यू में से एक हो सकता है. यह तय करता है कि नीति क्या करेगी. इस मामले में, यह ऐक्सेस टोकन जनरेट करेगा.
    • टोकन, जनरेट होने के एक घंटे (3600000 मिलीसेकंड) बाद काम नहीं करेगा.
    • <SupportedGrantTypes> में, OAuth <GrantType> का इस्तेमाल किया जाना चाहिए. client_credentials (OAuth टोकन के लिए उपभोक्ता कुंजी और सीक्रेट को एक्सचेंज करना).
    • दूसरा <GrantType> एलिमेंट, नीति को यह बताता है कि OAuth 2.0 की खास बातों के मुताबिक, एपीआई कॉल में अनुमति के टाइप वाले पैरामीटर को कहां देखना है. (आपको यह जानकारी, बाद में एपीआई कॉल में दिखेगी). अनुमति के टाइप को एचटीटीपी हेडर (request.header.grant_type) या फ़ॉर्म पैरामीटर (request.formparam.grant_type) के तौर पर भी भेजा जा सकता है.

फ़िलहाल, आपको एपीआई प्रॉक्सी के साथ कुछ और करने की ज़रूरत नहीं है. बाद के चरणों में, OAuth ऐक्सेस टोकन जनरेट करने के लिए, इस एपीआई प्रॉक्सी का इस्तेमाल किया जाएगा. हालांकि, इससे पहले आपको कुछ और काम करने होंगे:

  • वह एपीआई प्रॉक्सी बनाएं जिसे आपको OAuth की मदद से सुरक्षित करना है.
  • कुछ और आर्टफ़ैक्ट बनाएं. इससे आपको उपभोक्ता कुंजी और उपभोक्ता सीक्रेट मिलेगा. आपको ऐक्सेस टोकन के लिए इनका इस्तेमाल करना होगा.

OAuth से सुरक्षित एपीआई प्रॉक्सी बनाना

'mocktarget' के बारे में जानकारी

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

http://mocktarget.apigee.net/ip

टारगेट से यह पता चलता है कि इस एपीआई प्रॉक्सी को कॉल करने पर आपको क्या दिखेगा.

http://mocktarget.apigee.net/help पर जाकर, mocktarget में उपलब्ध अन्य एपीआई संसाधन भी देखे जा सकते हैं.

अब आपको वह एपीआई प्रॉक्सी बनानी होगी जिसे सुरक्षित रखना है. यह ऐसा एपीआई कॉल है जो आपकी ज़रूरत के हिसाब से नतीजे दिखाता है. इस मामले में, एपीआई प्रॉक्सी आपके आईपी पते की जानकारी देने के लिए, Apigee की mocktarget सेवा को कॉल करेगी. हालांकि, आपको यह जानकारी सिर्फ़ तब दिखेगी, जब आपने एपीआई कॉल के साथ मान्य OAuth ऐक्सेस टोकन भेजा हो.

यहां बनाई गई एपीआई प्रॉक्सी में एक ऐसी नीति शामिल होगी जो अनुरोध में OAuth टोकन की जांच करती है.

  1. बाईं ओर मौजूद नेविगेशन बार में, डेवलप करें > एपीआई प्रॉक्सी चुनें.
  2. + प्रॉक्सी पर क्लिक करें.
    प्रॉक्सी बनाएं बटन
  3. प्रॉक्सी बनाएं विज़र्ड में, रिवर्स प्रॉक्सी (सबसे आम) चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  4. प्रॉक्सी को इस तरह कॉन्फ़िगर करें:
    इस फ़ील्ड में यह करें
    प्रॉक्सी का नाम helloworld_oauth2 डालें
    प्रोजेक्ट का बेस पाथ

    बदलकर इसे चुनें: /hellooauth2

    प्रोजेक्ट का बेस पाथ, एपीआई प्रॉक्सी से अनुरोध करने के लिए इस्तेमाल किए जाने वाले यूआरएल का हिस्सा होता है.

    मौजूदा एपीआई

    https://mocktarget.apigee.net/ip डालें

    इससे उस टारगेट यूआरएल के बारे में पता चलता है जिसे Apigee Edge, एपीआई प्रॉक्सी के लिए किए गए अनुरोध पर कॉल करता है.

    ब्यौरा hello world protected by OAuth डालें
  5. आगे बढ़ें पर क्लिक करें.
  6. सामान्य नीतियां पेज पर:
    इस फ़ील्ड में यह करें
    सुरक्षा: अनुमति OAuth 2.0 चुनें
  7. आगे बढ़ें पर क्लिक करें.
  8. वर्चुअल होस्ट पेज पर, आगे बढ़ें पर क्लिक करें.
  9. बनाएं पेज पर, पक्का करें कि टेस्ट एनवायरमेंट चुना गया हो. इसके बाद, बनाएं और डिप्लॉय करें पर क्लिक करें.
  10. खास जानकारी पेज पर, आपको यह सूचना दिखेगी कि आपकी नई एपीआई प्रॉक्सी बन गई है. साथ ही, यह भी दिखेगा कि एपीआई प्रॉक्सी को आपके टेस्ट एनवायरमेंट में डिप्लॉय कर दिया गया है.
  11. एपीआई प्रॉक्सी के लिए खास जानकारी पेज दिखाने के लिए, प्रॉक्सी में बदलाव करें पर क्लिक करें.
    ध्यान दें कि इस बार एपीआई प्रॉक्सी अपने-आप डिप्लॉय हो जाती है. डिप्लॉयमेंट ड्रॉप-डाउन पर क्लिक करें. इससे यह पक्का किया जा सकेगा कि "टेस्ट" एनवायरमेंट के बगल में हरे रंग का डिप्लॉयमेंट डॉट मौजूद है.

नीतियां देखना

आइए, देखते हैं कि आपने क्या बनाया है.

  1. एपीआई प्रॉक्सी एडिटर में, Develop टैब पर क्लिक करें. आपको दिखेगा कि एपीआई प्रॉक्सी के अनुरोध फ़्लो में दो नीतियां जोड़ी गई हैं:
    • OAuth v2.0 ऐक्सेस टोकन की पुष्टि करें – यह एपीआई कॉल की जांच करता है, ताकि यह पक्का किया जा सके कि मान्य OAuth टोकन मौजूद है.
    • Remove Header Authorization – यह AssignMessage नीति है. यह ऐक्सेस टोकन की जांच हो जाने के बाद उसे हटा देती है, ताकि उसे टारगेट सेवा को न भेजा जा सके. (अगर टारगेट सेवा को OAuth ऐक्सेस टोकन की ज़रूरत होती, तो इस नीति का इस्तेमाल नहीं किया जाता).
  2. फ़्लो व्यू में, Verify OAuth v2.0 Access Token आइकॉन पर क्लिक करें. इसके बाद, कोड पैन में इसके नीचे मौजूद एक्सएमएल देखें.

    <OAuthV2 async="false" continueOnError="false" enabled="true" name="verify-oauth-v2-access-token">
        <DisplayName>Verify OAuth v2.0 Access Token</DisplayName>
        <Operation>VerifyAccessToken</Operation>
    </OAuthV2>

    ध्यान दें कि <Operation> VerifyAccessToken है. ऑपरेशन से पता चलता है कि नीति को क्या करना चाहिए. इस मामले में, यह अनुरोध में मान्य OAuth टोकन की जांच करेगा.

कोई एपीआई प्रॉडक्ट जोड़ना

Apigee के यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, एपीआई प्रॉडक्ट जोड़ने के लिए:

  1. पब्लिश करें > एपीआई प्रॉडक्ट चुनें.
  2. +एपीआई प्रॉडक्ट पर क्लिक करें.
  3. अपने एपीआई प्रॉडक्ट के लिए, प्रॉडक्ट की जानकारी डालें.
    फ़ील्ड ब्यौरा
    नाम एपीआई प्रॉडक्ट का इंटरनल नाम. नाम में खास वर्णों का इस्तेमाल न करें.
    ध्यान दें: एपीआई प्रॉडक्ट बनाने के बाद, उसके नाम में बदलाव नहीं किया जा सकता. उदाहरण के लिए, helloworld_oauth2-Product
    डिसप्ले नेम एपीआई प्रॉडक्ट का डिसप्ले नेम. डिसप्ले नेम का इस्तेमाल यूज़र इंटरफ़ेस (यूआई) में किया जाता है. इसमें कभी भी बदलाव किया जा सकता है. अगर यह जानकारी नहीं दी जाती है, तो नाम की वैल्यू का इस्तेमाल किया जाएगा. यह फ़ील्ड, नाम की वैल्यू का इस्तेमाल करके अपने-आप भर जाता है. हालांकि, इसके कॉन्टेंट में बदलाव किया जा सकता है या इसे मिटाया जा सकता है. डिसप्ले नेम में खास वर्ण शामिल किए जा सकते हैं. उदाहरण के लिए, helloworld_oauth2-Product.
    ब्यौरा एपीआई प्रॉडक्ट का ब्यौरा.
    परिवेश ऐसे एनवायरमेंट जिन्हें एपीआई प्रॉडक्ट ऐक्सेस करने की अनुमति देगा. वह एनवायरमेंट चुनें जिसमें आपने एपीआई प्रॉक्सी को डिप्लॉय किया है. उदाहरण के लिए, test.
    ऐक्सेस सार्वजनिक को चुनें.
    ऐक्सेस के अनुरोध अपने-आप स्वीकार हो जाएं किसी भी ऐप्लिकेशन से इस एपीआई प्रॉडक्ट के लिए, कुंजी के अनुरोधों को अपने-आप मंज़ूरी मिलने की सुविधा चालू करें.
    कोटा इस ट्यूटोरियल के लिए अनदेखा करें.
    अनुमति वाले OAuth स्कोप इस ट्यूटोरियल के लिए अनदेखा करें.
  4. एपीआई प्रॉक्सी फ़ील्ड में, वह एपीआई प्रॉक्सी चुनें जिसे आपने अभी बनाया है.
  5. पाथ फ़ील्ड में, "/" डालें. अन्य फ़ील्ड को अनदेखा करें.
  6. सेव करें पर क्लिक करें.

अपने संगठन में डेवलपर और ऐप्लिकेशन जोड़ना

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

किसी डेवलपर के पास एक या उससे ज़्यादा ऐसे ऐप्लिकेशन होंगे जो आपके एपीआई को कॉल करते हैं. साथ ही, हर ऐप्लिकेशन को एक यूनीक उपभोक्ता कुंजी और उपभोक्ता सीक्रेट मिलता है. हर ऐप्लिकेशन के लिए उपलब्ध इस कुंजी/सीक्रेट से, एपीआई उपलब्ध कराने वाली कंपनी के तौर पर आपको अपने एपीआई के ऐक्सेस पर ज़्यादा कंट्रोल मिलता है. साथ ही, एपीआई ट्रैफ़िक पर ज़्यादा बारीकी से विश्लेषण करने वाली रिपोर्ट मिलती है. ऐसा इसलिए, क्योंकि Edge को पता होता है कि कौनसे डेवलपर और ऐप्लिकेशन, किस OAuth टोकन से जुड़े हैं.

डेवलपर बनाना

आइए, निगेल टफ़नेल नाम का एक डेवलपर खाता बनाते हैं.

  1. मेन्यू में जाकर, पब्लिश करें > डेवलपर चुनें.
  2. + डेवलपर पर क्लिक करें.
  3. नया डेवलपर विंडो में यह जानकारी डालें:
    इस फ़ील्ड में Enter
    नाम Nigel
    उपनाम Tufnel
    प्रयोक्ता नाम nigel
    ईमेल nigel@example.com
  4. बनाएं पर क्लिक करें.

ऐप्लिकेशन रजिस्टर करना

आइए, नाइजल के लिए एक ऐप्लिकेशन बनाते हैं.

  1. पब्लिश करें > ऐप्लिकेशन चुनें.
  2. + ऐप्लिकेशन पर क्लिक करें.
  3. नया ऐप्लिकेशन विंडो में यह जानकारी डालें:
    इस फ़ील्ड में यह करें
    नाम और डिसप्ले नेम nigel_app डालें
    डेवलपर डेवलपर पर क्लिक करें और Nigel Tufnel (nigel@example.com) चुनें
    कॉलबैक यूआरएल और नोट खाली छोड़ें
  4. प्रॉडक्ट में जाकर, प्रॉडक्ट जोड़ें पर क्लिक करें.
  5. helloworld_oauth2-Product को चुनें.
  6. बनाएं पर क्लिक करें.

उपयोगकर्ता कुंजी और उपयोगकर्ता सीक्रेट पाना

अब आपको उपभोक्ता कुंजी और उपभोक्ता सीक्रेट मिलेगा. इसे OAuth ऐक्सेस टोकन के लिए एक्सचेंज किया जाएगा.

  1. पक्का करें कि nigel_app पेज दिख रहा हो. अगर ऐसा नहीं है, तो ऐप्लिकेशन पेज (पब्लिश करें > ऐप्लिकेशन) पर जाकर, nigel_app पर क्लिक करें.
  2. nigel_app पेज पर, कुंजी और सीक्रेट कॉलम में जाकर, दिखाएं पर क्लिक करें. ध्यान दें कि कुंजी/सीक्रेट, "helloworld_oauth2-Product" से जुड़े हैं. यह प्रॉडक्ट पहले अपने-आप जनरेट हुआ था.

  3. कुंजी और सीक्रेट को चुनें और कॉपी करें. उन्हें किसी अस्थायी टेक्स्ट फ़ाइल में चिपकाएं. इन क्रेडेंशियल का इस्तेमाल बाद में किया जाएगा. इस चरण में, आपको एपीआई प्रॉक्सी को कॉल करना होगा. यह प्रॉक्सी, इन क्रेडेंशियल के बदले OAuth ऐक्सेस टोकन देगी.

अपना आईपी पता पाने के लिए एपीआई को कॉल करें (fail!)

सिर्फ़ मज़े के लिए, उस सुरक्षित एपीआई प्रॉक्सी को कॉल करें जिसे आपका आईपी पता दिखाना चाहिए. टर्मिनल विंडो में, यहां दी गई cURL कमांड चलाएं. इसमें Edge संगठन का नाम बदलें. यूआरएल में मौजूद test शब्द, आपके संगठन का टेस्ट एनवायरमेंट है. यह वही एनवायरमेंट है जिसमें आपने अपनी प्रॉक्सी को डिप्लॉय किया था. प्रॉक्सी का बेसपाथ /hellooauth2 है. यह वही बेसपाथ है जो आपने प्रॉक्सी बनाते समय तय किया था. ध्यान दें कि कॉल में OAuth ऐक्सेस टोकन पास नहीं किया जा रहा है.

curl https://ORG_NAME-test.apigee.net/hellooauth2

एपीआई प्रॉक्सी में Verify OAuth v2.0 Access Token नीति लागू है. यह नीति, अनुरोध में मान्य OAuth टोकन की जांच करती है. इसलिए, कॉल में यह मैसेज दिखेगा:

{"fault":{"faultstring":"Invalid access token","detail":{"errorcode":"oauth.v2.InvalidAccessToken"}}}

इस मामले में, फ़ेल होना अच्छी बात है! इसका मतलब है कि आपकी एपीआई प्रॉक्सी ज़्यादा सुरक्षित है. सिर्फ़ भरोसेमंद ऐप्लिकेशन, इस एपीआई को कॉल कर सकते हैं. साथ ही, उनके पास मान्य OAuth ऐक्सेस टोकन होना चाहिए.

OAuth ऐक्सेस टोकन पाना

अब हम सबसे अहम हिस्से पर आते हैं. अब आपको उस कुंजी और सीक्रेट का इस्तेमाल करना है जिसे आपने टेक्स्ट फ़ाइल में कॉपी करके चिपकाया था. साथ ही, आपको उन्हें OAuth ऐक्सेस टोकन के लिए एक्सचेंज करना है. अब आपको इंपोर्ट की गई एपीआई सैंपल प्रॉक्सी oauth को एपीआई कॉल करना होगा. इससे एपीआई ऐक्सेस टोकन जनरेट होगा.

उस कुंजी और सीक्रेट का इस्तेमाल करके, यहां दिया गया cURL कॉल करें. ध्यान दें कि प्रोटोकॉल https है. Edge संगठन का नाम, कुंजी, और सीक्रेट की जगह पर, अपनी जानकारी डालें:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" \
"https://ORG_NAME-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials" \
-d "client_id=CLIENT_KEY&client_secret=CLIENT_SECRET"

ध्यान दें कि अगर कॉल करने के लिए Postman जैसे क्लाइंट का इस्तेमाल किया जा रहा है, तो client_id और client_secret, अनुरोध के मुख्य हिस्से में जाते हैं और x-www-form-urlencoded होने चाहिए.

आपको इस तरह का जवाब मिलेगा:

{
  "issued_at" : "1466025769306",
  "application_name" : "716bbe61-f14a-4d85-9b56-a62ff8e0d347",
  "scope" : "",
  "status" : "approved",
  "api_product_list" : "[helloworld_oauth2-Product]",
  "expires_in" : "3599", //--in seconds
  "developer.email" : "nigel@example.com",
  "token_type" : "BearerToken",
  "client_id" : "xNnREu1DNGfiwzQZ5HUN8IAUwZSW1GZW",
  "access_token" : "GTPY9VUHCqKVMRB0cHxnmAp0RXc0",
  "organization_name" : "myOrg",
  "refresh_token_expires_in" : "0", //--in seconds
  "refresh_count" : "0"
}

आपको OAuth ऐक्सेस टोकन मिल गया है! access_token वैल्यू को कोटेशन मार्क के बिना कॉपी करें और उसे अपनी टेक्स्ट फ़ाइल में चिपकाएं. इसका इस्तेमाल कुछ ही समय में किया जाएगा.

अभी क्या हुआ?

आपको याद होगा कि oauth प्रॉक्सी में शर्त के साथ लागू होने वाला फ़्लो देखते समय, हमने बताया था कि अगर संसाधन का यूआरआई /accesstoken है और अनुरोध का वर्ब POST है, तो ऐक्सेस टोकन जनरेट करने वाली GenerateAccessTokenClient OAuth नीति लागू करें. आपकी cURL कमांड इन शर्तों को पूरा करती है. इसलिए, OAuth नीति लागू की गई. इसने आपकी उपभोक्ता कुंजी और उपभोक्ता सीक्रेट की पुष्टि की और उन्हें एक ऐसे OAuth टोकन के लिए एक्सचेंज किया जिसकी समयसीमा एक घंटे में खत्म हो जाती है.

ऐक्सेस टोकन के साथ एपीआई को कॉल करें (सफलतापूर्वक!)

अब आपके पास ऐक्सेस टोकन है. इसका इस्तेमाल एपीआई प्रॉक्सी को कॉल करने के लिए किया जा सकता है. नीचे दिए गए cURL कॉल को करें. Edge संगठन का नाम और ऐक्सेस टोकन बदलें.

curl https://ORG_NAME-test.apigee.net/hellooauth2 -H "Authorization: Bearer TOKEN"

अब आपको एपीआई प्रॉक्सी को कॉल करने का अनुरोध पूरा होने की सूचना मिलेगी. इससे आपको अपना आईपी पता वापस मिल जाएगा. उदाहरण के लिए:

{"ip":"::ffff:192.168.14.136"}

एपीआई कॉल को करीब एक घंटे तक दोहराया जा सकता है. इसके बाद, ऐक्सेस टोकन की समयसीमा खत्म हो जाएगी. एक घंटे बाद कॉल करने के लिए, आपको पिछले चरणों का इस्तेमाल करके नया ऐक्सेस टोकन जनरेट करना होगा.

बधाई हो! आपने एक एपीआई प्रॉक्सी बनाई है और उसे सुरक्षित किया है. इसके लिए, आपने यह ज़रूरी किया है कि कॉल में मान्य OAuth ऐक्सेस टोकन शामिल किया जाए.

मिलते-जुलते विषय