क्लाइंट क्रेडेंशियल के अनुदान टाइप को लागू करना

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

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

इस विषय के बारे में जानकारी

इस विषय में, OAuth 2.0 क्लाइंट के क्रेडेंशियल पाने की अनुमति के टाइप के बारे में सामान्य जानकारी दी गई है. Apigee Edge पर, इस फ़्लो को लागू करने के तरीके के बारे में जानकारी देता है.

उपयोग के उदाहरण

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

भूमिकाएं

भूमिकाओं से "अभिनेता" के बारे में पता चलता है OAuth फ़्लो में हिस्सा लेते हैं. चलिए, इनके बारे में खास जानकारी देते हैं क्लाइंट क्रेडेंशियल भूमिकाओं की मदद से बताया जा सकता है कि Apigee Edge कहां फ़िट हो सकता है. एक पूरा OAuth 2.0 की भूमिकाओं के बारे में जानने के लिए, आईईटीएफ़ OAuth 2.0 की खास बातें देखें.

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

कोड सैंपल

आपको एक पूर्ण, उपयोगी GitHub पर क्लाइंट क्रेडेंशियल से जुड़ी अनुमति के टाइप को लागू करने का सैंपल. ज़्यादा उदाहरणों के लिंक के लिए नीचे दूसरे संसाधन देखें.

फ़्लो डायग्राम

यहां दिए गए फ़्लो डायग्राम में, क्लाइंट क्रेडेंशियल फ़्लो को दिखाया गया है, जिसमें Apigee Edge इस तरह काम करता है अनुमति देने वाला सर्वर. आम तौर पर, इस फ़्लो में Edge भी संसाधन सर्वर होता है -- यानी API प्रॉक्सी सुरक्षित संसाधन हैं.


क्लाइंट क्रेडेंशियल फ़्लो के चरण

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

ज़रूरी शर्त: ऐप्लिकेशन पाने के लिए, क्लाइंट ऐप्लिकेशन का Apigee Edge के साथ रजिस्टर होना ज़रूरी है Client-ID और क्लाइंट सीक्रेट पासकोड. इनके लिए क्लाइंट ऐप्लिकेशन रजिस्टर करना देखें विवरण.

1. क्लाइंट ने ऐक्सेस टोकन

ऐक्सेस टोकन पाने के लिए, क्लाइंट, Client-ID की वैल्यू के साथ एपीआई कॉल टू एज पर पोस्ट करता है और क्लाइंट सीक्रेट, रजिस्टर किए गए डेवलपर ऐप्लिकेशन से मिला हो. इसके अलावा, पैरामीटर Grants_type=client_Credentials को क्वेरी पैरामीटर के रूप में पास किया जाना चाहिए. (हालांकि, आपके पास OAuthV2 नीति को पढ़ें -- ज़्यादा जानकारी के लिए OAuthV2 नीति देखें).

उदाहरण के लिए:

$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' -X POST 'https://docs-test.apigee.net/oauth/accesstoken' -d 'grant_type=client_credentials&client_id=ns4fQc14Zg4hKFCNaSzArVuwszX95X&client_secret=ZIjFyTsNgQNyxI'

ध्यान दें: हालांकि, आप client_id और client_secret वैल्यू को क्वेरी के रूप में पास कर सकते हैं पैरामीटर, जैसा कि ऊपर दिखाया गया है, उन्हें base64 URL एन्कोडेड स्ट्रिंग के रूप में पास करना एक अच्छा तरीका है अनुमति देने वाला हेडर. ऐसा करने के लिए, आपको कोड में बदलने के लिए base64 एन्कोडिंग टूल या उपयोगिता का इस्तेमाल करना होगा कोलन लगाकर उन्हें अलग किया जाता है. इस तरह: aBase64EncodeFunction(clientidvalue:clientsecret). इसलिए, ऊपर दिया गया उदाहरण इस तरह एन्कोड किया जाएगा शामिल करें:

रिज़ल्ट = aBase64EncodeFunction(ns4fQc14Zg4hKFCNaSzArVuwszX95X:ZIjFyTsNgQNyxI) // ध्यान दें कोलन पर क्लिक करें जो दोनों वैल्यू को अलग करता हो.

ऊपर दी गई स्ट्रिंग को base64 कोड में बदलने का नतीजा है: bnM0ZlFjMTRaZzRoS0ZDTmFTekFyVnV3c3pYOTVYOlpJakZ5VHNOZ1FOeXhJOg==

फिर, इस तरह से टोकन अनुरोध करें:

$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' -X POST 'https://docs-test.apigee.net/oauth/accesstoken' -d 'grant_type=client_credentials' -H 'Authorization: Basic bnM0ZlFjMTRaZzRoS0ZDTmFTekFyVnV3c3pYOTVYOlpJakZ5VHNOZ1FOeXhJOg=='

2. Edge इसकी पुष्टि करता है क्रेडेंशियल

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

3. Edge से जवाब मिलता है

अगर क्रेडेंशियल सही हैं, तो Edge क्लाइंट को ऐक्सेस टोकन देता है. अगर ऐसा नहीं है, तो यह एक गड़बड़ी है वापस किया गया.

4. क्लाइंट सुरक्षित एपीआई

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

फ़्लो और नीतियां कॉन्फ़िगर करना

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

कस्टम फ़्लो कॉन्फ़िगरेशन

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

<Flows>
  <Flow name="GetAccessToken">
         <!-- This policy flow is triggered when the URI path suffix
         matches /oauth/accesstoken. Publish this URL to app developers 
         to use when obtaining an access token using an auth code   
         -->
    <Condition>proxy.pathsuffix == "/oauth/accesstoken"</Condition>
    <Request>
        <Step><Name>GetAccessToken</Name></Step>
    </Request>
  </Flow>
</Flows>

किसी नीति के साथ फ़्लो को कॉन्फ़िगर करना

आपको एंडपॉइंट में इस तरह से एक नीति अटैच करनी होगी. OAuth कॉन्फ़िगर करना एंडपॉइंट और नीतियों की मदद से, OAuthV2 नीति को जोड़ने के ज़रूरी चरणों के बारे में बताया गया है को प्रॉक्सी एंडपॉइंट पर जोड़ा जा सकता है.

ऐक्सेस टोकन पाएं

यह नीति, /accesstoken पाथ से जुड़ी है. यह OAuthV2 का इस्तेमाल करता है इस नीति के तहत, generateAccessToken कार्रवाई को लागू किया गया है.

<OAuthV2 name="GetAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>3600000</ExpiresIn>
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GenerateResponse/>
</OAuthV2>

ऐक्सेस टोकन पाने के लिए एपीआई कॉल, एक पीओएसटी होता है. साथ ही, इसमें एक ऑथराइज़ेशन हेडर शामिल होता है जिसमें base64 कोड में बदला गया client_id + client+secret और क्वेरी पैरामीटर grant_type=client_credentials. इसमें स्कोप और स्थिति के लिए वैकल्पिक पैरामीटर भी शामिल किए जा सकते हैं. इसके लिए उदाहरण:

$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' -X POST 'https://docs-test.apigee.net/oauth/accesstoken' -d 'grant_type=client_credentials' -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVgT1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ'

'ऐक्सेस टोकन की पुष्टि करें' नीति अटैच की जा रही है

अपने API को OAuth 2.0 सुरक्षा के साथ सुरक्षित करने के लिए, आपको VerifyAccessToken कार्रवाई. यह नीति इस बात की जांच करती है कि आने वाले अनुरोधों में मान्य ऐक्सेस टोकन है या नहीं. अगर टोकन मान्य है, तो Edge अनुरोध को प्रोसेस करता है. अगर यह मान्य नहीं है, तो Edge गड़बड़ी दिखाता है. इसके लिए बुनियादी चरणों को पूरा करने के बाद, पुष्टि करने का तरीका ऐक्सेस टोकन होंगे.

<OAuthV2 async="false" continueOnError="false" enabled="true" name="VerifyAccessToken">
    <DisplayName>VerifyAccessToken</DisplayName>
    <ExternalAuthorization>false</ExternalAuthorization>
    <Operation>VerifyAccessToken</Operation>
    <SupportedGrantTypes/>
    <GenerateResponse enabled="true"/>
    <Tokens/>
</OAuthV2>

सुरक्षित एपीआई को कॉल करना

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

$ curl -H "Authorization: Bearer UAj2yiGAcMZGxfN2DhcUbl9v8WsR" \
  http://myorg-test.apigee.net/v0/weather/forecastrss?w=12797282 

ऐक्सेस भेजने का तरीका भी देखें टोकन.

दूसरे संसाधन

  • Apigee, एपीआई डेवलपर के लिए ऑनलाइन ट्रेनिंग उपलब्ध कराता है. इसमें, इन पर एक कोर्स भी शामिल है एपीआई सुरक्षा, जिसमें OAuth शामिल है.
  • OAuthV2 नीति -- जिनमें ये शामिल हैं कई उदाहरणों में, अनुमति देने वाले सर्वर से अनुरोध करने और उन्हें कॉन्फ़िगर करने का तरीका दिखाया गया है OAuthV2 नीति के मुताबिक कार्रवाई की जा सकती है.