उपयोगकर्ता का अनुभव आपके प्लैटफ़ॉर्म या Google से अलग किया जा सकता है. साथ ही, दोनों पर एक जैसा लिंक होने की स्थिति से सबसे अच्छा उपयोगकर्ता अनुभव मिलता है. Google खाता लिंक करने के लिए, टोकन रद्द करने के एंडपॉइंट या क्रॉस-खाता सुरक्षा की सुविधा ज़रूरी नहीं है.
खाते को इनमें से किसी भी खाते से अलग किया जा सकता है:
-
उपयोगकर्ता का अनुरोध
- Google ऐप्लिकेशन या Google खाता की सेटिंग
- आपका प्लैटफ़ॉर्म
- जिस टोकन की समयसीमा खत्म हो चुकी है उसे रिन्यू न कर पाना
- आपके या Google के अन्य इवेंट. उदाहरण के लिए, गलत इस्तेमाल और खतरे का पता लगाने वाली सेवाओं के ज़रिए खाते को निलंबित करना.
उपयोगकर्ता ने Google से अनलिंक करने का अनुरोध किया है
उपयोगकर्ता के Google खाते या ऐप्लिकेशन से किए गए खाते को अलग करने की प्रोसेस, पहले ऐक्सेस जारी किए गए ऐक्सेस और रीफ़्रेश टोकन को मिटा देती है. साथ ही, उपयोगकर्ता की सहमति को हटा देती है और वैकल्पिक रूप से आपके टोकन निरस्त करने वाले एंडपॉइंट को कॉल करती है.
उपयोगकर्ता ने आपके प्लैटफ़ॉर्म से अलग करने का अनुरोध किया है
आपको उपयोगकर्ताओं को अनलिंक करने का एक तरीका उपलब्ध कराना चाहिए, जैसे उनके खाते का यूआरएल. अगर आप उपयोगकर्ताओं को अनलिंक करने का तरीका नहीं बताते हैं, तो Google खाते का लिंक शामिल करें, ताकि उपयोगकर्ता अपना लिंक किया गया खाता प्रबंधित कर सकें.
आप जोखिम और घटना; सहयोग और सहयोग (आरआईएससी) को लागू करना चुन सकते हैं. साथ ही, उपयोगकर्ता को खाता जोड़ने की स्थिति में हुए बदलावों के बारे में Google को बता सकते हैं. इससे उपयोगकर्ता को बेहतर अनुभव मिलता है, जब आपका प्लैटफ़ॉर्म और Google, लिंक करने की मौजूदा स्थिति दिखाते हैं. साथ ही, उन्हें जोड़ने के स्टेटस को अपडेट करने के लिए, रीफ़्रेश या ऐक्सेस टोकन के अनुरोध पर निर्भर होने की ज़रूरत नहीं होती.
टोकन की समयसीमा खत्म
उपयोगकर्ताओं को बेहतर अनुभव देने और सेवा में रुकावट से बचने के लिए, Google की कोशिश रहती है कि उपयोगकर्ता के लाइफ़टाइम के खत्म होने से पहले, रीफ़्रेश टोकन को रिन्यू कर दिया जाए. कुछ मामलों में, मान्य रीफ़्रेश रीफ़्रेश उपलब्ध न होने पर, खातों को फिर से लिंक करने के लिए, उपयोगकर्ता की सहमति की ज़रूरत पड़ सकती है.
अपने प्लैटफ़ॉर्म को इस तरह डिज़ाइन करें कि उसकी समय-सीमा खत्म हो जाए और टोकन रीफ़्रेश हो जाएं. इससे, क्लाइंट के सर्वर एक्सचेंज में मौजूद शर्तों को कम किया जा सकता है. साथ ही, यह उपयोगकर्ता को होने वाली रुकावट से बचने और मुश्किल समय को कम करने के साथ-साथ, गड़बड़ी को हैंडल करने से जुड़ी समस्याओं को कम करने में मदद कर सकता है. हालांकि, हो सकता है कि पिछले और नए, समय-सीमा खत्म हो चुके टोकन, दोनों का इस्तेमाल क्लाइंट-सर्वर टोकन रिन्यूअल एक्सचेंज के दौरान और क्लस्टर सिंक होने से पहले, कुछ समय के लिए किया जा सके. उदाहरण के लिए, आपकी सेवा के लिए किया गया Google का अनुरोध, जो खत्म हो चुके ऐक्सेस टोकन का इस्तेमाल करता है, वह नया ऐक्सेस टोकन जारी करने के ठीक बाद होता है. हालांकि, Google में रसीद और क्लस्टर सिंक करने से पहले ऐसा किया जाता है. सुझाव है कि रीफ़्रेश टोकन रोटेशन के लिए अन्य सुरक्षा उपाय भी अपनाए जाएं.
अन्य इवेंट
खाते इस्तेमाल न किए जाने की कई वजहें हो सकती हैं. जैसे: खाते का इस्तेमाल न करना, खाता निलंबित होना, नुकसान पहुंचाने वाली गतिविधियां वगैरह. ऐसी स्थितियों में, आपका प्लैटफ़ॉर्म और Google, उपयोगकर्ता के खातों को बेहतर तरीके से मैनेज कर सकता है. साथ ही, वह खाते और लिंक की स्थिति में हुए एक और बदलाव के बारे में सूचना देकर, उसे फिर से लिंक कर सकता है.
Google के लिए कॉल करने के लिए, टोकन निरस्त करने वाला एंडपॉइंट लागू करें. साथ ही, आरआईएससी का इस्तेमाल करके, Google को इसकी सूचना दें. इससे यह पक्का किया जा सकेगा कि आपका प्लैटफ़ॉर्म और Google, उपयोगकर्ता के खाते की एक जैसी लिंक स्थिति बनाए रखें.
टोकन निरस्त करने का एंडपॉइंट
यदि आप OAuth 2.0 टोकन निरस्तीकरण समापन बिंदु का समर्थन करते हैं, तो आपका प्लेटफ़ॉर्म Google से सूचनाएं प्राप्त कर सकता है। यह आपको लिंक राज्य परिवर्तनों के उपयोगकर्ताओं को सूचित करता है, एक टोकन को अमान्य करता है, और सुरक्षा क्रेडेंशियल और प्राधिकरण अनुदान को साफ करता है।
अनुरोध के निम्नलिखित रूप हैं:
POST /revoke HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&token=TOKEN&token_type_hint=refresh_token
आपका टोकन निरस्तीकरण समापन बिंदु निम्नलिखित मापदंडों को संभालने में सक्षम होना चाहिए:
निरसन समापन बिंदु पैरामीटर | |
---|---|
client_id | एक स्ट्रिंग जो Google के रूप में अनुरोध मूल की पहचान करती है। यह स्ट्रिंग Google के विशिष्ट पहचानकर्ता के रूप में आपके सिस्टम में पंजीकृत होनी चाहिए। |
client_secret | एक गुप्त स्ट्रिंग जो आपने अपनी सेवा के लिए Google के साथ पंजीकृत की थी। |
token | टोकन निरस्त किया जाना है। |
token_type_hint | (वैकल्पिक) टोकन का प्रकार निरस्त किया जा रहा है, या तो एक access_token या refresh_token । यदि अनिर्दिष्ट है, तो access_token चूक। |
टोकन हटाए जाने या अमान्य होने पर प्रतिक्रिया लौटाएं। एक उदाहरण के लिए निम्नलिखित देखें:
HTTP/1.1 200 Success Content-Type: application/json;charset=UTF-8
यदि किसी भी कारण से टोकन हटाया नहीं जा सकता है, तो 503 प्रतिक्रिया कोड लौटाएं, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:
HTTP/1.1 503 Service Unavailable Content-Type: application/json;charset=UTF-8 Retry-After: HTTP-date / delay-seconds
Google अनुरोध को बाद में या Retry-After
से Retry-After
।
कई खातों की सुरक्षा (आरआईएससी)
अगर आपने 'सभी खातों की सुरक्षा' सुविधा को चालू किया है, तो आपका प्लैटफ़ॉर्म Google को यह सूचना भेज सकता है ऐक्सेस या रीफ़्रेश टोकन निरस्त किए जाते हैं. इसकी मदद से, Google उपयोगकर्ताओं को लिंक की स्थिति में बदलाव करने, टोकन को अमान्य करने, सुरक्षा से जुड़े क्रेडेंशियल हटाने, और अनुमति देना.
'सभी खातों की सुरक्षा' सुविधा RISC मानक को OpenID Foundation.
सुरक्षा इवेंट का टोकन का इस्तेमाल, Google को टोकन रद्द होने की सूचना देने के लिए किया जाता है.
डिकोड किए जाने पर, टोकन रद्द करने का इवेंट कुछ ऐसा दिखेगा:
{
"iss":"http://risc.example.com",
"iat":1521068887,
"aud":"google_account_linking",
"jti":"101942095",
"toe": "1508184602",
"events": {
"https://schemas.openid.net/secevent/oauth/event-type/token-revoked":{
"subject_type": "oauth_token",
"token_type": "refresh_token",
"token_identifier_alg": "hash_SHA512_double",
"token": "double SHA-512 hash value of token"
}
}
}
ऐसे सुरक्षा इवेंट टोकन जिनका इस्तेमाल, Google को टोकन रद्द होने के इवेंट की सूचना देने के लिए किया जाता है नीचे दी गई टेबल में दी गई ज़रूरी शर्तों का पालन करना होगा:
टोकन रद्द करने के इवेंट | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
iss |
जारी करने वाले का दावा: यह एक ऐसा यूआरएल है जिसे आप होस्ट करते हैं. साथ ही, इसे रजिस्ट्रेशन के दौरान Google की सेवाओं का इस्तेमाल कर सकते हैं. | ||||||||||
aud |
ऑडियंस का दावा: इससे Google की पहचान JWT पाने वाले के तौर पर होती है. यह
google_account_linking पर सेट होना चाहिए. |
||||||||||
jti |
JWT आईडी दावा: यह एक यूनीक आईडी है, जिसे हर सुरक्षा से जुड़ा इवेंट टोकन. | ||||||||||
iat |
दावा किए जाने पर जारी किया गया: यह NumericDate की वैल्यू है
जो उस समय को दिखाती है जब सुरक्षा से जुड़ा यह इवेंट टोकन बनाया गया था. |
||||||||||
toe |
इवेंट का दावा किए जाने का समय: यह एक वैकल्पिक है
NumericDate वह वैल्यू जो उस समय को दिखाती है जब
टोकन को निरस्त किया गया. |
||||||||||
exp |
समयसीमा खत्म होने के समय का दावा: इस फ़ील्ड को शामिल न करें, क्योंकि इस सूचना की वजह से इवेंट पहले ही हो चुका है. | ||||||||||
events |
|
फ़ील्ड के टाइप और फ़ॉर्मैट के बारे में ज़्यादा जानने के लिए, देखें JSON वेब टोकन (JWT).