एपीआई पासकोड की पुष्टि सेट अप की जा रही है

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

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

उदाहरण के लिए, यहां दी गई नीति के कॉन्फ़िगरेशन में, पासकोड की जगह को क्वेरी पैरामीटर बताया गया है जिसका नाम apikey है. किसी अनुरोध के पूरे होने के लिए, उसमें एपीआई पासकोड को क्वेरी पैरामीटर के तौर पर जोड़ना ज़रूरी है. उदाहरण के लिए,?apikey=Y7yeiuhcbKJHD790.

एपीआई पासकोड की पुष्टि करने के लिए, यह नीति बनाएं:

<VerifyAPIKey name="APIKeyValidation">
  <APIKey ref="request.queryparam.apikey"/>
</VerifyAPIKey>

इस नीति को, उस एपीआई में जोड़ा जा सकता है जिसे सुरक्षित करना है.

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

एपीआई प्रॉक्सी, अनुरोध में मौजूद सभी एचटीटीपी हेडर और क्वेरी पैरामीटर को अपने-आप पास कर देती हैं. इसलिए, एपीआई पासकोड की पुष्टि हो जाने के बाद, उसे मैसेज से हटा देना चाहिए. इससे, एपीआई पासकोड को बैकएंड सेवा में नहीं भेजा जाएगा. इसके लिए, AssignMessage टाइप की नीति का इस्तेमाल किया जा सकता है. इसके लिए, यह तरीका अपनाएं:

<AssignMessage name="StripApiKey">
    <DisplayName>Remove Query Param</DisplayName>
    <Remove>
        <QueryParams>
            <QueryParam name="apikey"/>
        </QueryParams>
    </Remove>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"></AssignTo>
</AssignMessage>

नीति जोड़ना

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

सुरक्षित की जाने वाली एपीआई प्रॉक्सी के ProxyEndpoint में, नीतियों को इस तरह जोड़ें:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>APIKeyValidation</Name></Step>
      <Step><Name>StripApiKey</Name></Step>
    </Request>
  </PreFlow>

नीति जोड़ने के बाद, एपीआई प्रॉक्सी को डिप्लॉय करें.

मान्य एपीआई पासकोड के साथ अनुरोध सबमिट करना

अपने संगठन में एडमिन के तौर पर, किसी भी ऐप्लिकेशन का एपीआई पासकोड इस तरह से वापस पाया जा सकता है:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password 

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

उदाहरण के लिए, अगर किसी अनुरोध में एपीआई पासकोड शामिल नहीं है, तो अनुमति नहीं मिलेगी.

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

गड़बड़ी के मैसेज से पता चलता है कि नीति ने एपीआई पासकोड की जांच की, लेकिन उसे कोई मान्य पासकोड नहीं मिला:

OAuth Failure : Could not resolve the app key with variable request.queryparam.apikey

जब ऐप्लिकेशन के लिए कंज्यूमर कुंजी को क्वेरी पैरामीटर के तौर पर शामिल किया जाता है, तो अनुमति मिल जाती है:

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282&"apikey=PulSCqMnXGchW0pC0s5o9ngHVTWMeLqk"

मौसम की जानकारी देने वाली सेवा से, जवाब मिलने की उम्मीद होती है.

अनुरोध में एपीआई पासकोड की वैल्यू में बदलाव करने पर, अनुमति नहीं मिलती:

$ curl http://{org_name}-test.apigee.net/weather?forecastrss?w=12797282&"apikey=PulSCqMnXGchW0"

इससे यह नतीजा मिलता है:

OAuth Failure : Consumer Key is Invalid

ध्यान रखें कि अपने संगठन के एडमिन के तौर पर, किसी भी ऐसे ऐप्लिकेशन के लिए कंज्यूमर कुंजी वापस पाई जा सकती है जो किसी संगठन में रजिस्टर है:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password