हालांकि प्रारंभिक लॉगिन के समान है, तो उपयोगकर्ता को किसी ब्राउज़र को खोलता है और चला जाता है ऐप बी के लिए, फिर क्या उनके सत्र मौजूदा टोकन के साथ स्थापित हो जाता है?
यदि उत्तर बैक-एंड सर्वर पर सत्र स्थिति है, तो ऐप बी में नए अनुरोध के साथ ऐप ए में लॉग इन किए गए उपयोगकर्ता से सत्र राज्य कैसे मेल खाता है?
मैं कहूंगा कि कुकीज़ और रीडायरेक्ट्स के बारे में यह टोकन की तुलना में अधिक है। उपयोगकर्ता की पहचान स्थापित होने के बाद टोकन उत्पन्न होते हैं।
तो जब आप अपने ब्राउज़र के माध्यम से ऐप बी हिट करते हैं, तो ऐप बी आपके उपयोगकर्ता-एजेंट को ऑथ सर्वर पर रीडायरेक्ट करता है (जो बदले में आपको एक एसएसओ साइट पर रीडायरेक्ट कर सकता है)।
ध्यान देने योग्य बात यह है कि एसएसओ लॉगिन अनुरोध वास्तव में आपके ब्राउज़र और एसएसओ सर्वर के बीच एक HTTP अनुरोध है।
तो एसएसओ कुकी पहले से ही वहां है - क्योंकि पहले, ऐप ए ने आपके उपयोगकर्ता-एजेंट को ऑथ/एसएसओ सर्वर पर रीडायरेक्ट किया होगा जहां लॉगिन किया गया था। एसएसओ सर्वर तब आपके और उसके बीच एक कुकी बना सकता है।
अगर मैं अनुप्रयोग एक के लिए लॉग इन और पुनः प्राप्त एक टोकन तो अनुप्रयोग एक ओर से एप्लिकेशन बी लांच अनुप्रयोग बी को टोकन पास करके
मुझे यकीन है कि मैं अनुप्रयोग के बारे में समझ में नहीं कर रहा हूँ मैं देख सकता हूँ एप बी के लिए अपना टोकन पास करना आम तौर पर एप्स (ओथ 2.0 क्लाइंट) टोकन साझा नहीं करेगा। अनुप्रयोग बी प्रमाणीकरण सर्वर के लिए अपने स्वयं के अनुरोध करता है जो (यदि उपयोगकर्ता प्रवेश हो) लॉगिन भाग को छोड़ सकते हैं, लेकिन फिर कि सत्यापित करने की आवश्यकता होगा:
अनुप्रयोग बी कार्यक्षेत्रों का अनुरोध करने के लिए और कहा कि अधिकार है
साइन-इन किए गए उपयोगकर्ता ने उन क्षेत्रों तक पहुंच प्रदान की है।
उपयोगकर्ता के प्रवेश और पहले गुंजाइश पहुँच को मंजूरी दी है, तो यह सब प्रसंस्करण अंत रीडायरेक्ट का एक समूह के अलावा अन्य उपयोगकर्ता के लिए सहज है।
यह मानते हुए कि आप लागू अनुदान प्रवाह का उपयोग करते हैं (मैंने देखा है कि आपके ऐप्स में से एक एंजुलरजेस ऐप है)।
यदि आप कोड, पासवर्ड या क्लाइंट-प्रमाण-पत्र Oauth2.0 अनुदान का उपयोग करते हैं तो प्रारंभिक उपयोगकर्ता लॉगिन और सहमति के बाद आपको रीफ्रेश टोकन प्राप्त हो सकता है।
रीफ्रेश टोकन लॉगिन के लिए फिर से आवश्यकता के बिना लंबी अवधि की पहुंच (केवल उस ऐप के लिए) के बराबर है और अंत उपयोगकर्ता से एक से अधिक बार सहमति के बिना।
यह सचमुच Google में आपके शीर्षक के लिए पहली हिट है: https://auth0.com/blog/2015/09/23/what-is-and-how-does-single-sign-on-work/ – thebjorn
@thebjorn मैंने पढ़ा है कि पहली बार लगभग 20 बार हिट लिंक है और मैं अभी भी समझ नहीं पा रहा हूं कि सर्वर वास्तव में क्या महसूस करता है कि ब्राउजर पहले ही लॉग इन है, शायद इसलिए कि टेक्स्ट आम जनता के लिए प्रोग्रामर नहीं है, जबकि उत्तर नीचे यह तुरंत स्पष्ट किया गया है कि यह 'एचएमटीएल 5 लोकल स्टोरेज' का धन्यवाद है कि यह सब काम करता है, लेकिन क्या इसका यह भी अर्थ है कि जेएस को एसएसओ का उपयोग करने की पूरी आवश्यकता है? –
@TimoHuovinen आपको स्थानीय भंडारण/जेएस की आवश्यकता नहीं है। ऑथ/एसएसओ/लॉगिन-सर्वर सामान्य रूप से उपयोगकर्ता को लॉग करता है (सत्र/कुकीज/यहां तक कि स्थानीय स्टोरेज का उपयोग करके, जब तक कि यह बता सके कि उपयोगकर्ता लॉग इन सर्वर पर अगली बार लॉग इन होता है)। जब किसी क्लाइंट-सर्वर को पृष्ठ दिखाने से पहले लॉग इन करने की आवश्यकता होती है, तो यह लॉगिन फॉर्म नहीं प्रस्तुत करता है, लेकिन लॉग इन सर्वर पर रीडायरेक्ट करता है। चूंकि लॉग इनसेवर जानता है कि उपयोगकर्ता लॉग इन है, यह संदेश भेजता है कि "यह उपयोगकर्ता 123 है", और चूंकि क्लाइंट सर्वर लॉग इनसर्वर पर भरोसा करता है, यह पासवर्ड की आवश्यकता के बिना स्थानीय रूप से उपयोगकर्ता 123 को लॉग करता है। – thebjorn