इस पेज पर, OpenID Connect सेवा देने वाली कंपनी के तौर पर Google के लागू करने के तरीके के बारे में बताया गया है. साथ ही, Google के OIDC एंडपॉइंट के लिए तकनीकी जानकारी दी गई है. OpenID Connect (OIDC) Core 1.0 स्पेसिफ़िकेशन में, उपयोगकर्ताओं की पुष्टि करने और पहचान की जानकारी पाने के लिए प्रोटोकॉल तय किया गया है.
इस रेफ़रंस का मकसद, OIDC को लागू करने के बारे में सिलसिलेवार तरीके से निर्देश देना नहीं है. इसे लागू करने के बारे में ज़्यादा जानकारी के लिए, OpenID Connect गाइड देखें.
डिस्कवरी दस्तावेज़
डिस्कवरी दस्तावेज़ में, Google के OpenID Connect कॉन्फ़िगरेशन के बारे में मेटाडेटा होता है. इसे OpenID Connect Discovery 1.0 स्पेसिफ़िकेशन में तय किया गया है.
यूआरएल: https://accounts.google.com/.well-known/openid-configuration
अनुरोध करने का तरीका: GET
जवाब का मुख्य भाग
जवाब के फ़ील्ड, JSON ऑब्जेक्ट में दिखाए जाते हैं. यह ऑब्जेक्ट, अनुरोध करने वाले व्यक्ति को भेजे गए HTTP जवाब के मुख्य हिस्से में होता है. यह जवाब, अनुरोध करने वाले व्यक्ति के GET अनुरोध के जवाब में https://accounts.google.com/.well-known/openid-configuration ने भेजा होता है.
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
issuer |
string |
कुंजी जारी करने वाले का आइडेंटिफ़ायर. https स्कीम का इस्तेमाल करने वाला केस-सेंसिटिव यूआरएल. मॉडर्न वैल्यू https://accounts.google.com है. हालांकि, लेगसी वर्शन के लिए accounts.google.com भी दिखता है. |
authorization_endpoint |
string |
ऑथराइज़ेशन एंडपॉइंट का यूआरएल. |
device_authorization_endpoint |
string |
डिवाइस ऑथराइज़ेशन एंडपॉइंट का यूआरएल. |
token_endpoint |
string |
टोकन एंडपॉइंट का यूआरएल. |
userinfo_endpoint |
string |
UserInfo एंडपॉइंट का यूआरएल. |
revocation_endpoint |
string |
रेवकेशन एंडपॉइंट का यूआरएल. |
jwks_uri |
string |
JSON वेब कुंजी सेट (JWKS) दस्तावेज़ का यूआरएल. |
response_types_supported |
array |
इस सूची में response_type की वे वैल्यू शामिल होती हैं जिनका इस्तेमाल किया जा सकता है. |
response_modes_supported |
array |
इस सूची में response_mode की वे वैल्यू शामिल होती हैं जिनका इस्तेमाल किया जा सकता है. |
authorization_response_iss_parameter_supported |
boolean |
बूलियन, जो आरएफ़सी 9207 के साथ काम करने की सुविधा के बारे में बताता है. |
subject_types_supported |
array |
सब्जेक्ट आइडेंटिफ़ायर के साथ काम करने वाले टाइप की सूची. |
id_token_signing_alg_values_supported |
array |
आईडी टोकन पर हस्ताक्षर करने के लिए, इस्तेमाल किए जा सकने वाले एल्गोरिदम की सूची. |
scopes_supported |
array |
स्कोप की वैल्यू की सूची, जिनका इस्तेमाल किया जा सकता है. |
claims_supported |
array |
दावों की सूची. |
token_endpoint_auth_methods_supported |
array |
टोकन एंडपॉइंट के लिए, पुष्टि करने के काम करने वाले तरीकों की सूची. |
code_challenge_methods_supported |
array |
पीकेसीई के लिए, कोड चैलेंज के साथ काम करने वाले तरीकों की सूची. |
grant_types_supported |
array |
OAuth 2.0 के इस्तेमाल की अनुमति देने वाले टाइप की सूची. |
आईडी टोकन (दावे)
जवाबों में दिखाई गई id_token वैल्यू, हस्ताक्षर किया गया JSON Web Token (JWT) होता है. इसकी पुष्टि करने के लिए, jwks_uri से मिले कीइंग मटीरियल का इस्तेमाल करना ज़रूरी है. यह jwks_uri, डिस्कवरी दस्तावेज़ में मौजूद होता है. नीचे दी गई टेबल में, डिकोड किए गए आईडी टोकन पेलोड के कॉन्टेंट के बारे में बताया गया है.
| दावा करें | टाइप | ब्यौरा |
|---|---|---|
iss |
string |
ज़रूरी है. जवाब देने वाले के लिए, जारी करने वाले का आइडेंटिफ़ायर. आम तौर पर https://accounts.google.com; हालांकि, लेगसी वर्शन के लिए accounts.google.com भी दिखाया जाता है. |
sub |
string |
ज़रूरी है. यह उपयोगकर्ता के लिए एक आइडेंटिफ़ायर होता है. यह सभी Google खातों में यूनीक होता है और इसे कभी भी फिर से इस्तेमाल नहीं किया जाता. किसी Google खाते में अलग-अलग समय पर कई ईमेल पते हो सकते हैं, लेकिन sub वैल्यू कभी नहीं बदलती. अपने ऐप्लिकेशन में sub का इस्तेमाल, उपयोगकर्ता के लिए यूनीक-आइडेंटिफ़ायर कुंजी के तौर पर करें. इसमें ज़्यादा से ज़्यादा 255 केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) ASCII वर्ण इस्तेमाल किए जा सकते हैं. |
azp |
string |
अनुमति वाले प्रज़ेंटर का क्लाइंट आइडेंटिफ़ायर. यह Google Cloud Console से मिलता है. इस दावे की ज़रूरत सिर्फ़ तब होती है, जब आईडी टोकन का अनुरोध करने वाली पार्टी, आईडी टोकन की ऑडियंस से अलग हो. |
aud |
string |
ज़रूरी है. वह ऑडियंस जिसके लिए आईडी टोकन बनाया गया है. यह आपके ऐप्लिकेशन का क्लाइंट आइडेंटिफ़ायर है. इसे Google Cloud Console से हासिल किया जाता है. |
iat |
integer |
ज़रूरी है. वह समय जब आईडी टोकन जारी किया गया था. इसे यूनिक्स इपोक टाइम (पूर्णांक सेकंड) में दिखाया जाता है. |
exp |
integer |
ज़रूरी है. समयसीमा खत्म होने का वह समय जिसके बाद आईडी टोकन को स्वीकार नहीं किया जाना चाहिए. इसे यूनिक्स इपोक टाइम (पूर्णांक सेकंड) में दिखाया जाता है. |
nonce |
string |
पुष्टि करने के अनुरोध में, आपके ऐप्लिकेशन से दी गई nonce की वैल्यू. आपको इस वैल्यू को सिर्फ़ एक बार दिखाकर, रीप्ले अटैक से बचना चाहिए. |
auth_time |
integer |
उपयोगकर्ता की पुष्टि होने का समय. यह एक JSON नंबर होता है. यह यूनिक्स युग (1 जनवरी, 1970, 00:00:00 यूटीसी) के बाद से बीते हुए सेकंड की संख्या को दिखाता है. यह तब दिया जाता है, जब पुष्टि करने के अनुरोध वाले claims पैरामीटर में auth_time दावा शामिल किया जाता है. |
at_hash |
string |
ऐक्सेस टोकन का हैश. यह कुकी, इस बात की पुष्टि करती है कि ऐक्सेस टोकन, आइडेंटिटी टोकन से जुड़ा है. अगर सर्वर फ़्लो में access_token वैल्यू के साथ आईडी टोकन जारी किया जाता है, तो यह दावा हमेशा शामिल किया जाता है. |
email |
string |
उपयोगकर्ता का ईमेल पता. यह जानकारी सिर्फ़ तब मिलती है, जब आपने अपने अनुरोध में email स्कोप शामिल किया हो. ऐसा हो सकता है कि इस दावे की वैल्यू, इस खाते के लिए यूनीक न हो. साथ ही, समय के साथ इसमें बदलाव हो सकता है. इसलिए, आपको इस वैल्यू का इस्तेमाल, उपयोगकर्ता के रिकॉर्ड से लिंक करने के लिए मुख्य आइडेंटिफ़ायर के तौर पर नहीं करना चाहिए. Google Workspace या Cloud संगठनों के उपयोगकर्ताओं की पहचान करने के लिए, email दावे के डोमेन पर भी भरोसा नहीं किया जा सकता. इसके बजाय, email दावे का इस्तेमाल करें.hd चेतावनी: ईमेल पते का इस्तेमाल आइडेंटिफ़ायर के तौर पर न करें, क्योंकि एक Google खाते में अलग-अलग समय पर कई ईमेल पते हो सकते हैं. उपयोगकर्ता के आइडेंटिफ़ायर के तौर पर हमेशा sub फ़ील्ड का इस्तेमाल करें. |
email_verified |
boolean |
अगर उपयोगकर्ता के ईमेल पते की पुष्टि हो गई है, तो वैल्यू सही होगी. ऐसा न होने पर, वैल्यू गलत होगी. |
name |
string |
उपयोगकर्ता का पूरा नाम, जिसे दिखाया जा सकता है. यह तब दिया जा सकता है, जब अनुरोध के स्कोप में profile स्ट्रिंग शामिल हो या आईडी टोकन, टोकन रीफ़्रेश से वापस आ गया हो. |
picture |
string |
उपयोगकर्ता की प्रोफ़ाइल फ़ोटो का यूआरएल. यह तब दिया जा सकता है, जब अनुरोध के स्कोप में profile स्ट्रिंग शामिल हो या आईडी टोकन, टोकन रीफ़्रेश से वापस आ गया हो. |
given_name |
string |
उपयोगकर्ता का नाम. name दावा मौजूद होने पर, यह एट्रिब्यूट सबमिट किया जा सकता है. |
family_name |
string |
उपयोगकर्ता का उपनाम. name दावा मौजूद होने पर, यह एट्रिब्यूट सबमिट किया जा सकता है. |
hd |
string |
उपयोगकर्ता के Google Workspace या Cloud संगठन से जुड़ा डोमेन. यह जानकारी सिर्फ़ तब दी जाती है, जब उपयोगकर्ता Google Cloud संगठन से जुड़ा हो. जब किसी संसाधन का ऐक्सेस सिर्फ़ कुछ डोमेन के सदस्यों तक सीमित करना हो, तब आपको इस दावे की पुष्टि करनी होगी. इस दावे के न होने का मतलब है कि खाता, Google के होस्ट किए गए डोमेन का नहीं है. |
ऑथराइज़ेशन एंडपॉइंट
ऑथराइज़ेशन एंडपॉइंट का इस्तेमाल, उपयोगकर्ता की पुष्टि करने और ऑथराइज़ेशन कोड या टोकन पाने के लिए किया जाता है.
यूआरएल: https://accounts.google.com/o/oauth2/v2/auth
अनुरोध करने के लिए इस्तेमाल किए जा सकने वाले तरीके: GET, POST
अनुरोध के पैरामीटर
| पैरामीटर | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
client_id |
string |
ज़रूरी है | क्लाइंट आइडेंटिफ़ायर स्ट्रिंग, जो आपको Google Cloud Console से मिलती है. |
nonce |
string |
वैकल्पिक | आपके ऐप्लिकेशन से जनरेट की गई कोई रैंडम वैल्यू, जो रीप्ले प्रोटेक्शन की सुविधा चालू करती है. यह सिर्फ़ तब ज़रूरी है, जब आईडी टोकन का अनुरोध किया जा रहा हो (जब response_type में id_token शामिल हो). |
response_type |
string |
ज़रूरी है | यह कुकी, इस्तेमाल किए जाने वाले फ़्लो के बारे में जानकारी देती है. अगर वैल्यू code है, तो ऑथराइज़ेशन कोड फ़्लो लॉन्च करता है. इसके लिए, टोकन एंडपॉइंट को POST की ज़रूरत होती है, ताकि टोकन मिल सकें. अगर वैल्यू token, id_token, token id_token या id_token token है, तो यह इंप्लिसिट फ़्लो लॉन्च करता है. इसके लिए, रीडायरेक्शन यूआरआई पर JavaScript का इस्तेमाल करना ज़रूरी होता है, ताकि यूआरआई फ़्रैगमेंट से टोकन वापस पाए जा सकें. किसी भी फ़ॉर्म में token का इस्तेमाल करने से बचें, क्योंकि इससे यूआरएल में ऐक्सेस टोकन दिखते हैं. OAuth 2.1 में इस वैल्यू का इस्तेमाल करने की अनुमति नहीं है. |
response_mode |
string |
वैकल्पिक | इससे पता चलता है कि ऑथराइज़ेशन रिस्पॉन्स कैसे डिलीवर किया जाता है. अगर response_type की वैल्यू code है, तो डिफ़ॉल्ट वैल्यू query होती है. जवाब के अन्य टाइप के लिए, डिफ़ॉल्ट वैल्यू fragment होती है. इस्तेमाल की जा सकने वाली वैल्यू: query, fragment, form_post. |
redirect_uri |
string |
ज़रूरी है | इससे यह तय होता है कि जवाब कहां भेजा जाएगा. इस पैरामीटर की वैल्यू, रीडायरेक्ट करने के लिए सेट की गई उन वैल्यू में से किसी एक से पूरी तरह मेल खानी चाहिए जिन्हें आपने Google Cloud Console में सेट किया है. इसमें एचटीटीपी या एचटीटीपीएस स्कीम, केस, और आखिर में '/' (अगर कोई है) शामिल है. रीडायरेक्ट यूआरआई और अनुमति वाले JavaScript ऑरिजिन को, OAuth 2.0 यूआरआई की पुष्टि करने से जुड़े दस्तावेज़ में बताई गई पुष्टि करने की शर्तों का पालन करना होगा. |
scope |
string |
ज़रूरी है | स्कोप की ऐसी सूची जिसमें उनके क्रम का कोई मतलब नहीं होता और उनके बीच में खाली जगह का इस्तेमाल किया जाता है. सूची में openid वैल्यू शामिल होनी चाहिए. इसके बाद, profile वैल्यू, email वैल्यू या दोनों शामिल होनी चाहिए. आपके पास ओआईडीसी के अलावा अन्य स्कोप शामिल करने का विकल्प भी होता है. अगर profile स्कोप वैल्यू मौजूद है, तो आईडी टोकन में उपयोगकर्ता के डिफ़ॉल्ट profile दावे शामिल हो सकते हैं. हालांकि, ऐसा होना ज़रूरी नहीं है. अगर email स्कोप की वैल्यू मौजूद है, तो आईडी टोकन में email और email_verified दावे शामिल होते हैं. ज़्यादा जानकारी के लिए, OAuth 2.0 के स्कोप देखें. |
state |
string |
सुझाए गए | यह एक ओपेक स्ट्रिंग है, जो प्रोटोकॉल में राउंड-ट्रिप की जाती है. इसका मतलब है कि इसे ऑथराइज़ेशन कोड फ़्लो में यूआरआई पैरामीटर के तौर पर और इंप्लिसिट फ़्लो में यूआरआई फ़्रैगमेंट के तौर पर दिखाया जाता है. state, अनुरोधों और जवाबों को आपस में जोड़ने के लिए मददगार हो सकता है. आपके redirect_uri का अनुमान लगाया जा सकता है. इसलिए, state वैल्यू का इस्तेमाल करने से, आपको यह पक्का करने में मदद मिल सकती है कि आने वाला कनेक्शन, आपके ऐप्लिकेशन से शुरू किए गए पुष्टि करने के अनुरोध का नतीजा है. इससे, किसी दूसरी साइट से किए गए फ़र्ज़ी अनुरोध जैसे हमलों से सुरक्षा मिलती है. |
access_type |
string |
वैकल्पिक | offline और online को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. अगर आपके ऐप्लिकेशन को ऐक्सेस टोकन रीफ़्रेश करने की ज़रूरत है, लेकिन उपयोगकर्ता ब्राउज़र पर मौजूद नहीं है, तो offline का इस्तेमाल करें. यह वैल्यू, रीफ़्रेश टोकन पाने के लिए ज़रूरी है. |
hd |
string |
वैकल्पिक | Google Cloud संगठन के मालिकाना हक वाले खातों के लिए, लॉगिन प्रोसेस को आसान बनाएं. Google Cloud संगठन का डोमेन (उदाहरण के लिए, mycollege.edu) शामिल करके, यह बताया जा सकता है कि खाता चुनने वाले यूज़र इंटरफ़ेस (यूआई) को उस डोमेन के खातों के लिए ऑप्टिमाइज़ किया जाना चाहिए. अगर आपको सिर्फ़ एक Google Cloud संगठन के डोमेन के बजाय, Google Cloud संगठन के खातों के लिए ऑप्टिमाइज़ करना है, तो तारा चिह्न (*) की वैल्यू सेट करें: hd=*. |
login_hint |
string |
वैकल्पिक | जब आपके ऐप्लिकेशन को पता होता है कि उसे किस उपयोगकर्ता की पुष्टि करनी है, तब वह इस पैरामीटर को पुष्टि करने वाले सर्वर को एक हिंट के तौर पर दे सकता है. इस हिंट को पास करने से, खाता चुनने की सुविधा बंद हो जाती है. साथ ही, साइन-इन फ़ॉर्म पर ईमेल बॉक्स पहले से भर जाता है या सही सेशन चुना जाता है. इससे आपको उन समस्याओं से बचने में मदद मिल सकती है जो आपके ऐप्लिकेशन के गलत उपयोगकर्ता खाते में लॉग इन करने पर होती हैं. इसकी वैल्यू, ईमेल पता या sub स्ट्रिंग हो सकती है. यह स्ट्रिंग, उपयोगकर्ता के Google आईडी के बराबर होती है. |
prompt |
string |
वैकल्पिक | स्पेस से अलग की गई स्ट्रिंग वैल्यू की सूची. इससे यह तय होता है कि अनुमति देने वाला सर्वर, उपयोगकर्ता को फिर से पुष्टि करने और सहमति देने के लिए कहेगा या नहीं. इन वैल्यू का इस्तेमाल किया जा सकता है: none (कोई यूज़र इंटरफ़ेस नहीं), consent (सहमति लेने के लिए प्रॉम्प्ट), select_account (खाता चुनने के लिए प्रॉम्प्ट). |
hl |
string |
वैकल्पिक | यह BCP 47 भाषा का टैग है. इसका इस्तेमाल, साइन-इन, खाता चुनने वाले टूल, और सहमति वाली स्क्रीन के लिए डिसप्ले लैंग्वेज तय करने के लिए किया जाता है. इस पैरामीटर का इस्तेमाल न करने का सुझाव दिया जाता है, क्योंकि ब्राउज़र की सेटिंग और Google खाते की सेटिंग से आम तौर पर, उपयोगकर्ता की भाषा की प्राथमिकता के बारे में बेहतर जानकारी मिलती है. |
include_granted_scopes |
boolean |
वैकल्पिक | अगर इस पैरामीटर को true वैल्यू के साथ दिया जाता है और अनुमति देने का अनुरोध स्वीकार कर लिया जाता है, तो अनुमति में अन्य स्कोप के लिए, इस उपयोगकर्ता/ऐप्लिकेशन के कॉम्बिनेशन को दी गई पिछली सभी अनुमतियां शामिल होंगी. इंक्रीमेंटल ऑथराइज़ेशन देखें. |
claims |
object |
वैकल्पिक | claims पैरामीटर का इस्तेमाल, UserInfo रिस्पॉन्स या आईडी टोकन में शामिल करने के लिए, एक या उससे ज़्यादा वैकल्पिक फ़ील्ड तय करने के लिए किया जाता है. auth_time का अनुरोध करने के लिए, claims={\"id_token\":{\"auth_time\":{\"essential\":true}}} का इस्तेमाल करें. |
जवाब के पैरामीटर
ऑथराइज़ेशन रिस्पॉन्स को क्लाइंट के रीडायरेक्शन यूआरआई (redirect_uri) पर, एचटीटीपी GET रीडायरेक्ट का इस्तेमाल करके भेजा जाता है. जवाब के पैरामीटर, क्वेरी स्ट्रिंग या यूआरएल फ़्रैगमेंट में रीडायरेक्शन यूआरआई में जोड़े जाते हैं. यह response_type और response_mode पर निर्भर करता है.
| पैरामीटर | टाइप | ब्यौरा |
|---|---|---|
iss |
string |
कार्ड जारी करने वाले का आइडेंटिफ़ायर. RFC 9207 के मुताबिक, यह पैरामीटर हमेशा दिखता है और इसकी वैल्यू https://accounts.google.com पर सेट होती है. |
code |
string |
ऑथराइज़ेशन कोड, जिसे ऐक्सेस टोकन और आईडी टोकन के लिए बदला जा सकता है. |
state |
string |
अनुरोध में मौजूद state पैरामीटर की वैल्यू के बराबर वैल्यू. |
id_token |
string |
JSON Web Token (JWT), जिसमें उपयोगकर्ता की पहचान से जुड़ी जानकारी होती है. |
access_token |
string |
यह ऐक्सेस टोकन है, जिसे Google API को भेजा जा सकता है. |
token_type |
string |
लौटाया गया टोकन किस तरह का है. हमेशा Bearer. |
expires_in |
integer |
टोकन जारी किए जाने के समय के हिसाब से, ऐक्सेस टोकन की लाइफ़टाइम (सेकंड में). |
scope |
string |
code या access_token से मिले ऐक्सेस के स्कोप. इन्हें स्पेस से अलग की गई, केस-सेंसिटिव स्ट्रिंग की सूची के तौर पर दिखाया जाता है. |
error |
string |
अनुरोध पूरा न होने पर गड़बड़ी का कोड. |
error_description |
string |
अनुरोध पूरा न होने पर, गड़बड़ी की जानकारी. |
गड़बड़ी के रिस्पॉन्स
अनुमति देने वाले एंडपॉइंट के लिए, गड़बड़ियों को क्लाइंट के redirect_uri को क्वेरी स्ट्रिंग या यूआरएल फ़्रैगमेंट में पैरामीटर के तौर पर दिखाया जाता है. इसके अलावा, इन्हें उपयोगकर्ता को Google के होस्ट किए गए गड़बड़ी वाले पेज के तौर पर दिखाया जाता है.
रीडायरेक्ट की गई गड़बड़ियां
आपको ये गड़बड़ी कोड मिल सकते हैं redirect_uri:
| गड़बड़ी | ब्यौरा |
|---|---|
access_denied |
उपयोगकर्ता या अनुमति देने वाले सर्वर ने अनुरोध अस्वीकार कर दिया है. |
invalid_request |
अनुरोध में कोई ज़रूरी पैरामीटर मौजूद नहीं है, पैरामीटर की कोई अमान्य वैल्यू शामिल है, किसी पैरामीटर को एक से ज़्यादा बार शामिल किया गया है या अनुरोध किसी और वजह से गलत है. |
unauthorized_client |
क्लाइंट को इस तरीके का इस्तेमाल करके, ऑथराइज़ेशन कोड का अनुरोध करने की अनुमति नहीं है. |
unsupported_response_type |
Authorization Server, इस तरीके का इस्तेमाल करके ऑथराइज़ेशन कोड पाने की सुविधा नहीं देता. |
invalid_scope |
अनुरोध किया गया स्कोप अमान्य है, इसके बारे में जानकारी नहीं है या इसमें कोई बदलाव किया गया है. |
उपयोगकर्ताओं को दिखने वाली गड़बड़ियां
कुछ मामलों में, जैसे कि जब client_id या redirect_uri अमान्य हो, तो अनुमति देने वाला सर्वर, उपयोगकर्ता को सुरक्षित तरीके से आपके ऐप्लिकेशन पर वापस रीडायरेक्ट नहीं कर सकता.
इन मामलों में, उपयोगकर्ता को सीधे तौर पर गड़बड़ी वाला पेज दिखता है.
| गड़बड़ी | ब्यौरा |
|---|---|
admin_policy_enforced |
Google Workspace एडमिन की नीतियों की वजह से, Google खाता अनुरोध किए गए एक या उससे ज़्यादा स्कोप को अनुमति नहीं दे सकता. एडमिन, आपके OAuth क्लाइंट आइडेंटिफ़ायर को साफ़ तौर पर अनुमति मिलने तक ऐक्सेस को कैसे सीमित कर सकता है, इस बारे में ज़्यादा जानने के लिए, Google Workspace एडमिन सहायता लेख पढ़ें. |
disallowed_useragent |
ऑथराइज़ेशन एंडपॉइंट को, एम्बेड किए गए ऐसे उपयोगकर्ता-एजेंट में दिखाया गया है जिसे Google की OAuth 2.0 नीतियों के तहत अनुमति नहीं है. |
org_internal |
अनुरोध में मौजूद OAuth क्लाइंट आइडेंटिफ़ायर, ऐसे प्रोजेक्ट का हिस्सा है जो किसी खास Google Cloud संगठन में Google खातों के ऐक्सेस को सीमित करता है. |
deleted_client |
अनुरोध करने के लिए इस्तेमाल किए जा रहे OAuth क्लाइंट को मिटा दिया गया है. इस्तेमाल नहीं किए जा रहे क्लाइंट के मामले में, डेटा को मैन्युअल तरीके से या अपने-आप मिटाया जा सकता है. |
invalid_grant |
PKCE का इस्तेमाल करते समय, code_challenge पैरामीटर अमान्य है या मौजूद नहीं है. ऐक्सेस टोकन को रीफ़्रेश करते समय या इंक्रीमेंटल ऑथराइज़ेशन का इस्तेमाल करते समय, हो सकता है कि टोकन की समयसीमा खत्म हो गई हो, उसे अमान्य कर दिया गया हो या उपयोगकर्ता खाते को मिटा दिया गया हो या बंद कर दिया गया हो. |
redirect_uri_mismatch |
अनुरोध में पास किया गया redirect_uri, क्लाइंट आइडेंटिफ़ायर के लिए अनुमति वाले रीडायरेक्शन यूआरआई से मेल नहीं खाता. Google Cloud Console में जाकर, अनुमति वाले रीडायरेक्ट यूआरआई की समीक्षा करें. यह गड़बड़ी तब भी हो सकती है, जब अनुरोध में OAuth के आउट-ऑफ़-बैंड (OOB) फ़्लो का इस्तेमाल किया गया हो. |
invalid_client |
जिस ऑरिजिन से अनुरोध किया गया है उसे इस क्लाइंट के लिए अनुमति नहीं है, क्लाइंट का कॉन्फ़िगरेशन गलत है या OAuth क्लाइंट सीक्रेट गलत है. |
origin_mismatch |
अनुमति का अनुरोध करने वाले JavaScript का स्कीम, डोमेन, और/या पोर्ट, OAuth क्लाइंट आइडेंटिफ़ायर के लिए रजिस्टर किए गए, अनुमति वाले JavaScript ऑरिजिन यूआरआई से मेल नहीं खाता. Google Cloud Console में जाकर, अनुमति वाले JavaScript ऑरिजिन की समीक्षा करें. |
invalid_request |
अनुरोध में कोई गड़बड़ी हुई. ऐसा इसलिए हो सकता है, क्योंकि अनुरोध का फ़ॉर्मैट सही नहीं है, ज़रूरी पैरामीटर मौजूद नहीं हैं या अनुमति लेने के लिए किसी ऐसे तरीके का इस्तेमाल किया गया है जिसकी अनुमति Google नहीं देता. |
टोकन एंडपॉइंट
टोकन एंडपॉइंट का इस्तेमाल, ऑथराइज़ेशन कोड को ऐक्सेस टोकन और आईडी टोकन के लिए एक्सचेंज करने के लिए किया जाता है.
यूआरएल: https://oauth2.googleapis.com/token
अनुरोध करने का तरीका: POST
अनुरोध के पैरामीटर (ऑथराइज़ेशन कोड के लिए अनुमति)
| पैरामीटर | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
code |
string |
ज़रूरी है | ऑथराइज़ेशन एंडपॉइंट से मिला ऑथराइज़ेशन कोड. |
client_id |
string |
ज़रूरी है | आपके ऐप्लिकेशन के लिए क्लाइंट आइडेंटिफ़ायर, जो Google Cloud Console से मिलता है. |
client_secret |
string |
ज़रूरी है | आपके ऐप्लिकेशन के लिए क्लाइंट सीक्रेट, जो Google Cloud Console से मिला है. |
redirect_uri |
string |
ज़रूरी है | अनुमति के शुरुआती अनुरोध में इस्तेमाल किया गया रीडायरेक्शन यूआरआई. रीडायरेक्ट यूआरआई और अनुमति वाले JavaScript ऑरिजिन को, OAuth 2.0 यूआरआई की पुष्टि करने से जुड़े दस्तावेज़ में बताई गई पुष्टि करने की शर्तों का पालन करना होगा. |
grant_type |
string |
ज़रूरी है | authorization_code पर सेट होना चाहिए. |
अनुरोध के पैरामीटर (डिवाइस फ़्लो)
| पैरामीटर | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
client_id |
string |
ज़रूरी है | आपके ऐप्लिकेशन के लिए क्लाइंट आइडेंटिफ़ायर, जो Google Cloud Console से मिलता है. |
client_secret |
string |
ज़रूरी है | आपके ऐप्लिकेशन के लिए क्लाइंट सीक्रेट, जो Google Cloud Console से मिला है. |
device_code |
string |
ज़रूरी है | यह device_code, डिवाइस ऑथराइज़ेशन एंडपॉइंट से मिलता है. |
grant_type |
string |
ज़रूरी है | urn:ietf:params:oauth:grant-type:device_code पर सेट होना चाहिए. |
अनुरोध के पैरामीटर (ऐक्सेस टोकन रीफ़्रेश करना)
| पैरामीटर | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
client_id |
string |
ज़रूरी है | आपके ऐप्लिकेशन के लिए क्लाइंट आइडेंटिफ़ायर, जो Google Cloud Console से मिलता है. |
client_secret |
string |
ज़रूरी है | आपके ऐप्लिकेशन के लिए क्लाइंट सीक्रेट, जो Google Cloud Console से मिला है. |
grant_type |
string |
ज़रूरी है | इसे OpenID Connect Refresh Tokens की खास जानकारी में बताए गए तरीके के मुताबिक, refresh_token पर सेट किया जाना चाहिए. |
refresh_token |
string |
ज़रूरी है | ऑथराइज़ेशन कोड के बदले में मिला रीफ़्रेश टोकन. |
scope |
string |
वैकल्पिक | यह नई लाइन से अलग किए गए स्कोप की सूची होती है. इसके लिए, नए ऐक्सेस टोकन का अनुरोध किया गया है. अनुरोध किए गए स्कोप, अनुमति के लिए किए गए मूल अनुरोध में दिए गए स्कोप का सबसेट होने चाहिए. |
जवाब का मुख्य भाग
जवाब के फ़ील्ड, JSON ऑब्जेक्ट में दिखाए जाते हैं. यह ऑब्जेक्ट, अनुरोध करने वाले व्यक्ति को भेजे गए HTTP जवाब के मुख्य हिस्से में होता है. यह जवाब, अनुरोध करने वाले व्यक्ति के POST अनुरोध के जवाब में https://oauth2.googleapis.com/token ने भेजा होता है.
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
access_token |
string |
यह ऐक्सेस टोकन है, जिसे Google API को भेजा जा सकता है. |
expires_in |
integer |
टोकन जारी किए जाने के समय के हिसाब से, ऐक्सेस टोकन की लाइफ़टाइम (सेकंड में). |
id_token |
string |
JSON Web Token (JWT), जिसमें उपयोगकर्ता की पहचान से जुड़ी जानकारी होती है. यह टोकन, शुरुआती ऑथराइज़ेशन कोड के बदले में मिलता है. अगर openid स्कोप का ऐक्सेस दिया गया है, तो रीफ़्रेश टोकन के अनुरोध के दौरान भी यह टोकन मिल सकता है. |
scope |
string |
access_token से मिले ऐक्सेस के स्कोप. इन्हें केस-सेंसिटिव स्ट्रिंग के तौर पर दिखाया जाता है. इनके बीच में खाली जगह का इस्तेमाल किया जाता है. |
token_type |
string |
लौटाया गया टोकन किस तरह का है. हमेशा Bearer. |
refresh_token |
string |
(ज़रूरी नहीं) यह एक ऐसा टोकन होता है जिसका इस्तेमाल नए ऐक्सेस टोकन पाने के लिए किया जा सकता है. यह फ़ील्ड, सिर्फ़ ऑथराइज़ेशन कोड के शुरुआती एक्सचेंज में दिखता है. ऐसा तब होता है, जब access_type=offline का अनुरोध किया गया हो. |
refresh_token_expires_in |
integer |
(ज़रूरी नहीं) रीफ़्रेश टोकन की बची हुई लाइफ़टाइम, सेकंड में. यह वैल्यू सिर्फ़ तब सेट होती है, जब उपयोगकर्ता समयसीमा के हिसाब से ऐक्सेस देता है. |
गड़बड़ी के रिस्पॉन्स
अगर अनुरोध पूरा नहीं होता है, तो अनुमति देने वाला सर्वर, JSON ऑब्जेक्ट दिखाता है. इसमें ये फ़ील्ड होते हैं:
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
error |
string |
गड़बड़ी का कोड. |
error_description |
string |
अनुरोध पूरा न होने पर, गड़बड़ी की जानकारी. |
यहां दी गई टेबल में, गड़बड़ी के संभावित कोड और उनसे जुड़े एचटीटीपी स्टेटस कोड के बारे में बताया गया है:
| गड़बड़ी | एचटीटीपी स्टेटस कोड | ब्यौरा |
|---|---|---|
invalid_request |
400 |
अनुरोध में कोई ज़रूरी पैरामीटर मौजूद नहीं है, पैरामीटर की वैल्यू अमान्य है या अनुरोध किसी और वजह से गलत है. |
invalid_client |
401 |
क्लाइंट की पुष्टि नहीं हो सकी. उदाहरण के लिए, client_id या client_secret अमान्य है या क्लाइंट का टाइप गलत है. |
invalid_grant |
400 |
दिया गया अनुमति कोड, रीफ़्रेश टोकन या डिवाइस कोड अमान्य है, उसकी समयसीमा खत्म हो गई है, उसे रद्द कर दिया गया है या वह अनुमति के अनुरोध में इस्तेमाल किए गए रीडायरेक्शन यूआरआई से मेल नहीं खाता. |
unauthorized_client |
400 |
पुष्टि किए गए क्लाइंट को, अनुमति देने के इस तरीके का इस्तेमाल करने की अनुमति नहीं है. |
unsupported_grant_type |
400 |
ऑथराइज़ेशन सर्वर, ऑथराइज़ेशन ग्रांट टाइप के साथ काम नहीं करता. |
invalid_scope |
400 |
अनुरोध किया गया स्कोप अमान्य है, इसके बारे में जानकारी नहीं है या इसमें कोई बदलाव किया गया है. |
authorization_pending |
428 |
(डिवाइस फ़्लो) उपयोगकर्ता ने अब तक ऑथराइज़ेशन फ़्लो पूरा नहीं किया है. |
slow_down |
429 |
(डिवाइस फ़्लो) डिवाइस, पोलिंग के अनुरोध बहुत जल्दी-जल्दी भेज रहा है. |
access_denied |
403 |
(डिवाइस फ़्लो) उपयोगकर्ता ने डिवाइस को ऐक्सेस करने की अनुमति नहीं दी. |
expired_token |
400 |
(डिवाइस फ़्लो) device_code की समयसीमा खत्म हो गई है. |
admin_policy_enforced |
400 |
उपयोगकर्ता, अनुरोध किए गए स्कोप को अनुमति नहीं दे सकता. ऐसा इसलिए है, क्योंकि उसके Google Workspace एडमिन ने कुछ नीतियां लागू की हैं. |
org_internal |
403 |
क्लाइंट आइडेंटिफ़ायर, ऐसे प्रोजेक्ट का हिस्सा है जो किसी Google Cloud संगठन के लिए ऐक्सेस को सीमित करता है. |
डिवाइस ऑथराइज़ेशन एंडपॉइंट
OAuth 2.0 डिवाइस फ़्लो में डिवाइस ऑथराइज़ेशन एंडपॉइंट का इस्तेमाल किया जाता है. इससे, सीमित इनपुट क्षमताओं वाले डिवाइसों के लिए उपयोगकर्ता कोड और पुष्टि करने का यूआरएल मिलता है.
यूआरएल: https://oauth2.googleapis.com/device/code
अनुरोध करने का तरीका: POST
अनुरोध के पैरामीटर
| पैरामीटर | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
client_id |
string |
ज़रूरी है | आपके ऐप्लिकेशन के लिए क्लाइंट आइडेंटिफ़ायर, जो Google Cloud Console से मिलता है. |
scope |
string |
ज़रूरी है | यह स्पेस से अलग की गई स्कोप की सूची होती है. इससे उन संसाधनों की पहचान होती है जिन्हें आपका ऐप्लिकेशन, उपयोगकर्ता की ओर से ऐक्सेस कर सकता है. |
जवाब का मुख्य भाग
जवाब एक JSON ऑब्जेक्ट होता है. इसमें ये फ़ील्ड शामिल होते हैं:
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
device_code |
string |
यह एक ऐसी वैल्यू है जिसे Google, उस डिवाइस की पहचान करने के लिए यूनीक तौर पर असाइन करता है जिस पर अनुमति का अनुरोध करने वाला ऐप्लिकेशन चलता है. |
user_code |
string |
यह केस-सेंसिटिव वैल्यू होती है. इससे Google को उन स्कोप के बारे में पता चलता है जिनके लिए ऐप्लिकेशन ऐक्सेस का अनुरोध कर रहा है. आपका यूज़र इंटरफ़ेस (यूआई), उपयोगकर्ता को यह वैल्यू किसी ऐसे डिवाइस पर डालने के लिए कहेगा जिसमें इनपुट देने की बेहतर सुविधाएं उपलब्ध हों. |
verification_url |
string |
यह एक ऐसा यूआरएल होता है जिस पर उपयोगकर्ता को किसी दूसरे डिवाइस पर जाकर, user_code डालना होता है. साथ ही, आपके ऐप्लिकेशन को ऐक्सेस करने की अनुमति देनी होती है या अनुमति नहीं देनी होती है. |
expires_in |
integer |
device_code और user_code कितने सेकंड तक मान्य हैं. |
interval |
integer |
इससे यह तय होता है कि आपका डिवाइस, पोलिंग के अनुरोधों के बीच कितने सेकंड तक इंतज़ार करेगा. |
सहमति रद्द करने का एंडपॉइंट
टोकन रद्द करने वाले एंडपॉइंट की मदद से, आपका ऐप्लिकेशन ऐक्सेस टोकन या रीफ़्रेश टोकन रद्द कर सकता है.
यूआरएल: https://oauth2.googleapis.com/revoke
अनुरोध करने का तरीका: POST
अनुरोध के पैरामीटर
| पैरामीटर | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
token |
string |
ज़रूरी है | वह ऐक्सेस टोकन या रीफ़्रेश टोकन जिसे आपको रद्द करना है. |
जवाब का मुख्य भाग
अगर रद्द करने की प्रोसेस पूरी हो जाती है, तो जवाब में खाली एचटीटीपी 200 OK दिखता है. अगर रद्द करने की प्रोसेस पूरी नहीं होती है, तो गड़बड़ी का मैसेज JSON ऑब्जेक्ट में दिखता है.
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
error |
string |
अनुरोध पूरा न होने पर गड़बड़ी का कोड. |
error_description |
string |
अनुरोध पूरा न होने पर, गड़बड़ी की जानकारी. |
यहां दी गई टेबल में, संभावित गड़बड़ी कोड के बारे में बताया गया है:
| गड़बड़ी | ब्यौरा |
|---|---|
invalid_token |
अनुरोध में दिया गया टोकन पहले ही खत्म हो चुका है या उसे पहले ही रद्द कर दिया गया है. |
invalid_request |
अनुरोध में कोई ज़रूरी पैरामीटर मौजूद नहीं है, पैरामीटर की वैल्यू अमान्य है या अनुरोध किसी और वजह से गलत है. |
UserInfo एंडपॉइंट
UserInfo एंडपॉइंट, पुष्टि किए गए उपयोगकर्ता की प्रोफ़ाइल की जानकारी दिखाता है.
यूआरएल: https://openidconnect.googleapis.com/v1/userinfo
अनुरोध करने के लिए इस्तेमाल किए जा सकने वाले तरीके: GET, POST
अनुरोध के हेडर
| हेडर | ब्यौरा |
|---|---|
Authorization |
ज़रूरी है. इसे Bearer: access_token पर सेट किया जाना चाहिए. |
जवाब का मुख्य भाग
जवाब के फ़ील्ड, एचटीटीपी रिस्पॉन्स के मुख्य हिस्से में JSON ऑब्जेक्ट के तौर पर दिखाए जाते हैं. यह रिस्पॉन्स, अनुरोध करने वाले व्यक्ति के https://openidconnect.googleapis.com/v1/userinfo को भेजे गए GET या POST अनुरोध के जवाब में मिलता है.
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
sub |
string |
ज़रूरी है. यह उपयोगकर्ता के लिए एक आइडेंटिफ़ायर होता है. यह सभी Google खातों में यूनीक होता है और इसे कभी भी फिर से इस्तेमाल नहीं किया जाता. केस-सेंसिटिव स्ट्रिंग, जिसमें 255 से ज़्यादा वर्ण नहीं होने चाहिए. |
name |
string |
उपयोगकर्ता का पूरा नाम, जिसे दिखाया जा सकता है. |
given_name |
string |
उपयोगकर्ता का नाम. |
family_name |
string |
उपयोगकर्ता का उपनाम. |
picture |
string |
उपयोगकर्ता की प्रोफ़ाइल फ़ोटो का यूआरएल. |
email |
string |
उपयोगकर्ता का ईमेल पता. |
email_verified |
boolean |
इससे पता चलता है कि उपयोगकर्ता के ईमेल पते की पुष्टि हुई है या नहीं. |
hd |
string |
उपयोगकर्ता के Google Workspace या Cloud संगठन से जुड़ा होस्ट किया गया डोमेन. |
Tokeninfo एंडपॉइंट
tokeninfo एंडपॉइंट, Google के लिए खास तौर पर लागू किया गया एक तरीका है. इसका इस्तेमाल, डीबग करने के मकसद से आईडी टोकन की पुष्टि करने के लिए किया जाता है.
यूआरएल: https://oauth2.googleapis.com/tokeninfo
अनुरोध करने के लिए इस्तेमाल किए जा सकने वाले तरीके: GET, POST
अनुरोध के पैरामीटर
| पैरामीटर | टाइप | ज़रूरी है | ब्यौरा |
|---|---|---|---|
id_token |
string |
ज़रूरी है | पुष्टि करने के लिए आईडी टोकन. |
जवाब का मुख्य भाग
जवाब के फ़ील्ड, एचटीटीपी रिस्पॉन्स के मुख्य हिस्से में JSON ऑब्जेक्ट के तौर पर दिखाए जाते हैं. यह रिस्पॉन्स, अनुरोध करने वाले व्यक्ति के https://oauth2.googleapis.com/tokeninfo को भेजे गए GET या POST अनुरोध के जवाब में मिलता है.
| फ़ील्ड | टाइप | ब्यौरा |
|---|---|---|
iss |
string |
कार्ड जारी करने वाले का आइडेंटिफ़ायर. हमेशा https://accounts.google.com. |
sub |
string |
यह उपयोगकर्ता के लिए एक आइडेंटिफ़ायर होता है. यह सभी Google खातों में यूनीक होता है और इसे कभी भी फिर से इस्तेमाल नहीं किया जाता. |
aud |
string |
वह ऑडियंस जिसके लिए आईडी टोकन बनाया गया है. यह आपके ऐप्लिकेशन का क्लाइंट आइडेंटिफ़ायर है. इसे Google Cloud Console से हासिल किया जाता है. |
iat |
integer |
वह समय जब JWT जारी किया गया था. इसे 1970-01-01T0:0:0Z से यूटीसी में मापे गए सेकंड की संख्या के तौर पर दिखाया जाता है. |
exp |
integer |
समयसीमा खत्म होने का वह समय जिसके बाद, आईडी टोकन को प्रोसेस करने के लिए स्वीकार नहीं किया जाना चाहिए. इसे 1970-01-01T0:0:0Z से यूटीसी में मापे गए सेकंड की संख्या के तौर पर दिखाया जाता है. |
email |
string |
उपयोगकर्ता का ईमेल पता. |
email_verified |
string |
इससे पता चलता है कि उपयोगकर्ता के ईमेल पते की पुष्टि हुई है या नहीं. वैल्यू, स्ट्रिंग "true" या "false" है. |
access_type |
string |
ओरिजनल अनुमति के अनुरोध में, ऐक्सेस के लिए अनुरोध किया गया टाइप. |
azp |
string |
अनुमति वाले प्रज़ेंटर का क्लाइंट आइडेंटिफ़ायर. यह Google Cloud Console से मिलता है. |
scope |
string |
यह टोकन को दिए गए स्कोप की सूची है. इसमें हर स्कोप के बीच में खाली जगह का इस्तेमाल किया गया है. |
alg |
string |
आईडी टोकन पर हस्ताक्षर करने के लिए इस्तेमाल किया गया एल्गोरिदम. |
kid |
string |
आईडी टोकन पर हस्ताक्षर करने के लिए इस्तेमाल किया गया कुंजी आईडी. |
typ |
string |
टोकन किस तरह का है. हमेशा JWT. |