Google खाता OAuth के साथ जुड़ रहा है

खाते उद्योग मानक OAuth 2.0 निहित और प्राधिकरण कोड प्रवाह का उपयोग करके जुड़े हुए हैं। आपकी सेवा को OAuth 2.0 अनुपालन प्राधिकरण और टोकन विनिमय समापन बिंदुओं का समर्थन करना चाहिए।

निहित प्रवाह में, Google उपयोगकर्ता के ब्राउज़र में आपका प्राधिकरण समापन बिंदु खोलता है। सफल साइन इन करने के बाद, आप Google को एक लंबे समय तक एक्सेस टोकन लौटाते हैं। यह एक्सेस टोकन अब Google से भेजे गए प्रत्येक अनुरोध में शामिल है।

प्राधिकरण कोड प्रवाह में, आपको दो समापन बिंदु चाहिए:

  • प्राधिकरण समापन बिंदु, जो आपके उपयोगकर्ताओं के लिए साइन-इन UI प्रस्तुत करता है जो पहले से साइन इन नहीं हैं। प्राधिकरण समापन बिंदु भी अनुरोधित पहुंच के लिए उपयोगकर्ताओं की सहमति दर्ज करने के लिए एक अल्पकालिक प्राधिकरण कोड बनाता है।

  • टोकन एक्सचेंज एंडपॉइंट, जो दो प्रकार के एक्सचेंजों के लिए जिम्मेदार है:

    1. एक लंबे समय तक ताज़ा टोकन और एक अल्पकालिक एक्सेस टोकन के लिए एक प्राधिकरण कोड का आदान-प्रदान करता है। यह एक्सचेंज तब होता है जब उपयोगकर्ता खाते के लिंकिंग प्रवाह से गुजरता है।
    2. अल्पकालिक पहुंच वाले टोकन के लिए एक लंबे समय तक ताज़ा टोकन का आदान-प्रदान करता है। यह आदान-प्रदान तब होता है जब Google को एक नए एक्सेस टोकन की आवश्यकता होती है, क्योंकि यह समाप्त हो गया था।

एक OAuth 2.0 प्रवाह चुनें

हालाँकि, अंतर्निहित प्रवाह को लागू करना आसान है, Google अनुशंसा करता है कि अंतर्निहित प्रवाह द्वारा जारी किए गए टोकन कभी भी समाप्त न हों। ऐसा इसलिए है क्योंकि अंतर्निहित प्रवाह के साथ एक टोकन समाप्त होने के बाद उपयोगकर्ता को अपने खाते को फिर से लिंक करने के लिए मजबूर किया जाता है। यदि आपको सुरक्षा कारणों से टोकन समाप्ति की आवश्यकता है, तो हम दृढ़ता से अनुशंसा करते हैं कि आप इसके बजाय प्राधिकरण कोड प्रवाह का उपयोग करें।

डिजाइन दिशानिर्देश

यह खंड उपयोगकर्ता स्क्रीन के लिए डिज़ाइन आवश्यकताओं और सिफारिशों का वर्णन करता है जिसे आप OAuth लिंकिंग फ़्लो के लिए होस्ट करते हैं। Google के ऐप द्वारा कॉल किए जाने के बाद, आपका प्लेटफ़ॉर्म Google पेज पर साइन इन करता है और उपयोगकर्ता के लिए सहमति स्क्रीन लिंक करता है। लिंक खातों पर अपनी सहमति देने के बाद उपयोगकर्ता को Google के ऐप पर वापस निर्देशित किया जाता है।

यह आंकड़ा उपयोगकर्ता के लिए अपने Google खाते को आपके प्रमाणीकरण प्रणाली से जोड़ने के लिए चरणों को दिखाता है। पहला स्क्रीनशॉट आपके प्लेटफॉर्म से उपयोगकर्ता द्वारा शुरू किए गए लिंक को दिखाता है। दूसरी छवि Google को उपयोगकर्ता साइन-इन दिखाती है, जबकि तीसरा उपयोगकर्ता को आपके ऐप से उनके Google खाते को जोड़ने के लिए सहमति और पुष्टि दिखाता है। अंतिम स्क्रीनशॉट Google ऐप में सफलतापूर्वक लिंक किया गया उपयोगकर्ता खाता दिखाता है।
चित्र 1. Google और सहमति स्क्रीनों में उपयोगकर्ता के हस्ताक्षर को जोड़ने वाला खाता।

आवश्यकताओं को

  1. आपको यह बताना होगा कि उपयोगकर्ता का खाता Google से जुड़ा होगा, कि Google होम या Google सहायक जैसे विशिष्ट Google उत्पाद से।

सिफारिशों

हम अनुशंसा करते हैं कि आप निम्नलिखित कार्य करें:

  1. Google की गोपनीयता नीति प्रदर्शित करें। सहमति स्क्रीन पर Google की गोपनीयता नीति का लिंक शामिल करें।

  2. डेटा साझा किया जाना है। उपयोगकर्ता को यह बताने के लिए स्पष्ट और संक्षिप्त भाषा का उपयोग करें कि उनके Google के डेटा की क्या आवश्यकता है और क्यों।

  3. कॉल-टू-एक्शन साफ़ करें। अपनी सहमति स्क्रीन पर स्पष्ट कॉल-टू-एक्शन, जैसे "सहमत और लिंक।" ऐसा इसलिए है क्योंकि उपयोगकर्ताओं को यह समझने की आवश्यकता है कि उनके खातों को लिंक करने के लिए उन्हें Google के साथ क्या डेटा साझा करना होगा।

  4. रद्द करने की क्षमता। उपयोगकर्ताओं को वापस जाने या रद्द करने का एक तरीका प्रदान करें, यदि वे लिंक नहीं करना चुनते हैं।

  5. स्पष्ट साइन-इन प्रक्रिया। सुनिश्चित करें कि उपयोगकर्ताओं के पास अपने Google खाते में साइन इन करने के लिए स्पष्ट तरीका है, जैसे कि उनके उपयोगकर्ता नाम और पासवर्ड के लिए फ़ील्ड या Google के साथ साइन इन करें

  6. अनलिंक करने की क्षमता। उपयोगकर्ताओं को अनलिंक करने के लिए एक तंत्र प्रदान करें, जैसे कि आपके प्लेटफ़ॉर्म पर उनकी खाता सेटिंग में URL। वैकल्पिक रूप से, आप Google खाते के लिए एक लिंक शामिल कर सकते हैं जहाँ उपयोगकर्ता अपने लिंक किए गए खाते का प्रबंधन कर सकते हैं।

  7. उपयोगकर्ता खाता बदलने की क्षमता। उपयोगकर्ताओं को अपना खाता बदलने के लिए एक विधि सुझाएं। यह विशेष रूप से फायदेमंद है अगर उपयोगकर्ताओं के पास कई खाते हैं।

    • यदि किसी उपयोगकर्ता को खातों को स्विच करने के लिए सहमति स्क्रीन को बंद करना होगा, तो Google को एक पुनर्प्राप्त करने योग्य त्रुटि भेजें ताकि उपयोगकर्ता OAuth लिंकिंग और निहित प्रवाह के साथ वांछित खाते में प्रवेश कर सके।
  8. अपने लोगो को शामिल करें। सहमति स्क्रीन पर अपनी कंपनी का लोगो प्रदर्शित करें। अपने लोगो को रखने के लिए अपनी शैली दिशानिर्देशों का उपयोग करें। यदि आप Google का लोगो भी दिखाना चाहते हैं, तो लोगो और ट्रेडमार्क देखें

प्रोजेक्ट बनाएं

खाता लिंकिंग का उपयोग करने के लिए अपनी परियोजना बनाने के लिए:

  1. Go to the Google API Console.
  2. प्रोजेक्ट बनाएं पर क्लिक करें
  3. एक नाम दर्ज करें या उत्पन्न सुझाव को स्वीकार करें।
  4. किसी भी शेष फ़ील्ड की पुष्टि करें या संपादित करें।
  5. क्रिएट पर क्लिक करें

अपना प्रोजेक्ट आईडी देखने के लिए:

  1. Go to the Google API Console.
  2. लैंडिंग पृष्ठ पर तालिका में अपना प्रोजेक्ट ढूंढें। प्रोजेक्ट आईडी ID कॉलम में दिखाई देती है।

Google खाता लिंकिंग प्रक्रिया में एक सहमति स्क्रीन शामिल है, जो उपयोगकर्ताओं को उनके डेटा तक पहुंच का अनुरोध करने वाले एप्लिकेशन को बताती है कि वे किस तरह का डेटा मांग रहे हैं और जो शर्तें लागू होती हैं। Google API क्लाइंट आईडी बनाने से पहले आपको अपनी OAuth सहमति स्क्रीन को कॉन्फ़िगर करना होगा।

  1. Google API कंसोल के OAuth सहमति स्क्रीन पृष्ठ को खोलें।
  2. यदि संकेत दिया गया है, तो आपके द्वारा बनाई गई परियोजना का चयन करें।
  3. "OAuth सहमति स्क्रीन" पृष्ठ पर, फ़ॉर्म भरें और "सहेजें" बटन पर क्लिक करें।

    आवेदन का नाम: सहमति के लिए आवेदन करने का नाम। नाम को आपके एप्लिकेशन को सटीक रूप से प्रतिबिंबित करना चाहिए और उन एप्लिकेशन नाम के अनुरूप होना चाहिए जो उपयोगकर्ता कहीं और देखते हैं। आवेदन का नाम खाता लिंकिंग सहमति स्क्रीन पर दिखाया जाएगा।

    एप्लिकेशन लोगो: सहमति स्क्रीन पर एक छवि जो उपयोगकर्ताओं को आपके ऐप को पहचानने में मदद करेगी। लोगो को खाता लिंकिंग सहमति स्क्रीन पर और खाता सेटिंग्स पर दिखाया गया है

    समर्थन ईमेल: उपयोगकर्ताओं को उनकी सहमति के बारे में सवालों के साथ आपसे संपर्क करने के लिए।

    Google API के लिए स्कोप: स्कोप आपके एप्लिकेशन को आपके उपयोगकर्ता के निजी Google डेटा तक पहुंचने की अनुमति देते हैं। Google खाता लिंकिंग उपयोग मामले के लिए, डिफ़ॉल्ट स्कोप (ईमेल, प्रोफ़ाइल, ओपनिड) पर्याप्त है, आपको किसी भी संवेदनशील स्कोप को जोड़ने की आवश्यकता नहीं है। यह आमतौर पर एक सबसे अच्छा अभ्यास है कि समय के साथ-साथ सामने वाले की आवश्यकता होती है। और जानें

    अधिकृत डोमेन: आपकी और आपके उपयोगकर्ताओं की सुरक्षा के लिए, Google केवल उन अनुप्रयोगों को अनुमति देता है जो अधिकृत डोमेन का उपयोग करने के लिए OAuth का उपयोग करके प्रमाणित करते हैं। आपके एप्लिकेशन के लिंक अधिकृत डोमेन पर होस्ट किए जाने चाहिए। और जानें

    एप्लिकेशन होमपेज लिंक: आपके आवेदन के लिए होम पेज। अधिकृत डोमेन पर होस्ट किया जाना चाहिए।

    एप्लिकेशन गोपनीयता नीति लिंक: Google Acount लिंकिंग सहमति स्क्रीन पर दिखाया गया है। अधिकृत डोमेन पर होस्ट किया जाना चाहिए।

    सेवा की लिंक की शर्तें (वैकल्पिक): अधिकृत डोमेन पर होस्ट की जानी चाहिए।

    चित्र 1 । एक काल्पनिक अनुप्रयोग, ट्यूनरी के लिए Google खाता लिंकिंग सहमति स्क्रीन

  4. "सत्यापन स्थिति" की जांच करें, यदि आपके आवेदन को सत्यापन की आवश्यकता है तो सत्यापन के लिए अपना आवेदन जमा करने के लिए "सबमिट फॉर वेरिफिकेशन" बटन पर क्लिक करें। विवरण के लिए OAuth सत्यापन आवश्यकताओं का संदर्भ लें।

अपने OAuth सर्वर को लागू करें

OAuth 2.0 अंतर्निहित प्रवाह का समर्थन करने के लिए, आपकी सेवा एक प्राधिकरण endpoint HTTPS से उपलब्ध कराता है। यह समापन बिंदु प्रमाणीकरण और डेटा एक्सेस के लिए उपयोगकर्ताओं से सहमति प्राप्त करने के लिए ज़िम्मेदार है। प्राधिकरण समापन बिंदु आपके उन उपयोगकर्ताओं के लिए एक साइन-इन UI प्रस्तुत करता है जो पहले से साइन इन नहीं हैं और अनुरोधित पहुंच के लिए सहमति रिकॉर्ड करते हैं।

जब किसी Google एप्लिकेशन को आपकी सेवा के अधिकृत API में से किसी एक को कॉल करने की आवश्यकता होती है, तो Google इस समापन बिंदु का उपयोग आपके उपयोगकर्ताओं से उनकी ओर से इन API को कॉल करने की अनुमति प्राप्त करने के लिए करता है।

Google द्वारा शुरू किए गए एक सामान्य OAuth 2.0 निहित प्रवाह सत्र में निम्न प्रवाह होता है:

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

प्राधिकरण अनुरोधों को संभालें

जब Google एप्लिकेशन को OAuth 2.0 निहित प्रवाह के माध्यम से खाता लिंकिंग करने की आवश्यकता होती है, तो Google उपयोगकर्ता को आपके प्राधिकरण समापन बिंदु पर एक अनुरोध के साथ भेजता है जिसमें निम्नलिखित पैरामीटर शामिल होते हैं:

प्राधिकरण समापन बिंदु पैरामीटर
client_id वह क्लाइंट आईडी जिसे आपने Google को असाइन किया है.
redirect_uri वह URL जिस पर आप इस अनुरोध का जवाब भेजते हैं।
state एक बहीखाता मूल्य जो Google को वापस भेज दिया जाता है, रीडायरेक्ट URI में अपरिवर्तित रहता है।
response_type प्रतिक्रिया में वापस जाने के लिए मूल्य का प्रकार। OAuth 2.0 अंतर्निहित प्रवाह के लिए, प्रतिक्रिया प्रकार हमेशा है token
user_locale में Google खाते भाषा सेटिंग RFC5646 प्रारूप उपयोगकर्ता की पसंदीदा भाषा में अपनी सामग्री स्थानीय बनाना इस्तेमाल किया।

उदाहरण के लिए, यदि आपके प्राधिकरण समाप्ति बिंदु पर उपलब्ध है https://myservice.example.com/auth , एक अनुरोध निम्नलिखित प्रकार दिखाई देंगे:

GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&response_type=token&user_locale=LOCALE

साइन-इन अनुरोधों को संभालने के लिए अपने प्राधिकरण समापन बिंदु के लिए, निम्न चरणों का पालन करें:

  1. सत्यापित करें client_id और redirect_uri अनायास ही हो या गलत कॉन्फ़िगर क्लाइंट ऐप्स में पहुंच प्रदान करना रोकने के लिए मान:

    • पुष्टि करें कि client_id ग्राहक आईडी आप Google को सौंपा मेल खाता है।
    • पुष्टि करें कि URL द्वारा निर्दिष्ट redirect_uri पैरामीटर निम्नलिखित रूप है:
      https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
      https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
      
  2. जांचें कि उपयोगकर्ता आपकी सेवा में साइन इन है या नहीं। यदि उपयोगकर्ता साइन इन नहीं है, तो अपनी सेवा का साइन-इन या साइन-अप प्रवाह पूरा करें।

  3. अपने एपीआई तक पहुंचने के लिए उपयोग करने के लिए Google के लिए एक एक्सेस टोकन जेनरेट करें। एक्सेस टोकन कोई भी स्ट्रिंग मान हो सकता है, लेकिन इसे विशिष्ट रूप से उपयोगकर्ता और क्लाइंट का प्रतिनिधित्व करना चाहिए जो टोकन के लिए है और अनुमान योग्य नहीं होना चाहिए।

  4. एक HTTP प्रतिक्रिया है कि URL द्वारा निर्दिष्ट करने के लिए उपयोगकर्ता के ब्राउज़र पुनर्निर्देश भेजें redirect_uri पैरामीटर। URL फ़्रैगमेंट में निम्न सभी पैरामीटर शामिल करें:

    • access_token : पहुँच आप टोकन बस उत्पन्न
    • token_type : स्ट्रिंग bearer
    • state : मूल अनुरोध से असंशोधित राज्य मूल्य

    निम्नलिखित परिणामी URL का एक उदाहरण है:

    https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID#access_token=ACCESS_TOKEN&token_type=bearer&state=STATE_STRING

गूगल के OAuth 2.0 रीडायरेक्ट हैंडलर टोकन पहुँच इसकी पुष्टि करेगी कि प्राप्त करता है state मूल्य नहीं बदला है। Google द्वारा आपकी सेवा के लिए एक एक्सेस टोकन प्राप्त करने के बाद, Google आपकी सेवा API में आने वाली कॉलों के लिए टोकन संलग्न करता है।

उपयोगकर्ता जानकारी अनुरोधों को संभालें

UserInfo endpoint OAuth 2.0 संरक्षित संसाधन है कि लिंक किया गया प्रयोक्ता के बारे में वापसी का दावा है। निम्नलिखित उपयोग के मामलों को छोड़कर, userinfo एंडपॉइंट को लागू करना और होस्ट करना वैकल्पिक है:

आपके टोकन एंडपॉइंट से एक्सेस टोकन को सफलतापूर्वक पुनर्प्राप्त करने के बाद, Google लिंक किए गए उपयोगकर्ता के बारे में बुनियादी प्रोफ़ाइल जानकारी पुनर्प्राप्त करने के लिए आपके उपयोगकर्ता जानकारी एंडपॉइंट पर एक अनुरोध भेजता है।

userinfo समापन बिंदु अनुरोध शीर्षलेख
Authorization header बियरर प्रकार का एक्सेस टोकन।

उदाहरण के लिए, यदि आपके UserInfo समाप्ति बिंदु पर उपलब्ध है https://myservice.example.com/userinfo , एक अनुरोध निम्नलिखित प्रकार दिखाई देंगे:

GET /userinfo HTTP/1.1
Host: myservice.example.com
Authorization: Bearer ACCESS_TOKEN

अनुरोधों को संभालने के लिए आपके userinfo समापन बिंदु के लिए, निम्न चरणों का पालन करें:

  1. प्राधिकरण हेडर से एक्सेस टोकन निकालें और एक्सेस टोकन से जुड़े उपयोगकर्ता के लिए जानकारी लौटाएं।
  2. यदि पहुँच टोकन अमान्य है, उपयोग करने के साथ एक HTTP 401 अनधिकृत त्रुटि वापस WWW-Authenticate रिस्पांस हैडर। नीचे एक UserInfo त्रुटि प्रतिसाद का एक उदाहरण है:
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: error="invalid_token",
    error_description="The Access Token expired"
    
    तो एक 401 अनधिकृत, या किसी अन्य असफल त्रुटि प्रतिसाद लिंकिंग प्रक्रिया के दौरान दिया जाता है, त्रुटि गैर वसूली योग्य हो जाएगा, पुनर्प्राप्त टोकन को छोड़ दिया जाएगा और उपयोगकर्ता होगा फिर से जोड़ने की प्रक्रिया शुरू करने के लिए।
  3. पहुँच टोकन मान्य, वापसी और HTTP 200 HTTPS प्रतिक्रिया के शरीर में निम्नलिखित JSON ऑब्जेक्ट के साथ प्रतिक्रिया है:

    {
    "sub": "USER_UUID",
    "email": "EMAIL_ADDRESS",
    "given_name": "FIRST_NAME",
    "family_name": "LAST_NAME",
    "name": "FULL_NAME",
    "picture": "PROFILE_PICTURE",
    }
    
    अपने UserInfo endpoint रिटर्न पर HTTP 200 सफलता प्रतिक्रिया करते हैं, तो टोकन लिया गया और दावों उपयोगकर्ता के Google के खिलाफ पंजीकृत हैं लेखा।

    userinfo समापन बिंदु प्रतिक्रिया
    sub एक विशिष्ट आईडी जो आपके सिस्टम में उपयोगकर्ता की पहचान करती है।
    email उपयोगकर्ता का ईमेल पता।
    given_name वैकल्पिक: उपयोगकर्ता के नाम को।
    family_name वैकल्पिक: उपयोगकर्ता के उपनाम को।
    name वैकल्पिक: उपयोगकर्ता का पूरा नाम।
    picture वैकल्पिक: उपयोगकर्ता के प्रोफ़ाइल चित्र।

अपने कार्यान्वयन को मान्य करना

आप का उपयोग करके अपने कार्यान्वयन को मान्य कर सकते OAuth 2.0 खेल का मैदान उपकरण।

टूल में, निम्न चरणों का पालन करें:

  1. कॉन्फ़िगरेशन क्लिक करें OAuth 2.0 विन्यास विंडो खोलने के लिए।
  2. OAuth प्रवाह क्षेत्र में, क्लाइंट-साइड का चयन करें।
  3. OAuth Endpoints क्षेत्र में, कस्टम का चयन करें।
  4. अपना OAuth 2.0 समापन बिंदु और संबंधित फ़ील्ड में आपके द्वारा Google को निर्दिष्ट क्लाइंट आईडी निर्दिष्ट करें।
  5. चरण 1 अनुभाग में, किसी भी गूगल कार्यक्षेत्रों का चयन नहीं करते। इसके बजाय, इस फ़ील्ड को खाली छोड़ दें या अपने सर्वर के लिए मान्य दायरा टाइप करें (या यदि आप OAuth स्कोप का उपयोग नहीं करते हैं तो एक मनमाना स्ट्रिंग)। यह करने के बाद, अधिकृत एपीआई पर क्लिक करें।
  6. चरण 2 और चरण 3 वर्गों में, OAuth 2.0 प्रवाह के माध्यम से जाना और सत्यापित करें कि प्रत्येक चरण के रूप में इरादा काम करता है।

आप का उपयोग करके अपने कार्यान्वयन को मान्य कर सकते गूगल खाता लिंक करना डेमो उपकरण।

टूल में, निम्न चरणों का पालन करें:

  1. क्लिक करें गूगल से प्रवेश करें बटन में।
  2. वह खाता चुनें जिसे आप लिंक करना चाहते हैं।
  3. सेवा आईडी दर्ज करें।
  4. वैकल्पिक रूप से एक या अधिक क्षेत्र दर्ज करें जिसके लिए आप एक्सेस का अनुरोध करेंगे।
  5. प्रारंभ डेमो क्लिक करें।
  6. संकेत मिलने पर, पुष्टि करें कि आप सहमति दे सकते हैं और लिंकिंग अनुरोध को अस्वीकार कर सकते हैं।
  7. पुष्टि करें कि आपको अपने प्लेटफ़ॉर्म पर पुनर्निर्देशित किया गया है।