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

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

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

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

एपीआई प्रॉक्सी के प्रॉक्सीEndpoint में नीतियों को इस तरह सुरक्षित करें:

<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