यूज़र आईडी और ऐप्लिकेशन आईडी के साथ OAuth 2.0 टोकन का ऐक्सेस चालू करें

Edge for Private Cloud v4.19.01

इस दस्तावेज़ में बताया गया है कि 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 डेवलपर आईडी के तौर पर करता है, न कि डेवलपर के ईमेल के तौर पर इससे पहले ही अपने कारोबार के हिसाब से name@yourcompany.com जैसा कोई ईमेल पता बनाएं. आप पाएं का उपयोग करके डेवलपर के ईमेल पते से डेवलपर का आईडी पता कर सकते हैं डेवलपर एपीआई कॉल.

टोकन में असली यूज़र आईडी को शामिल करने के लिए 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 ऐक्सेस टोकन को वापस पाने और रद्द करने की सुविधा चालू करें असली यूज़र आईडी और ऐप्लिकेशन आईडी.

पहला चरण: किसी संगठन के लिए, टोकन ऐक्सेस करने की सुविधा चालू करें

आपको हर संगठन के लिए, टोकन का ऐक्सेस अलग से चालू करना होगा. हर एक के लिए नीचे PUT API को कॉल करें वह संगठन जिसके लिए आपको OAuth 2.0 ऐक्सेस टोकन को वापस पाने और रद्द करने की सुविधा चालू करनी है को असली यूज़र आईडी या ऐप्लिकेशन आईडी से जोड़ा जा सकता है.

नीचे दिए गए कॉल करने वाले उपयोगकर्ता को संगठन एडमिन की भूमिका में होना चाहिए या संगठन के लिए opsadmin. values को अपने संगठन के खास आईडी से बदलें मान:

curl -H "Content-type:text/xml" -X POST \
  https://management_server_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 USER_EMAIL:PASSWORD

कदम 2: संगठन में ऑपरेशन एडमिन की भूमिका के लिए अनुमतियां सेट करें

संगठन में सिर्फ़ orgadmin और opsadmin की भूमिका को फिर से पाने (एचटीटीपी जीईटी) और (एचटीटीपी PUT) OAuth 2.0 टोकन वापस पाने के लिए अनुमतियां दी जानी चाहिए यूज़र आईडी या ऐप्लिकेशन आईडी पर होता है. ऐक्सेस कंट्रोल करने के लिए, 'पाने वाला' सेट करें और इसके लिए /oauth2 संसाधन पर अनुमतियां डालें एक संगठन. उस संसाधन का यूआरएल इस तरह का होता है:

https://management_server_IP:8080/v1/organizations/org_name/oauth2

orgadmin भूमिका में पहले से ही ज़रूरी अनुमतियां होनी चाहिए. /oauth2 संसाधन के लिए opsadmin भूमिका, अनुमतियां इसके जैसी दिखनी चाहिए शामिल करें:

<ResourcePermission path="/oauth2">
  <Permissions>
    <Permission>get</Permission>
    <Permission>put</Permission>
  </Permissions>
</ResourcePermission>

आप सिंगल रिसॉर्स एपीआई कॉल की अनुमति, ताकि यह देखा जा सके कि किन भूमिकाओं के पास /oauth2 संसाधन.

जवाब के आधार पर, आप जोड़ें भूमिका के लिए संसाधन की अनुमतियां और /oauth2 में ज़रूरी बदलाव करने के लिए, Resource एपीआई कॉल की अनुमति मिटाएं संसाधन अनुमतियां चुनें.

opsadmin की भूमिका असाइन करने के लिए, नीचे दिया गया curl निर्देश इस्तेमाल करें /oauth2 संसाधन के लिए get और put अनुमतियां. बदलें values को संगठन के लिए तय की गई वैल्यू के साथ फिर से इस्तेमाल करें:

curl -X POST -H 'Content-type:application/xml' \
  http://management_server_IP:8080/v1/organizations/org_name/userroles/opsadmin/permissions \
  -d '<ResourcePermission path="/oauth2">
      <Permissions>
        <Permission>get</Permission>
        <Permission>put</Permission>
      </Permissions>
    </ResourcePermission>' \
  -u USEREMAIL:PASSWORD

get और put को निरस्त करने के लिए, इस curl निर्देश का इस्तेमाल करें के अलावा अन्य भूमिकाओं से /oauth2 संसाधन के लिए अनुमतियां orgadmin और opsadmin. values को अपने संगठन के हिसाब से वैल्यू:

curl -X DELETE -H 'Content-type:application/xml' \
  http://management_server_IP:8080/v1/organizations/org_name/userroles/roles/permissions \
  -d '<ResourcePermission path="/oauth2">
      <Permissions></Permissions>
    </ResourcePermission>' \
   -u USEREMAIL:PASSWORD

तीसरा चरण: सेट करें oauth_max_search_limit प्रॉपर्टी

पक्का करें कि conf_keymanagement_oauth_max_search_limit /opt/apigee/customer/application/management-server.properties में प्रॉपर्टी फ़ाइल 100 पर सेट है:

conf_keymanagement_oauth_max_search_limit = 100

अगर यह फ़ाइल मौजूद नहीं है, तो इसे बनाएं.

यह प्रॉपर्टी, टोकन फ़ेच करते समय इस्तेमाल किए जाने वाले पेज का साइज़ सेट करती है. Apigee, 100 की वैल्यू का सुझाव देता है, लेकिन आप अपने हिसाब से इसे सेट कर सकते हैं.

नए इंस्टॉलेशन में, प्रॉपर्टी पहले से ही 100 पर सेट होनी चाहिए. अगर आपको मान है, तो आदेश:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
/opt/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
  • असली यूज़र आईडी देने वाले फ़्लो वैरिएबल का इस्तेमाल करें