OAuth

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

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

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

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

आपके लिए डिफ़ॉल्ट OAuth कॉन्फ़िगरेशन संगठन

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

Edge Developer Services का इस्तेमाल करने वाले ऐप्लिकेशन के लिए क्रेडेंशियल जारी करने के बारे में ज़्यादा जानने के लिए, यहां जाएं ऐप्लिकेशन रजिस्टर करें और पासकोड मैनेज करें.

इस कारण से, उसे 'स्टेप अप' करना अधिक आसान है एपीआई पासकोड से ली गई, एपीआई सुरक्षा स्कीम OAuth क्लाइंट क्रेडेंशियल की पुष्टि. दोनों स्कीम, क्लाइंट ऐप्लिकेशन की पुष्टि करेंगे. अंतर यह है कि क्लाइंट क्रेडेंशियल नहीं, क्योंकि ज़रूरत पड़ने पर ऐक्सेस टोकन को आसानी से रद्द किया जा सकता है. इसके लिए, आपको रद्द करने की ज़रूरत नहीं होती उपयोगकर्ता कुंजी को कॉपी करें. डिफ़ॉल्ट OAuth एंडपॉइंट के साथ काम करने के लिए, किसी भी उपभोक्ता कुंजी का इस्तेमाल किया जा सकता है और टोकन से ऐक्सेस टोकन पाने के लिए, आपके संगठन में ऐप्लिकेशन के लिए जनरेट किया गया सीक्रेट एंडपॉइंट का इस्तेमाल करें. (आपके पास उन ऐप्लिकेशन के लिए क्लाइंट क्रेडेंशियल भी चालू करने की सुविधा होती है जिनमें पहले से ही उपभोक्ता कुंजियां मौजूद होती हैं और secrets.)

क्लाइंट क्रेडेंशियल की अनुमति से जुड़ी पूरी जानकारी OAuth 2.0 में देखी जा सकती है खास जानकारी.

नीति की मदद से अपने एपीआई को सुरक्षित रखें

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

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

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

अगर आपको एपीआई प्रॉक्सी के लिए ऐक्सेस टोकन की पुष्टि करने की सुविधा चालू करनी है, तो जो पहले से मौजूद है, तो आपको बस उस API में OAuthV2 प्रकार की नीति अटैच करनी है को सुरक्षित रखना है. OAuthV2 नीतियां, किसी ऑपरेशन को तय करके काम करती हैं. अगर आपको ऐक्सेस टोकन की पुष्टि करने के लिए, आपको VerifyAccessToken नाम की कार्रवाई तय करनी होगी. (अन्य तरह के ऑपरेशन जिन्हें OAuthV2 नीति टाइप का इस्तेमाल करने के लिए, generateAccessToken और CreateRefreshToken का इस्तेमाल किया जाता है. सेट अप करते समय, आपको उन कार्रवाइयों के बारे में जानकारी मिलेगी OAuth एंडपॉइंट.)

VerifyOAuthTokens नीति OAuthV2 टाइप

ऐक्सेस टोकन की पुष्टि करने की नीति का उदाहरण यहां दिया गया है. (सेटिंग नीचे दी गई टेबल में बताया गया है.)

<OAuthV2 name="VerifyOAuthTokens">
  <Operation>VerifyAccessToken</Operation>
</OAuthV2>

नीति सेटिंग

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

मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में इस नीति को बनाने के लिए, एपीआई > एपीआई प्रॉक्सी.

एपीआई प्रॉक्सी की सूची में से, weatherapi चुनें.

weatherapi की खास जानकारी से, डेवलप करें चुनें व्यू.

ड्रॉप-डाउन मेन्यू से, नई नीति > OAuth v2.0

OAuth v2.0 नीति चुनने के बाद, नई नीति का कॉन्फ़िगरेशन मेन्यू दिखाएगा.

अपनी नीति को कोई जानकारी देने वाला नाम दें और नीति अटैच करें चुनना न भूलें. नीति अटैचमेंट की सेटिंग के तौर पर, Flow PreFlow और अनुरोध करें.

जोड़ें चुनें. इसके बाद, नीति बनाई जाती है और weatherapi के अनुरोध से अटैच की जाती है प्रीफ़्लो.

नीति जोड़ने के बाद, नीचे दिया गया PreFlow कॉन्फ़िगरेशन का अनुरोध डिज़ाइनर पैनल.

अगर स्थानीय तौर पर किसी टेक्स्ट एडिटर या IDE में काम किया जा रहा है, तो आपको अटैच करना होगा आपको जिस एपीआई प्रॉक्सी को सुरक्षित रखना है उसके PreFlow के अनुरोध के लिए नीति:

<PreFlow>
  <Request>
    <Step><Name>VerifyOAuthTokens</Name></Step>
  </Request>
</PreFlow>

PreFlow के अनुरोध में नीति को अटैच करने पर, यह पक्का किया जाता है कि यह नीति हमेशा लागू हो सभी अनुरोध मैसेज पर.

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

सुरक्षित किए गए किसी खाते को ऐक्सेस करने के लिए, ऐक्सेस टोकन का इस्तेमाल करना संसाधन

अब weatherapi को OAuth 2.0 की मदद से सुरक्षित कर लिया गया है, इसलिए ऐप्लिकेशन को इस्तेमाल करने के लिए ऐक्सेस टोकन देना होगा एपीआई को चुनें. सुरक्षित संसाधन को ऐक्सेस करने के लिए, ऐप्लिकेशन अनुरोध में ऐक्सेस टोकन के तौर पर "अनुमति" एचटीटीपी हेडर इस तरह से दिखेगा:

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

एपीआई में OAuthV2 नीति लागू होने की वजह से, Apigee Edge इस बात की पुष्टि करेगा कि ऐक्सेस टोकन दिखाई गई वैल्यू मान्य है. इसके बाद, यह एपीआई को ऐक्सेस देता है और ऐप्लिकेशन को मौसम की रिपोर्ट दिखाता है जिसने अनुरोध किया.

हालांकि, ऐप्लिकेशन को ऐक्सेस टोकन कैसे मिलते हैं? इसके बारे में हम अगले सेक्शन में बताएंगे.

किसी ऐक्सेस टोकन

ऐप्लिकेशन, टोकन के साथ अपनी उपभोक्ता कुंजी/सीक्रेट पेयर शेयर करके, ऐक्सेस टोकन हासिल करते हैं एंडपॉइंट के बीच में खुलेगा. टोकन एंडपॉइंट को एपीआई प्रॉक्सी में कॉन्फ़िगर किया गया है oauth. इसलिए, ऐप्लिकेशन को oauth एपीआई से दिख रहे एपीआई को कॉल करना होगा प्रॉक्सी के ज़रिए ऐक्सेस टोकन पाने के लिए. ऐप्लिकेशन में ऐक्सेस टोकन होने के बाद, यह weatherapi को कॉल कर सकता है ऐक्सेस टोकन की समयसीमा खत्म होने या ऐक्सेस टोकन के निरस्त होने तक लगातार अपडेट देते रहते हैं.

अब आपको खुद को एक ऐप्लिकेशन डेवलपर के रूप में देखने के लिए और तैयारी करनी होगी. आप weatherapi पर उपलब्ध है, इसलिए आपको अपने ऐप्लिकेशन के लिए ऐक्सेस टोकन लेना होगा. सबसे पहले आपको यह काम करना होगा उपभोक्ता कुंजी और सीक्रेट जोड़ा पाएँ (अन्यथा इसे API कहा जाता है या 'ऐप्लिकेशन कुंजी').

आप Apigee पर अपने संगठन में ऐप्लिकेशन को रजिस्टर करके, उपभोक्ता कुंजी और सीक्रेट पा सकते हैं किनारे.

Apigee Edge के मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में, अपने संगठन के सभी ऐप्लिकेशन देखे जा सकते हैं.

यहां आपके संगठन में रजिस्टर किए गए ऐप्लिकेशन की सूची दिखेगी.

अगर कोई ऐप्लिकेशन नहीं दिखता है, तो ऐप्लिकेशन रजिस्टर करें और एपीआई मैनेज करें' विषय में, अपने ऐप्लिकेशन को रजिस्टर करने का तरीका जानें कुंजियां.)

किसी ऐप्लिकेशन की पूरी प्रोफ़ाइल देखने के लिए, उसे सूची में से चुनें.

चुने गए ऐप्लिकेशन के ज़्यादा जानकारी वाले व्यू में, उपभोक्ता कुंजी के फ़ील्ड नोट करें और उपभोक्ता की सीक्रेट. ये दो मान क्लाइंट क्रेडेंशियल, जिनका इस्तेमाल OAuth ऐक्सेस टोकन पाने के लिए किया जाएगा.

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps \
-u myname:mypass

यह कॉल, ऐप्लिकेशन आईडी के हिसाब से ऐप्लिकेशन की सूची दिखाता है.

[ "da496fae-2a04-4a5c-b2d0-709278a6f9db", "50e3e831-175b-4a05-8fb6-05a54701af6e" ]

ऐप्लिकेशन आईडी पर आसान से GET कॉल करके ऐप्लिकेशन की प्रोफ़ाइल वापस पाई जा सकती है:

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps/{app_id} \
-u myname:mypass

उदाहरण के लिए:

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps/da496fae-2a04-4a5c-b2d0-709278a6f9db \
-u myname:mypass

एपीआई कॉल, आपके बताए गए ऐप्लिकेशन की प्रोफ़ाइल दिखाता है. उदाहरण के लिए, Weatherapp में यह JSON फ़ॉर्मैट मौजूद है:

{
  "accessType" : "read",
  "apiProducts" : [ ],
  "appFamily" : "default",
  "appId" : "da496fae-2a04-4a5c-b2d0-709278a6f9db",
  "attributes" : [ ],
  "callbackUrl" : "http://weatherapp.com",
  "createdAt" : 1380290158713,
  "createdBy" : "noreply_admin@apigee.com",
  "credentials" : [ {
    "apiProducts" : [ {
      "apiproduct" : "PremiumWeatherAPI",
      "status" : "approved"
    } ],
    "attributes" : [ ],
    "consumerKey" : "bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K",
    "consumerSecret" : "hAr4Gn0gA9vAyvI4",
    "expiresAt" : -1,
    "issuedAt" : 1380290161417,
    "scopes" : [ ],
    "status" : "approved"
  } ],
  "developerId" : "5w95xGkpnjzJDBT4",
  "lastModifiedAt" : 1380290158713,
  "lastModifiedBy" : "noreply_admin@apigee.com",
  "name" : "weatherapp",
  "scopes" : [ ],
  "status" : "approved"
}

consumerKey और consumerSecret की वैल्यू नोट करें. आप इनका इस्तेमाल करते हैं ऐक्सेस टोकन पाने के लिए क्रेडेंशियल एक एचटीटीपी अनुरोध है, जैसा कि नीचे दिखाया गया है. अनुमति के टाइप को अनुरोध में क्वेरी पैरामीटर के तौर पर दिखाया जाता है. (अपने संगठन का नाम दिखाने के लिए, वैरिएबल {org_name} की वैल्यू बदलना न भूलें Apigee Edge पर उपलब्ध है.)

ऐक्सेस टोकन पाने के लिए अनुरोध तैयार करना

नीचे दिए गए अनुरोध में, इसके लिए अपने consumerKey का मान बदलें client_id. इसके लिए, जुड़े हुए consumerSecret की वैल्यू को बदलें client_secret.

$ curl https://{org_name}-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials -X POST -d 'client_id=bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K&client_secret=hAr4Gn0gA9vAyvI4'

API सेवाएं उपभोक्ता कुंजी और सीक्रेट की पुष्टि करती हैं और फिर इस ऐप्लिकेशन के लिए ऐक्सेस टोकन:

{
  "issued_at" : "1380892555397",
  "application_name" : "957aa73f-25c2-4ead-8021-adc01f0d2c6b",
  "scope" : "",
  "status" : "approved",
  "api_product_list" : "[oauth-test]",
  "expires_in" : "3599",
  "developer.email" : "tesla@weathersample.com",
  "organization_id" : "0",
  "client_id" : "bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K",
  "access_token" : "ylSkZIjbdWybfs4fUQe9BqP0LH5Z",
  "organization_name" : "rqa",
  "refresh_token_expires_in" : "0",
  "refresh_count" : "0"
}

ऊपर दिए गए जवाब में access_token वैल्यू नोट करें. यह ऐसा ऐक्सेस टोकन है ऐप्लिकेशन, सुरक्षित संसाधनों का रनटाइम ऐक्सेस पाने के लिए इसका इस्तेमाल करेगा. इस ऐप्लिकेशन के लिए यह ऐक्सेस टोकन है ylSkZIjbdWybfs4fUQe9BqP0LH5Z.

अब आपके पास मान्य ऐक्सेस टोकन, ylSkZIjbdWybfs4fUQe9BqP0LH5Z मौजूद है. इसका इस्तेमाल किया जा सकता है सुरक्षित एपीआई ऐक्सेस करने के लिए.

डिफ़ॉल्ट OAuth कॉन्फ़िगरेशन के साथ काम करना

Apigee Edge पर मौजूद हर संगठन (यहां तक कि मुफ़्त में आज़माने की सुविधा देने वाला संगठन) में OAuth टोकन का प्रावधान किया जाता है एंडपॉइंट का इस्तेमाल करें. एंडपॉइंट को एपीआई प्रॉक्सी में नीतियों के साथ पहले से कॉन्फ़िगर किया गया है oauth. खाता बनाने के तुरंत बाद, टोकन एंडपॉइंट का इस्तेमाल शुरू किया जा सकता है Apigee Edge पर जाएं.

डिफ़ॉल्ट OAuth एंडपॉइंट, इस एंडपॉइंट यूआरआई को दिखाता है:

/oauth/client_credential/accesstoken

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

डिफ़ॉल्ट क्लाइंट क्रेडेंशियल टोकन एंडपॉइंट को नेटवर्क पर इस तरह दिखाया जाता है यूआरएल:

https://{org_name}-{env_name}.apigee.net/oauth/client_credential/accesstoken

उदाहरण के लिए, अगर आपके संगठन का नाम "apimakers" है, तो यूआरएल यह होगा:

https://apimakers-test.apigee.net/oauth/client_credential/accesstoken

इस यूआरएल को डेवलपर, ऐक्सेस टोकन पाने के लिए कॉल करते हैं.

3-लेग्ड OAuth कॉन्फ़िगरेशन

तीन पैरों वाले OAuth कॉन्फ़िगरेशन (ऑथराइज़ेशन कोड, इंप्लिसिट, और पासवर्ड ग्रांट टाइप) के लिए, एपीआई सेवा देने वाली कंपनी को ऐप्लिकेशन के असली उपयोगकर्ताओं की पुष्टि करनी होगी. हर संगठन, उपयोगकर्ताओं की पुष्टि अलग-अलग तरीकों से करता है. इसलिए, नीति को पसंद के मुताबिक बनाने या कोड करने की कुछ ज़रूरत होती है का इस्तेमाल करें. उदाहरण के लिए, आपके सभी उपयोगकर्ताओं को Active में सेव किया जा सकता है डायरेक्ट्री, किसी LDAP या किसी अन्य उपयोगकर्ता स्टोर में होती है. तीन पैरों वाला OAuth सेट अप करके चलाने के लिए, आप पूरे OAuth फ़्लो में, इस यूज़र स्टोर के लिए जांच को इंटिग्रेट करना होगा.

OAuth 1.0a

OAuth 1.0a नीति के बारे में ज़्यादा जानकारी के लिए, OAuth v1.0a नीति देखें.

सहायता पाएं

मदद के लिए, Apigee देखें ग्राहक सहायता.