'पासवर्ड देने का तरीका' लागू करना

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

रिसॉर्स के मालिक का पासवर्ड (या "पासवर्ड") अनुदान टाइप का इस्तेमाल ज़्यादातर उन मामलों में किया जाता है जहां ऐप्लिकेशन पर बहुत ज़्यादा भरोसा किया जा सकता हो. इस कॉन्फ़िगरेशन में, उपयोगकर्ता क्लाइंट ऐप्लिकेशन को अपने रिसॉर्स सर्वर के क्रेडेंशियल (उपयोगकर्ता नाम/पासवर्ड) उपलब्ध कराता है, जो उन्हें Apigee Edge को ऐक्सेस टोकन अनुरोध के तौर पर भेजता है. आइडेंटिटी सर्वर क्रेडेंशियल की पुष्टि करता है. अगर वे मान्य हैं, तो Edge, ऐक्सेस टोकन को मिंट करता है और उसे ऐप्लिकेशन पर लौटाता है.

इस विषय के बारे में

इस विषय में, OAuth 2.0 में रिसॉर्स के मालिक के लिए पासवर्ड इस्तेमाल करने के तरीके की सामान्य जानकारी और खास जानकारी उपलब्ध कराई गई है. साथ ही, इस फ़्लो को Apigee Edge पर लागू करने के तरीके के बारे में बताया गया है.

वे उदाहरण जो आपके काम के हो सकते हैं

  • ऐक्सेसटोकन का अनुरोध करना: पासवर्ड पाने का टाइप: इसमें यह जानकारी मिलती है कि टोकन का अनुरोध कैसे करें. साथ ही, इसमें पासवर्ड पाने के टाइप के लिए OAuthV2 नीति को कॉन्फ़िगर करने और Edge में नीति के लिए एंडपॉइंट को कॉन्फ़िगर करने का तरीका दिखाया गया है.
  • oauth-verification-key-secret: GitHub में एक सैंपल प्रॉक्सी, जिसे आप Edge पर डिप्लॉय करके आज़मा सकते हैं. यह पासवर्ड देने के टाइप का एंड-टू-एंड उदाहरण है. इस तरीके में, सबसे सही तरीके के बारे में बताया जाता है. इसका मतलब है कि किसी आइडेंटिटी प्रोवाइडर को उपयोगकर्ता के क्रेडेंशियल भेजने से पहले, क्लाइंट ऐप्लिकेशन के क्रेडेंशियल (कुंजी/सीक्रेट) की पुष्टि की जाए.

वीडियो

वीडियो: पासवर्ड देने के टाइप को लागू करने से जुड़ा यह वीडियो देखें.

इस्तेमाल के उदाहरण

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

फ़्लो डायग्राम

नीचे दिए गए फ़्लो डायग्राम में दिखाया गया है कि रिसॉर्स के मालिक को पासवर्ड डालने का टाइप किस तरह का है. इसमें Apigee Edge को ऑथराइज़ेशन सर्वर के तौर पर दिखाया जा रहा है.

सलाह: इस डायग्राम का बड़ा वर्शन देखने के लिए, इस पर राइट क्लिक करें और इसे नए टैब में खोलें. इसके अलावा, इसे सेव करके इमेज व्यूअर में भी खोला जा सकता है.

पासवर्ड देने के तरीके के फ़्लो के चरण

यहां पासवर्ड देने के तरीके को लागू करने के लिए ज़रूरी चरणों के बारे में खास जानकारी दी गई है. यहां Apigee Edge ऑथराइज़ेशन सर्वर के तौर पर काम करता है.

ज़रूरी शर्तें: क्लाइंट आईडी और क्लाइंट सीक्रेट कुंजियां पाने के लिए, क्लाइंट ऐप्लिकेशन को Apigee Edge के साथ रजिस्टर होना ज़रूरी है. ज़्यादा जानकारी के लिए, क्लाइंट ऐप्लिकेशन रजिस्टर करना देखें.

1. उपयोगकर्ता, फ़्लो शुरू करता है और क्रेडेंशियल डालता है

जब ऐप्लिकेशन को उपयोगकर्ता के सुरक्षित संसाधनों को ऐक्सेस करने की ज़रूरत होती है (जैसे, उपयोगकर्ता ऐप्लिकेशन में किसी बटन पर क्लिक करता है), तब उपयोगकर्ता को लॉगिन फ़ॉर्म पर रीडायरेक्ट कर दिया जाता है.

2. ऐप्लिकेशन Apigee Edge से ऐक्सेस टोकन का अनुरोध करता है

ऐप्लिकेशन, Apigee Edge पर generateAccessToken एंडपॉइंट पर, ऐक्सेस टोकन का अनुरोध भेजता है. इसमें उपयोगकर्ता के क्रेडेंशियल भी शामिल होते हैं.

यहां POST अनुरोध का एक नमूना दिया गया है, जिसमें इस अनुदान प्रकार के लिए ज़रूरी पैरामीटर शामिल हैं:

$ curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \
  -d 'grant_type=password&username=the-user-name&password=the-users-password' \
  https://docs-test.apigee.net/oauth/token

इसके अलावा, यह निर्देश नीचे दिए गए तरीके से भी किया जा सकता है. इसके लिए, -u विकल्प का इस्तेमाल करके कर्ल करें, ताकि आपके लिए base64 कोड में बदला गया बुनियादी पुष्टि करने वाला हेडर बनाया जा सके.

$ curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -u sqH8ooHexTz8C02IX9ORo6rhgq1iSrAl:Z4ljtJdneBOjPMAU \
  -d 'grant_type=password&username=the-user-name&password=the-users-password' \
  https://docs-test.apigee.net/oauth/token

(उन सभी निर्देश एक ही लाइन में होने चाहिए.)

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

3. Edge क्लाइंट ऐप्लिकेशन की पुष्टि करता है

किसी आइडेंटिटी प्रोवाइडर को उपयोगकर्ता का उपयोगकर्ता नाम और पासवर्ड भेजने से पहले, Edge को यह पता होना चाहिए कि अनुरोध करने वाला क्लाइंट ऐप्लिकेशन, मान्य और भरोसेमंद ऐप्लिकेशन है. एपीआई कॉल पर एपीआई पासकोड की पुष्टि करने की सुविधा का इस्तेमाल करने का एक तरीका यह है. कुछ मामलों में, हो सकता है कि आप क्लाइंट कुंजी और सीक्रेट, दोनों की पुष्टि करना चाहें. यहां एक सैंपल प्रॉक्सी है, जो GitHub पर api-platform-samples रिपॉज़िटरी में इस ऐलटर्नेट तकनीक को दिखाता है.

4. Edge, लॉगिन क्रेडेंशियल को प्रोसेस करता है

क्लाइंट ऐप्लिकेशन की पुष्टि होने के बाद, उपयोगकर्ता के क्रेडेंशियल भेजकर, आइडेंटिटी सेवा को कॉल करने के लिए, सेवा कॉलआउट या JavaScript की नीति का इस्तेमाल किया जा सकता है. उदाहरण के लिए, यह कोई LDAP सेवा या ऐसी कोई सेवा हो सकती है जिसका इस्तेमाल आपको क्रेडेंशियल की पुष्टि करने के लिए करना है. इन नीतियों के बारे में जानने के लिए, वैरिएबल एक्सट्रैक्ट करने से जुड़ी नीति और JavaScript की नीति देखें.

अगर आइडेंटिटी सेवा क्रेडेंशियल की पुष्टि करती है और 200 रिस्पॉन्स दिखाती है, तो Edge अनुरोध को प्रोसेस करना जारी रखेगा. ऐसा न होने पर, Edge प्रोसेस करना बंद कर देता है और क्लाइंट ऐप्लिकेशन को गड़बड़ी दिखाता है.

5. OAuthV2 नीति लागू करती है

अगर क्रेडेंशियल मान्य हैं, तो प्रोसेस करने के अगले चरण में, पासवर्ड देने के टाइप के लिए कॉन्फ़िगर की गई OAuthV2 नीति लागू की जाएगी. यहां एक उदाहरण दिया गया है. <UserName> और <PassWord> एलिमेंट की ज़रूरत होती है. साथ ही, उन्हें एक्सट्रैक्ट वैरिएबल नीति के साथ सेव किए गए फ़्लो वैरिएबल से वापस लाया जा सकता है. इस नीति के बारे में ज़्यादा जानकारी के लिए, OAuthV2 नीति देखें.

<OAuthV2 name="GetAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>360000000</ExpiresIn> 
  <SupportedGrantTypes> 
     <GrantType>password</GrantType> 
  </SupportedGrantTypes> 
  <GrantType>request.queryparam.grant_type</GrantType> 
  <UserName>login</UserName>
  <PassWord>password</PassWord>
  <GenerateResponse/> 
</OAuthV2>

इस नीति के लागू होने पर, ऐक्सेस टोकन वाले क्लाइंट को रिस्पॉन्स वापस जनरेट किया जाता है. रिस्पॉन्स, JSON फ़ॉर्मैट में है. यहां एक उदाहरण दिया गया है. ध्यान दें कि access_token इनमें से एक एलिमेंट है:

{
    "issued_at": "1420258685042",
    "scope": "READ",
    "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b",
    "refresh_token_issued_at": "1420258685042",
    "status": "approved",
    "refresh_token_status": "approved",
    "api_product_list": "[PremiumWeatherAPI]",
    "expires_in": "1799",
    "developer.email": "tesla@weathersample.com",
    "organization_id": "0",
    "token_type": "BearerToken",
    "refresh_token": "IFl7jlijYuexu6XVSSjLMJq8SVXGOAAq",
    "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT",
    "access_token": "I6daIgMSiUgYX1K2qgQWPi37ztS6",
    "organization_name": "docs",
    "refresh_token_expires_in": "0",
    "refresh_count": "0"
}

6. क्लाइंट, सुरक्षित एपीआई को कॉल करता है

अब क्लाइंट, मान्य ऐक्सेस कोड की मदद से सुरक्षित एपीआई को कॉल कर सकता है. इस स्थिति में, Apigee Edge (प्रॉक्सी) को अनुरोध किए जाते हैं और टारगेट रिसॉर्स सर्वर के साथ एपीआई कॉल को पास करने से पहले, ऐक्सेस टोकन की पुष्टि करने के लिए Edge की ज़िम्मेदारी होती है. ऐक्सेस टोकन, ऑथराइज़ेशन हेडर में पास किए जाते हैं. उदाहरण के लिए:

$ curl -H "Authorization: Bearer I6daIgMSiUgYX1K2qgQWPi37ztS6
" http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282