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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://mocktarget.apigee.net

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

  1. पर जाएँ https://apigee.com/Edge पर जाएं और साइन इन करें.
  2. यहां पर अपने उपयोगकर्ता नाम पर क्लिक करके उस संगठन पर जाएं जिसे आप चाहते हैं पर क्लिक करें, और फिर उपयोगकर्ता प्रोफ़ाइल मेन्यू को ऐक्सेस करें. सूची से संगठन को चुनकर.

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

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

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

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

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

    मौजूदा एपीआई

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

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

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

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

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

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

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

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

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

  1. हो गया

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

    http://mocktarget.apigee.net
    

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

  2. फ़ेल

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

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

    ORG_NAME को आपके एज संगठन.

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

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

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

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

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

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

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

    फ़ील्ड ब्यौरा
    नाम एपीआई प्रॉडक्ट का अंदरूनी नाम. ऐसा न करें नाम में खास वर्ण शामिल करें.
    ध्यान दें: आप एपीआई प्रॉडक्ट बनाने के बाद, नाम में बदलाव नहीं किया जा सकता. इसके लिए उदाहरण, 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. क्रेडेंशियल अनुभाग में, Never को इसके समयसीमा खत्म होने की तारीख मेन्यू. इस ऐप्लिकेशन के क्रेडेंशियल की समयसीमा कभी खत्म नहीं होगी.
  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. एपीआई पासकोड की पुष्टि करें नीति चुनें और बताने के लिए, नीति के एक्सएमएल में बदलाव करें नीति को header में देखने के बजाय queryparam:

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

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

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

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

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

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

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

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