एपीआई कुंजियों की मदद से एपीआई को सुरक्षित करें

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

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

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

  • ऐसा एपीआई प्रॉक्सी बनाएं जिसके लिए एपीआई पासकोड ज़रूरी हो.
  • एपीआई प्रॉडक्ट जोड़ें.
  • डेवलपर जोड़ें और ऐप्लिकेशन को रजिस्टर करें.
  • अपने एपीआई को एपीआई पासकोड की मदद से कॉल करें.

अपने एपीआई को बिना अनुमति वाले ऐक्सेस से बचाना ज़रूरी है. ऐसा करने का एक तरीका एपीआई कुंजियों का इस्तेमाल करना है (इन्हें सार्वजनिक कुंजियां, उपभोक्ता कुंजियां या ऐप्लिकेशन कुंजियां भी कहा जाता है).

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

  • मान्य है
  • जिसे रद्द न किया गया हो
  • उस एपीआई प्रॉडक्ट के लिए एपीआई पासकोड से मेल खाता है जो अनुरोध किए गए संसाधनों को दिखाता है

अगर कुंजी मान्य है, तो अनुरोध की अनुमति है. अगर कुंजी अमान्य है, तो अनुरोध की वजह से अनुमति नहीं मिल पाएगी.

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

आपको इनकी ज़रूरत होगी

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

एपीआई प्रॉक्सी बनाना

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

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

http://mocktarget.apigee.net

टारगेट के तौर पर Hello, Guest! दिखाए जाते हैं. एपीआई के अन्य संसाधनों का सहायता पेज पाने के लिए, /help संसाधन का इस्तेमाल करें

  1. https://apigee.com/edge पर जाएं और साइन इन करें.
  2. उपयोगकर्ता प्रोफ़ाइल मेन्यू देखने के लिए, साइड नेविगेशन बार के सबसे ऊपर मौजूद अपने उपयोगकर्ता नाम पर क्लिक करके, अपनी पसंद के संगठन पर स्विच करें. इसके बाद, सूची में से संगठन चुनें.

    उपयोगकर्ता प्रोफ़ाइल मेन्यू में संगठन चुनें
  3. एपीआई प्रॉक्सी सूची दिखाने के लिए, लैंडिंग पेज पर एपीआई प्रॉक्सी पर क्लिक करें.

    Edge API मेन्यू
  4. + प्रॉक्सी पर क्लिक करें.
    प्रॉक्सी बटन बनाएं
  5. प्रॉक्सी बनाएं पेज पर, रिवर्स प्रॉक्सी (सबसे सामान्य) चुनें.
  6. प्रॉक्सी विवरण पेज पर, प्रॉक्सी को इस प्रकार कॉन्फ़िगर करें:
    इस फ़ील्ड में यह करो
    प्रॉक्सी नाम डालें: helloworld_apikey
    प्रोजेक्ट के आधार का पाथ

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

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

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

    मौजूदा एपीआई

    डालें: http://mocktarget.apigee.net

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

    Description डालें: hello world protected by API key
  7. आगे बढ़ें पर क्लिक करें.
  8. सामान्य नीतियां पेज पर सुरक्षा: अनुमति देने के लिए, एपीआई पासकोड चुनें और फिर आगे बढ़ें पर क्लिक करें. इससे आपके एपीआई प्रॉक्सी में दो नीतियां जुड़ जाएंगी.
  9. वर्चुअल होस्ट पेज पर, डिफ़ॉल्ट और सुरक्षित चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें. डिफ़ॉल्ट चुनने पर, http:// की मदद से अपने एपीआई को कॉल किया जा सकता है. सुरक्षित चुनकर, अपने एपीआई को https:// की मदद से कॉल किया जा सकता है.
  10. पक्का करें कि खास जानकारी पेज पर, टेस्ट डिप्लॉयमेंट एनवायरमेंट चुना गया हो. इसके बाद, बनाएं और डिप्लॉय करें पर क्लिक करें.
  11. आपको यह पुष्टि दिखेगी कि आपका नया एपीआई प्रॉक्सी और एक एपीआई प्रॉडक्ट बन गया है. साथ ही, यह भी दिखेगा कि एपीआई प्रॉक्सी को आपके टेस्ट एनवायरमेंट में डिप्लॉय किया गया है.
  12. एपीआई प्रॉक्सी का खास जानकारी पेज दिखाने के लिए, प्रॉक्सी में बदलाव करें पर क्लिक करें.

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

  1. एपीआई प्रॉक्सी एडिटर में, डेवलप करें टैब पर क्लिक करें. आपको दिखेगा कि एपीआई प्रॉक्सी के अनुरोध फ़्लो में दो नीतियां जोड़ी गई हैं:
    • एपीआई पासकोड की पुष्टि: एपीआई कॉल की जांच करके, यह पक्का करता है कि मान्य एपीआई पासकोड (क्वेरी पैरामीटर के तौर पर भेजा गया) मौजूद है या नहीं.
    • Query Param apikey हटाएं: यह अनूठा मैसेज नीति है. इसकी मदद से, एपीआई पासकोड जांचने के बाद इसे हटा दिया जाता है, ताकि यह बिना वजह न दिखे.
  2. फ़्लो व्यू में, 'एपीआई पासकोड की पुष्टि करें' नीति के आइकॉन पर क्लिक करें और निचले कोड व्यू में नीति का एक्सएमएल कॉन्फ़िगरेशन देखें. <APIKey> एलिमेंट से नीति को यह पता चलता है कि कॉल करते समय, एपीआई पासकोड कहां दिखना चाहिए. डिफ़ॉल्ट रूप से, यह एचटीटीपी अनुरोध में कुंजी को apikey नाम के क्वेरी पैरामीटर के रूप में खोजता है:

    <APIKey ref="request.queryparam.apikey" />
    

    apikey नाम पसंद के मुताबिक है. यह ऐसी कोई भी प्रॉपर्टी हो सकती है जिसमें एपीआई पासकोड हो.

एपीआई को कॉल करने की कोशिश करें

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

  1. हो गया

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

    http://mocktarget.apigee.net
    

    आपको यह सफल जवाब मिलना चाहिए: Hello, Guest!

  2. फ़ेलियर

    अब अपने API प्रॉक्सी को कॉल करने की कोशिश करें:

    http://ORG_NAME-test.apigee.net/helloapikey
    

    ORG_NAME की जगह अपने Edge संगठन का नाम डालना होगा.

    'एपीआई पासकोड की पुष्टि करें' नीति के बिना, इस कॉल से आपको पिछले कॉल की तरह ही रिस्पॉन्स मिलेगा. हालांकि, इस मामले में आपको गड़बड़ी का यह रिस्पॉन्स मिलेगा:

    {"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
    

    इसका मतलब है कि आपने मान्य एपीआई पासकोड (क्वेरी पैरामीटर के तौर पर) पास नहीं किया है.

अगले चरणों में, आपको एपीआई प्रॉडक्ट जोड़ना होगा.

एपीआई प्रॉडक्ट जोड़ें

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

  1. पब्लिश करें > एपीआई प्रॉडक्ट चुनें.
  2. +एपीआई प्रॉडक्ट पर क्लिक करें.
  3. एपीआई प्रॉडक्ट के लिए, Product की जानकारी डालें.

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

अगले चरणों में, आपको ज़रूरी एपीआई पासकोड मिलेगा.

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

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

डेवलपर बनाना

डेवलपर बनाने के लिए:

  1. मेन्यू में, पब्लिश करें > डेवलपर चुनें.
  2. + डेवलपर पर क्लिक करें.
  3. नई डेवलपर विंडो में यह जानकारी डालें:

    इस फ़ील्ड में डालो
    नाम Keyser
    सरनेम Soze
    प्रयोक्ता नाम keyser
    ईमेल keyser@example.com
  4. बनाएं पर क्लिक करें.

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

डेवलपर ऐप्लिकेशन को रजिस्टर करने के लिए:

  1. पब्लिश करें > ऐप्लिकेशन चुनें.
  2. + ऐप्लिकेशन पर क्लिक करें.
  3. नया ऐप्लिकेशन विंडो में यह जानकारी डालें:

    p
    इस फ़ील्ड में यह करो
    नाम और डिसप्ले नेम डालें: keyser_app
    कंपनी / डेवलपर चुनें: Developer
    डेवलपर चुनें: Keyser Soze (keyser@example.com)
    कॉलबैक यूआरएल और नोट खाली छोड़ें
  4. क्रेडेंशियल सेक्शन में, समयसीमा खत्म होने की तारीख मेन्यू से कभी नहीं चुनें. इस ऐप्लिकेशन के क्रेडेंशियल की समयसीमा कभी खत्म नहीं होगी.
  5. प्रॉडक्ट में जाकर, प्रॉडक्ट जोड़ें पर क्लिक करें.
  6. helloworld_apikey-Product चुनें.
  7. जोड़ें पर क्लिक करें.
  8. अपना काम सेव करने के लिए, ऊपर और ऐप्लिकेशन की जानकारी सेक्शन की दाईं ओर मौजूद बनाएं पर क्लिक करें.

एपीआई पासकोड डाउनलोड करें

एपीआई पासकोड पाने के लिए:

  1. ऐप्लिकेशन पेज (पब्लिश करें > ऐप्लिकेशन) पर, keyser_app पर क्लिक करें.
  2. keyser_app पेज पर, क्रेडेंशियल सेक्शन में, कुंजी के आगे मौजूद दिखाएं पर क्लिक करें. प्रॉडक्ट सेक्शन में देखें कि कुंजी helloworld_apikey से जुड़ी है

    .
  3. कुंजी को चुनें और कॉपी करें. आप इसका इस्तेमाल अगले चरण में करेंगे.

एपीआई को कुंजी के साथ कॉल करें

अब आपके पास एपीआई पासकोड है, इसलिए इसका इस्तेमाल एपीआई प्रॉक्सी को कॉल करने के लिए किया जा सकता है. अपने वेब ब्राउज़र में यह जानकारी डालें. अपने Edge संगठन के नाम की जगह ORG_NAME रखें और API_KEY के लिए एपीआई पासकोड की जगह नीचे दिया गया तरीका अपनाएं. पक्का करें कि क्वेरी पैरामीटर में कोई अतिरिक्त स्पेस न हो.

http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY

अब एपीआई प्रॉक्सी को कॉल करने पर, आपको यह जवाब मिलेगा: Hello, Guest!

बधाई! आपने एक एपीआई प्रॉक्सी बनाया है और कॉल में एक मान्य एपीआई पासकोड शामिल करके उसे सुरक्षित रखा है.

ध्यान दें कि आम तौर पर, एपीआई पासकोड को क्वेरी पैरामीटर के तौर पर पास करना अच्छा नहीं होता. इसके बजाय, आपको इसे एचटीटीपी हेडर में पास करना चाहिए.

सबसे सही तरीका: एचटीटीपी हेडर में कुंजी पास करना

इस चरण में, एपीआई पासकोड को x-apikey नाम के हेडर में खोजने के लिए, प्रॉक्सी में बदलाव किया जा सकता है.

  1. एपीआई प्रॉक्सी में बदलाव करें. डेवलप करें > एपीआई प्रॉक्सी > helloworld_apikey चुनें और डेवलप करें व्यू पर जाएं.
  2. एपीआई पासकोड की पुष्टि करें नीति चुनें और नीति एक्सएमएल में बदलाव करें, ताकि नीति को queryparam के बजाय header में देखा जा सके:

    <APIKey ref="request.header.x-apikey"/>
    
  3. बदलाव लागू करने के लिए एपीआई प्रॉक्सी सेव करें.
  4. एपीआई पासकोड को x-apikey नाम के हेडर के तौर पर पास करने के लिए, cURL का इस्तेमाल करके, नीचे दिया गया एपीआई कॉल करें. अपने संगठन के नाम से दूसरा नाम लिखना न भूलें.

    curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
    

ध्यान दें कि इस बदलाव को पूरी तरह से पूरा करने के लिए, आपको क्वेरी पैरामीटर के बजाय हेडर को हटाने के लिए, AssignmentsMessage नीति को भी कॉन्फ़िगर करना होगा. उदाहरण के लिए:

<Remove>
<Headers>
    <Header name="x-apikey"/>
</Headers>
</Remove>

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

यहां इस ट्यूटोरियल से सीधे तौर पर कुछ विषय दिए गए हैं:

और गहराई से जानें कि एपीआई कुंजियों की मदद से एपीआई की सुरक्षा करना, सिर्फ़ इस कहानी का हिस्सा है. आम तौर पर, एपीआई सुरक्षा में OAuth जैसी अतिरिक्त सुरक्षा शामिल होती है.

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