असली उपयोगकर्ता आईडी, ऐप्लिकेशन आईडी या दोनों के ज़रिए 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 संसाधन की अनुमतियां देना

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

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

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

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

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

चौथा चरण: अपने मैनेजमेंट सर्वर और मैसेज प्रोसेसर में oauth_max_search_limit प्रॉपर्टी जोड़ना

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

Apigee Edge की सहायता टीम से संपर्क करें, ताकि वह यह जोड़ सके.

पांचवां चरण: ऐसे ऐक्सेस टोकन जनरेट करने के लिए OAuth 2.0 नीति कॉन्फ़िगर करें जिनमें असली यूज़र आईडी शामिल हों

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

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

नीचे दी गई OAuth 2.0 नीति, OAuth 2.0 ऐक्सेस टोकन जनरेट करती है. इस नीति का नाम GenerateAccessTokenClient नाम का होता है. <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>

इसके बाद, इस cURL कमांड का इस्तेमाल करके, OAuth 2.0 ऐक्सेस टोकन जनरेट किया जा सकता है. साथ ही, User-ID को 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
  • असली यूज़र आईडी देने वाले फ़्लो वैरिएबल का इस्तेमाल करें