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

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

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

असली उपयोगकर्ता के आईडी का ऐक्सेस कब चालू करें

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

  • आपकी वेबसाइट या ऐप्लिकेशन के लिए एक सुविधा, जहां उपयोगकर्ता यह देख सकते हैं कि उन्होंने तीसरे पक्ष के किन ऐप्लिकेशन को अनुमति दी है. साथ ही, उन ऐप्लिकेशन का ऐक्सेस वापस लेने का विकल्प भी दिया जा सकता है.
  • यह एक ऐसी सुविधा है जिसकी मदद से, अनुमति पा चुके उपयोगकर्ता किसी खास डेवलपर ऐप्लिकेशन से जुड़े सभी ऐक्सेस टोकन रद्द कर सकते हैं.

OAuth ऐक्सेस टोकन के बारे में जानकारी

ऐप्लिकेशन आईडी, 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", //--in seconds
 "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", //--in seconds
 "refresh_count" : "0"
}

निम्न पर ध्यान दें:

  • application_name फ़ील्ड में, टोकन से जुड़े ऐप्लिकेशन का यूयूआईडी होता है. अगर आपने ऐप्लिकेशन आईडी के हिसाब से, OAuth 2.0 ऐक्सेस टोकन को वापस पाने और रद्द करने की सुविधा चालू की है, तो इसका मतलब है कि आपने इस ऐप्लिकेशन आईडी का इस्तेमाल किया है.
  • access_token फ़ील्ड में, OAuth 2.0 ऐक्सेस टोकन की वैल्यू होती है.

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

टोकन बनाने वाले एंडपॉइंट में, असली उपयोगकर्ता का आईडी डाला जाता है. असली उपयोगकर्ता का आईडी, क्वेरी पैरामीटर, फ़ॉर्म पैरामीटर या हेडर के तौर पर पास किया जा सकता है. इस बारे में इस विषय में आगे बताया गया है. टोकन में असली उपयोगकर्ता का आईडी शामिल करने के लिए 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", //--in seconds
 "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", //--in seconds
 "refresh_count" : "0"
}

इन एपीआई कॉल को बनाने का तरीका जानने के लिए, यहां दिए गए स्मार्ट दस्तावेज़ देखें:

उपयोगकर्ता आईडी और ऐप्लिकेशन आईडी के हिसाब से, OAuth 2.0 टोकन का ऐक्सेस चालू करना

उपयोगकर्ता आईडी और ऐप्लिकेशन आईडी के हिसाब से, OAuth 2.0 टोकन का ऐक्सेस कैसे चालू किया जाता है, यह इस बात पर निर्भर करता है कि आपने Edge को कैसे डिप्लॉय किया है:

  • क्लाउड-आधारित डिप्लॉयमेंट

    Edge को क्लाउड पर डिप्लॉय करने का मतलब है कि ज़्यादातर कॉन्फ़िगरेशन, Apigee मैनेज करता है. ऐक्सेस टोकन में उपयोगकर्ता आईडी जोड़ने के लिए, सिर्फ़ OAuth 2.0 नीति को कॉन्फ़िगर करने की ज़िम्मेदारी आपकी है. ज़्यादा जानकारी के लिए, नीचे दिया गया तरीका देखें.

  • निजी क्लाउड डिप्लॉयमेंट के लिए Edge

    Private Cloud (ऑन-प्राइमिस) के लिए Apigee Edge में, कॉन्फ़िगरेशन की पूरी ज़िम्मेदारी आपकी होती है. ज़्यादा जानकारी के लिए, ऑपरेशंस और कॉन्फ़िगरेशन लेख पढ़ें.

  • Apigee हाइब्रिड

    उपयोगकर्ता आईडी के ज़रिए OAuth 2.0 टोकन का ऐक्सेस, डिफ़ॉल्ट रूप से चालू होता है. ऐक्सेस टोकन में उपयोगकर्ता आईडी जोड़ने के लिए, सिर्फ़ OAuth 2.0 नीति को कॉन्फ़िगर करने की ज़िम्मेदारी आपकी है. ज़्यादा जानकारी के लिए, यहां दिया गया पांचवां चरण देखें.

क्लाउड में ऐक्सेस चालू करना

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

यह सुविधा हर उस संगठन के लिए चालू होनी चाहिए जिसके लिए आपको यह सुविधा चालू करनी है.

अपने संगठन की जानकारी अपडेट करने के लिए, Apigee Edge की सहायता टीम से संपर्क करें.

दूसरा चरण: opsadmin और orgadmin भूमिकाओं को oauth2 संसाधन की अनुमतियां देना

सिर्फ़ orgadmin और opsadmin भूमिकाओं को, oauth2 संसाधन को ऐक्सेस करने (get) और ऐक्सेस रद्द करने (put) की अनुमतियां दी जानी चाहिए. यह अनुमति, उपयोगकर्ता आईडी या ऐप्लिकेशन आईडी के आधार पर दी जानी चाहिए.

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

अगर आपको कोई अनुमति जोड़नी है या हटानी है, तो Apigee Edge की सहायता टीम से संपर्क करें, ताकि वे अपडेट कर सकें.

तीसरा चरण: अपने Cassandra नोड में मौजूदा OAuth 2.0 ऐक्सेस टोकन कॉपी करना

Apigee की सहायता टीम की ओर से किया गया: इस टास्क में, जिन संगठनों पर असर पड़ा है उनमें मौजूद OAuth 2.0 ऐक्सेस टोकन की कॉपी को कॉपी करके, आपके Cassandra नोड में सेव किया जाएगा. यह प्रोसेस, आपके हर Apigee Edge पॉड के लिए Cassandra नोड पर की जाएगी. इससे, आपके सभी OAuth 2.0 ऐक्सेस टोकन, मौजूदा और नए जनरेट किए गए टोकन के लिए, एपीआई कॉल को फिर से पाने और रद्द करने की अनुमति मिलेगी.

चौथा चरण: असली उपयोगकर्ता आईडी वाले ऐक्सेस टोकन जनरेट करने के लिए, OAuth 2.0 की नीति कॉन्फ़िगर करना

ऐक्सेस टोकन जनरेट करने के लिए इस्तेमाल की जाने वाली OAuth 2.0 नीति को कॉन्फ़िगर करें, ताकि टोकन में असली उपयोगकर्ता आईडी शामिल किया जा सके. ऐक्सेस टोकन में असली उपयोगकर्ता आईडी शामिल करने पर, असली उपयोगकर्ता आईडी के हिसाब से ऐक्सेस वापस पाया जा सकता है और उसे रद्द किया जा सकता है.

ऐक्सेस टोकन में असली उपयोगकर्ता आईडी शामिल करने के लिए, नीति को कॉन्फ़िगर करने के लिए, आपको वह इनपुट वैरिएबल बताना होगा जिसमें असली उपयोगकर्ता आईडी शामिल है. वैरिएबल की जानकारी देने के लिए, <AppEndUser> टैग का इस्तेमाल करें.

यहां दी गई 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=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'

इस उदाहरण में, appuserID को अनुरोध हेडर के तौर पर पास किया गया है. अनुरोध के हिस्से के तौर पर, जानकारी को कई तरीकों से पास किया जा सकता है. उदाहरण के लिए, इसके बजाय:

  • फ़ॉर्म पैरामीटर वैरिएबल का इस्तेमाल करें: request.formparam.appuserID
  • असली उपयोगकर्ता का आईडी देने वाले फ़्लो वैरिएबल का इस्तेमाल करना