2016-11-10 14 views
6

का उपयोग कर एकल साइन ऑन (एसएसओ) मैंने एसएसओ के बारे में कई लेख पढ़े हैं लेकिन मेरे दिमाग में कोई जवाब नहीं मिला। मैं नीचे की तरह एक परिदृश्य है:जेडब्ल्यूटी

परिदृश्य:

  • मेरी कंपनी sso तंत्र जेडब्ल्यूटी का उपयोग कर करना चाहता है।
  • कंपनी एबीसी और xyz.comxyz के रूप में के रूप में abc.com की तरह 2 अलग डोमेन है।
  • इसके अलावा मास्टरडोमेन है जो क्लाइंट प्रमाणीकरण प्रबंधित करता है।
  • उपयोगकर्ता एक्स पहले एबीसी में लॉग इन करना चाहता है।
  • एबीसीmasterdomain और masterdomain प्रमाणित करता है उपयोगकर्ता तो आदेश एबीसी को वापस भेजने के लिए हस्ताक्षर किए जेडब्ल्यूटी बनाने के लिए साख भेजता है।
  • एबीसी इस jwt को कुकी में रखता है।
  • थोड़ी देर के बाद यदि एबीसी पर एक लॉगिन कंप्यूटर पर प्रयास किया जाता है, तो सिस्टम क्रेडेंशियल्स के लिए नहीं पूछता है और स्वचालित रूप से उपयोगकर्ता को लॉगिन करता है।

प्रश्न:

उपयोगकर्ता xyz डोमेन पृष्ठ खोलने के लिए प्रयास करता है, कैसे प्रणाली से पहले समझना है loggedin कि उपयोगकर्ता? मेरा मतलब है xyz डोमेन एबीसी की कुकी तक नहीं पहुंच सकता है जिसमें jwt है। xyz पर कौन सी जानकारी भेजी जानी चाहिए जो उपयोगकर्ता को इंगित करता है एक्स लॉगिन करने का प्रयास कर रहा है?

अग्रिम धन्यवाद

उत्तर

3

आप/घर पृष्ठ से कनेक्ट मध्यवर्ती डोमेन के localStorage Iframe का उपयोग करके

cross domain sso

परिदृश्य

एक कुकी में जेडब्ल्यूटी प्रमाणीकरण टोकन स्टोर कर सकते हैं
  • एबीसीमास्टरडमैन और मास्टरडोमेन प्रमाण पत्र भेजता है और फिर एबीसी को वापस भेजने के लिए एक हस्ताक्षरित jwt बनाते हैं।

  • एबीसीmasterdomain एक कुकी में इस जेडब्ल्यूटी रहता है।

  • थोड़ी देर के बाद यदि एबीसी पर एक लॉगिन कंप्यूटर पर प्रयास किया जाता है, तो सिस्टम क्रेडेंशियल्स के लिए नहीं पूछता है और स्वचालित रूप से उपयोगकर्ता को लॉगिन करता है।

अंत में जब उपयोगकर्ता दूसरे डोमेन में प्रवेश करती है xyz, जेडब्ल्यूटी masterdomain भंडारण से iframe का उपयोग करके वसूल किया जाता है, और स्वचालित रूप से उपयोगकर्ता

CORS एक नहीं है के लिए लॉग इन समस्या क्योंकि masterdomain.com के पास इसके संग्रहण तक पहुंच है और अगर मूल और गंतव्य पहचाना जाता है तो iframes की अनुमति है (http://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage देखें)

विकास को आसान बनाने के लिए, हम हाल ही में एक खुला स्रोत परियोजना क्रॉस डोमेन एसएसओ जेडब्ल्यूटी साथ https://github.com/Aralink/ssojwt

+0

पर क्या सुरक्षा के बारे में जारी किया है अगर कोई है जो उपयोगकर्ता द्वारा दर्ज फ़िशिंग वेबसाइट और उपयोगकर्ता पहुँच टोकन खो देंगे? ** ssojwt ** इस मामले को corver करता है? – Vunb

+1

@Vunb, iframe 'postmessage' फ़ंक्शन के लिए आवश्यक है कि मूल और गंतव्य साइटों को पहले अधिकृत किया जाना चाहिए, अन्यथा ब्राउज़र मैसेजिंग की अनुमति नहीं देगा, इसलिए हमलावर साझा टोकन तक नहीं पहुंच सकता है क्योंकि यह सफेद सूची में नहीं है – pedrofb

संबंधित मुद्दे