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

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

  • Apigee hybrid

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

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

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

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

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

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

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

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

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

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

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
  • असली उपयोगकर्ता का आईडी देने वाले फ़्लो वैरिएबल का इस्तेमाल करें