2012-04-03 21 views
5

मैं दो अलग-अलग प्रणालियों के बीच सिंगल साइन-ऑन के लिए विकल्पों की जांच कर रहा हूं: एक .NET, एक जावा ईई। वे स्वतंत्र रूप से प्रबंधित होते हैं और कुछ ओवरलैपिंग उपयोगकर्ताओं के साथ अलग उपयोगकर्ता प्रबंधन होते हैं।क्रॉस-प्लेटफ़ॉर्म एसएसओ - कहां से शुरू करें?

मैं पासवर्ड के लिए पुनः संकेत दिए बिना एक से दूसरे लिंक करने में सक्षम होना चाहता हूं।

ऐसा लगता है कि वहां एसएसओ उत्पादों और प्रोटोकॉल के लिए कई विकल्प हैं। मुझे काफी भरोसा है कि मैं अपने स्वयं के सुरक्षित टोकन उत्पन्न करने और मान्य करने के लिए एक-एक को कोड कर सकता हूं लेकिन पहिया को फिर से आविष्कार नहीं करना चाहूंगा।

दृष्टिकोण और/या उत्पाद (अधिमानतः खुले स्रोत) के संदर्भ में आप क्या सलाह देंगे?

सबसे पहले, क्या आप एसएएमएल, ओपनआईडी, ओथ या किसी उपरोक्त में से कोई भी समर्थन नहीं करेंगे?

दूसरा, मुक्त/मुक्त स्रोत उत्पादों के बाहर, मैं ओपनैम, शिबोबोलेथ, जॉसो और सीएएस से अवगत हूं। उनमें से किसी के साथ साझा करने के लिए कोई अनुभव, अच्छा, बुरा या बदसूरत?

उत्तर

9

सबसे पहले की सुविधा देता है प्रोटोकॉल को देखो:

  1. SAML 2.0 एक केंद्रीकृत/विकेन्द्रीकृत एसएसओ प्रोटोकॉल है। यह सबसे उन्नत प्रोटोकॉल है और संघ प्रदान करता है। आप उपयोगकर्ताओं को किसी भी सिस्टम सिस्टम का उपयोग करके साइन इन करने की अनुमति दे सकते हैं, या सभी उपयोगकर्ताओं को एकल सिस्टम (जिसे आईडीपी के नाम से जाना जाता है) के माध्यम से चैनल कर सकते हैं। SAML 2.0 का व्यापक रूप से वित्तीय और सरकारी क्षेत्रों में व्यापक रूप से अनुप्रयोगों (उदाहरण के लिए Google ऐप्स और बिक्री बल) के साथ उपयोग किया जाता है। यह भी सबसे जटिल प्रोटोकॉल

  2. OpenID एक विकेन्द्रीकृत प्रोटोकॉल है और इंटरनेट के लिए सबसे अनुकूल है, नहीं इंट्रानेट/एक्स्ट्रानेट अनुप्रयोगों है। उपयोगकर्ता किसी भी OpenId प्रदाता से साइन इन करना चुन सकते हैं। Stackoverflow OpenId का एक अच्छा उदाहरण है - हम हमारे Google या फेसबुक खाते का उपयोग करके साइन इन करना चुन सकते हैं। आप उपभोक्ता अनुप्रयोग के बीच एक डिफ़ॉल्ट एसोसिएशन (जिसे रेलीइंग पार्टी के रूप में जाना जाता है) और एसएसओ सिस्टम (सेवा प्रदाता के रूप में जाना जाता है) के बीच एक केंद्रीकृत तरीके से ओपनआईडी लागू कर सकते हैं।

  3. ओएथ वास्तव में एक एसएसओ प्रोटोकॉल नहीं है। यह उपयोगकर्ता को आवेदन करने की अनुमति देता है के बिना एप्लिकेशन बी में आवेदन बी के लिए प्रमाण-पत्र प्रदान करने के लिए आवेदन बी तक पहुंच। कुछ लोगों ने छद्म प्रमाणीकरण के रूप में ओएथ का उपयोग किया है यानी सिस्टम फ़ोटो तक पहुंचने में सक्षम है उपयोगकर्ता एक्स से संबंधित उपयोगकर्ता एक्स होना चाहिए। यह एक हैक है और अनुशंसित नहीं है।

यह निश्चित रूप से एक मानकीकृत प्रोटोकॉल में ताला से बचने के लिए साथ जाने के लिए एक अच्छा विचार है। माइक्रोसॉफ्ट ने हाल ही में SAML 2.0 के लिए समर्थन शुरू की है और कई खुला स्रोत और जावा के लिए उपलब्ध वाणिज्यिक उत्पादों रहे हैं। जावा के लिए ओपनआईडी कार्यान्वयन उपलब्ध हैं लेकिन मुझे टिप्पणी करने के लिए .NET दुनिया के बारे में पर्याप्त जानकारी नहीं है।

जैसा कि आपने बताया है कि ओपन सोर्स SAML उत्पादों की एक श्रृंखला उपलब्ध है (ओपनएएम, शिबोबोलेथ, जॉसो और सीएएस)।सावधानी के एक नोट - एसएएमएल एक जटिल प्रोटोकॉल है, इसलिए यदि आप ओपन सोर्स रूट पर जाते हैं तो आपको कुछ कड़ी मेहनत के लिए तैयार रहना होगा। जब हमने अपना Cloudseal एसएसओ प्लेटफ़ॉर्म (SAML 2.0 आधारित) बनाया, तो हमने जटिलता को सारणीबद्ध करने के लिए चीजों को सरल बनाने की कोशिश में काफी समय बिताया। अन्य वाणिज्यिक विक्रेताओं ने वही किया है लेकिन आपके द्वारा उल्लेखित ओपन सोर्स उत्पादों को सरलता के बजाय कार्यक्षमता पर अधिक केंद्रित किया गया है - IMHO! :)

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