उपयोगकर्ता का अनुभव आपके प्लैटफ़ॉर्म या 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
के अनुरोध के मुताबिक, अनुरोध को फिर से भेजता है.
कई खातों की सुरक्षा (आरआईएससी)
अगर आपने 'सभी खातों की सुरक्षा' सुविधा को चालू किया है, तो आपका प्लैटफ़ॉर्म 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).