Edge for Private Cloud v. 4.16.09
इस दस्तावेज़ में, असली उपयोगकर्ता आईडी, ऐप्लिकेशन आईडी या दोनों के ज़रिए, OAuth 2.0 ऐक्सेस टोकन को वापस पाने और रद्द करने की सुविधा चालू करने का तरीका बताया गया है.
ऐप्लिकेशन आईडी, OAuth ऐक्सेस टोकन में अपने-आप जुड़ जाते हैं. इसलिए, किसी संगठन के लिए टोकन ऐक्सेस चालू करने के लिए, यहां दी गई प्रोसेस का इस्तेमाल करने के बाद, ऐप्लिकेशन आईडी से टोकन ऐक्सेस किए जा सकते हैं.
असली उपयोगकर्ता के यूज़र आईडी के हिसाब से, OAuth 2.0 ऐक्सेस टोकन वापस पाने और रद्द करने के लिए, ऐक्सेस टोकन में असली उपयोगकर्ता का यूज़र आईडी मौजूद होना चाहिए. यहां दिए गए तरीके से, किसी मौजूदा टोकन या नए टोकन में असली उपयोगकर्ता आईडी जोड़ने का तरीका बताया गया है.
डिफ़ॉल्ट रूप से, जब Edge कोई OAuth 2.0 ऐक्सेस टोकन जनरेट करता है, तो टोकन का फ़ॉर्मैट यह होता है:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", "refresh_count" : "0" }
निम्न पर ध्यान दें:
- application_name फ़ील्ड में, टोकन से जुड़े ऐप्लिकेशन का यूयूआईडी होता है. अगर आपने ऐप्लिकेशन आईडी के ज़रिए, OAuth 2.0 ऐक्सेस टोकन वापस पाने और रद्द करने की सुविधा चालू की है, तो यह वही ऐप्लिकेशन आईडी है जिसका इस्तेमाल किया जाता है.
- access_token फ़ील्ड में, OAuth 2.0 ऐक्सेस टोकन की वैल्यू होती है.
असली उपयोगकर्ता आईडी की मदद से, OAuth 2.0 ऐक्सेस टोकन वापस पाने और उन्हें रद्द करने की सुविधा चालू करने के लिए, OAuth 2.0 की नीति को कॉन्फ़िगर करें. इससे टोकन में उपयोगकर्ता आईडी को शामिल किया जा सकेगा. इसके लिए, यहां दी गई प्रोसेस अपनाएं.
असली उपयोगकर्ता आईडी वह स्ट्रिंग है जिसे Edge, डेवलपर आईडी के तौर पर इस्तेमाल करता है. यह डेवलपर का ईमेल पता नहीं होता. Get Developer एपीआई कॉल का इस्तेमाल करके, डेवलपर के ईमेल पते से डेवलपर का आईडी पता किया जा सकता है.
Edge को कॉन्फ़िगर करने के बाद, असली उपयोगकर्ता का यूज़र आईडी टोकन में शामिल हो जाता है. इसे app_enduser फ़ील्ड के तौर पर शामिल किया जाता है, जैसा कि यहां दिखाया गया है:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", "refresh_count" : "0" }
यूज़र आईडी और ऐप्लिकेशन आईडी के हिसाब से, OAuth 2.0 ऐक्सेस टोकन वापस पाने और रद्द करने के लिए एपीआई
यूज़र आईडी, ऐप्लिकेशन आईडी या दोनों के हिसाब से OAuth टोकन ऐक्सेस करने के लिए, इन एपीआई का इस्तेमाल करें:
- असली उपयोगकर्ता के यूज़र आईडी या ऐप्लिकेशन आईडी की मदद से, OAuth 2.0 का ऐक्सेस टोकन पाना
- असली उपयोगकर्ता के यूज़र आईडी या ऐप्लिकेशन आईडी के हिसाब से, OAuth 2.0 का ऐक्सेस टोकन रद्द करना
टोकन ऐक्सेस चालू करने की प्रोसेस
असली उपयोगकर्ता आईडी और ऐप्लिकेशन आईडी के ज़रिए, OAuth 2.0 ऐक्सेस टोकन को वापस पाने और रद्द करने की सुविधा चालू करने के लिए, यह तरीका अपनाएं.
पहला चरण: किसी संगठन के लिए, टोकन ऐक्सेस की सुविधा चालू करना
आपको हर संगठन के लिए, टोकन ऐक्सेस को अलग से चालू करना होगा. हर उस संगठन के लिए, यहां दिया गया PUT API कॉल करें जिसके लिए आपको असली उपयोगकर्ता आईडी या ऐप्लिकेशन आईडी के ज़रिए, OAuth 2.0 ऐक्सेस टोकन वापस पाने और रद्द करने की सुविधा चालू करनी है.
यह कॉल करने वाले उपयोगकर्ता के पास, संगठन के लिए orgadmin या opsadmin की भूमिका होनी चाहिए. {कर्ली ब्रैकेट} में मौजूद वैल्यू को अपने संगठन की वैल्यू से बदलें:
> curl -H "Content-type:text/xml" -X POST \ https://<ms-ip>:8080/v1/organizations/{org_name} \ -d '<Organization name="{org_name}"> <Properties> <Property name="features.isOAuthRevokeEnabled">true</Property> <Property name="features.isOAuth2TokenSearchEnabled">true</Property> </Properties> </Organization>' \ -u {userEmail}:{mypassword}
दूसरा चरण: संगठन में opsadmin की भूमिका के लिए अनुमतियां सेट करना
किसी संगठन में सिर्फ़ orgadmin और opsadmin भूमिकाओं को, यूज़र आईडी या ऐप्लिकेशन आईडी के आधार पर OAuth 2.0 टोकन वापस पाने (एचटीटीपी GET) और रद्द करने (एचटीटीपी PUT) की अनुमतियां दी जानी चाहिए. ऐक्सेस कंट्रोल करने के लिए, किसी संगठन के लिए /oauth2 रिसॉर्स पर, get और put अनुमतियां सेट करें. उस संसाधन का यूआरएल इस फ़ॉर्मैट में होता है:
https://<ms-ip>:8080/v1/organizations/{org_name}/oauth2orgadmin की भूमिका वाले उपयोगकर्ता के पास पहले से ही ज़रूरी अनुमतियां होनी चाहिए. /oauth2 रिसॉर्स के लिए opsadmin भूमिका के लिए, अनुमतियां इस तरह दिखनी चाहिए:
<ResourcePermission path="/oauth2">
<Permissions>
<Permission>get</Permission>
<Permission>put</Permission>
</Permissions>
</ResourcePermission>Get Permission for a Single Resource API कॉल का इस्तेमाल करके, यह देखा जा सकता है कि किन भूमिकाओं के पास /oauth2 संसाधन के लिए अनुमतियां हैं.
जवाब के आधार पर, Add Permissions for Resource to a Role और Delete Permission for Resource एपीआई कॉल का इस्तेमाल करके, /oauth2 संसाधन की अनुमतियों में ज़रूरी बदलाव किए जा सकते हैं.
/oauth2 संसाधन के लिए, opsadmin भूमिका को get और put अनुमतियां देने के लिए, इस cURL कमांड का इस्तेमाल करें. {curly braces} में मौजूद वैल्यू को अपने संगठन की वैल्यू से बदलें:
> curl -X POST -H 'Content-type:application/xml' \ http://<ms-ip>:8080/v1/organizations/{org}/userroles/opsadmin/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions> <Permission>get</Permission> <Permission>put</Permission> </Permissions> </ResourcePermission>' \ -u {USEREMAIL}:{PWD}
orgadmin और opsadmin के अलावा अन्य भूमिकाओं के लिए, /oauth2 रिसॉर्स से जुड़ी get और put अनुमतियां वापस लेने के लिए, यहां दिए गए cURL कमांड का इस्तेमाल करें. {कर्ली ब्रैकेट} में मौजूद वैल्यू को अपने संगठन की वैल्यू से बदलें:
> curl -X DELETE -H 'Content-type:application/xml' \ http://<msip>:8080/v1/organizations/{org-name}/userroles/{roles}/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions></Permissions> </ResourcePermission>' \ -u {USEREMAIL}:{PWD}
तीसरा चरण: oauth_max_search_limit प्रॉपर्टी सेट करना
पक्का करें कि /<inst_dir>/apigee/customer/application/management-server.properties फ़ाइल में, conf_keymanagement_oauth_max_search_limit प्रॉपर्टी को 100 पर सेट किया गया हो:
conf_keymanagement_oauth_max_search_limit = 100
अगर यह फ़ाइल मौजूद नहीं है, तो इसे बनाएं.
यह प्रॉपर्टी, टोकन फ़ेच करते समय इस्तेमाल किए जाने वाले पेज का साइज़ सेट करती है. Apigee, 100 वैल्यू सेट करने का सुझाव देता है. हालांकि, इसे अपनी ज़रूरत के हिसाब से सेट किया जा सकता है.
नए इंस्टॉलेशन पर, प्रॉपर्टी पहले से ही 100 पर सेट होनी चाहिए. अगर आपको इस प्रॉपर्टी की वैल्यू बदलनी है, तो इन कमांड का इस्तेमाल करके, मैनेजमेंट सर्वर और मैसेज प्रोसेसर को रीस्टार्ट करें:
> /<inst_rt>/apigee/apigee-service/bin/apigee-service edge-management-server restart > /<inst_rt>/apigee/apigee-service/bin/apigee-service edge-message-processor restart
चौथा चरण: OAuth 2.0 की उस नीति को कॉन्फ़िगर करना जो असली उपयोगकर्ता आईडी को शामिल करने के लिए टोकन जनरेट करती है
ऐक्सेस टोकन जनरेट करने के लिए इस्तेमाल की जाने वाली OAuth 2.0 नीति को कॉन्फ़िगर करें, ताकि टोकन में असली उपयोगकर्ता का यूज़र आईडी शामिल किया जा सके. ऐक्सेस टोकन में असली उपयोगकर्ताओं के आईडी शामिल करके, आईडी के हिसाब से टोकन वापस पाए जा सकते हैं और रद्द किए जा सकते हैं.
ऐक्सेस टोकन में असली उपयोगकर्ता का यूज़र आईडी शामिल करने के लिए, नीति को कॉन्फ़िगर करना होगा. इसके लिए, ऐक्सेस टोकन बनाने वाले अनुरोध में असली उपयोगकर्ता का यूज़र आईडी शामिल होना चाहिए. साथ ही, आपको वह इनपुट वैरिएबल बताना होगा जिसमें असली उपयोगकर्ता का यूज़र आईडी शामिल है.
यहां दी गई OAuth 2.0 नीति, GenerateAccessTokenClient, OAuth 2.0 ऐक्सेस टोकन जनरेट करती है. ध्यान दें कि बोल्ड में <AppEndUser> टैग जोड़ा गया है. इससे असली उपयोगकर्ता आईडी वाले वैरिएबल के बारे में पता चलता है:
<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient"> <DisplayName>OAuth 2.0.0 1</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>GenerateAccessToken</Operation> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> <GrantType>request.queryparam.grant_type</GrantType> <AppEndUser>request.header.appuserID</AppEndUser> <ExpiresIn>960000</ExpiresIn> </OAuthV2>
इसके बाद, OAuth 2.0 ऐक्सेस टोकन जनरेट करने के लिए, इस cURL कमांड का इस्तेमाल किया जा सकता है. इसमें यूज़र आईडी को appuserID हेडर के तौर पर पास किया जाता है:
> curl -H "appuserID:6ZG094fgnjNf02EK" \ https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials \ -X POST \ -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNXFmP&client_secret=gk5K5lIp943AY4'
इस उदाहरण में, appuserID को अनुरोध के हेडर के तौर पर पास किया गया है. अनुरोध के हिस्से के तौर पर, कई तरीकों से जानकारी भेजी जा सकती है. उदाहरण के लिए, विकल्प के तौर पर ये काम किए जा सकते हैं:
- फ़ॉर्म पैरामीटर वैरिएबल का इस्तेमाल करें: request.formparam.appuserID
- असली उपयोगकर्ता का यूज़र आईडी देने वाले फ़्लो वैरिएबल का इस्तेमाल करना