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

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

आपको इनके बारे में जानकारी मिलेगी

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

इस ट्यूटोरियल में, 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 खाता नहीं है, तो आप Apigee Edge खाता बनाने के निर्देशों की मदद से साइन अप कर सकते हैं.
  • कमांड लाइन से एपीआई कॉल करने के लिए, आपकी मशीन पर cURL इंस्टॉल किया गया.

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

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

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

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

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

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

आइए, अच्छे से जानते हैं कि एपीआई प्रॉक्सी में क्या शामिल है.

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

    एक्सएमएल कोड व्यू में, आपको AccessTokenClientCredential नाम का एक Flow दिखेगा:

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

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

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

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

'मॉकटारगेट' के बारे में जानकारी

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

http://mocktarget.apigee.net/ip

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

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

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

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

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

    इसमें बदलें: /hellooauth2

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

    मौजूदा एपीआई

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

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

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

नीतियां पढ़ें

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

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

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

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

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

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

डेवलपर बनाना

चलिए, Nigel Tufnel नाम का डेवलपर बनाते हैं.

  1. मेन्यू में, पब्लिश करें > डेवलपर चुनें.
  2. + डेवलपर पर क्लिक करें.
  3. नई डेवलपर विंडो में यह जानकारी डालें:
    इस फ़ील्ड में इसे
    नाम 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 ऐक्सेस टोकन में बदल देगा.

अपना आईपी पता पाने के लिए, एपीआई को कॉल करके देखें (यह काम नहीं हो सका!)

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

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

एपीआई प्रॉक्सी में, OAuth v2.0 ऐक्सेस टोकन की पुष्टि करें नीति के तहत, अनुरोध में मान्य 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"

ध्यान दें कि अगर कॉल करने के लिए पोस्टमैन जैसे किसी क्लाइंट का इस्तेमाल किया जा रहा है, तो 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 ऐक्सेस टोकन शामिल करना ज़रूरी बनाकर उसे सुरक्षित किया है.

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