2012-07-10 11 views
12

के साथ एकल साइन को कार्यान्वित या एकीकृत करने के लिए हमारे पास वेब ऐप और सर्वर दोनों के दो अलग-अलग उत्पाद हैं।SAML और Shibboleth

हम दोनों के लिए एकल साइन ऑन लागू करना चाहते हैं, इसलिए जब कोई उपयोगकर्ता एक उत्पाद में लॉग इन हो जाता है, तो वह स्वचालित रूप से उसके अन्य उत्पाद में संसाधनों तक पहुंच सकता है।

मैंने थोड़ा सा पता लगाया है और SAML एक अच्छा दृष्टिकोण है जिसे हम ले सकते हैं, लेकिन हमें यकीन नहीं है कि हम कैसे आगे बढ़ना चाहते हैं।

क्या यह हमारे स्वयं के सेवा प्रदाता को लागू करना एक अच्छा विचार है? मैंने शिब एसपी को देखा है, लेकिन ऐसा लगता है कि मैं इसे अपने उत्पादों में एकीकृत करना चाहता हूं, यह इतना आसान नहीं होगा।

तो मैं सिर्फ उन लोगों से कुछ सुझाव ढूंढ रहा हूं जिन्होंने पहले इसी तरह की समस्या का सामना किया है।

एक और सवाल यह है कि अगर मैं OpenSaml का उपयोग कर एक एसपी को लागू करने की आवश्यकता है तो मैं किस संसाधन का अध्ययन कर सकता हूं? ऐसा लगता है कि बहुत सारे ट्यूटोरियल या उदाहरण नहीं हैं जिन्हें मैं संदर्भित कर सकता हूं।

मुझे वास्तव में सराहना की जाएगी यदि कोई भी कुछ बड़ी प्रक्रियाओं या घटकों को इंगित कर सकता है जो मेरे स्वयं के एसपी को शामिल करने की आवश्यकता है।

संपादित करें 1:

बस मैं क्या चाहते हैं के बारे में अधिक जानकारी प्रदान करने के लिए प्रयास करें। हमारे पास दो अलग-अलग उत्पाद हैं। वर्तमान में हम उपयोगकर्ता डेटाबेस को बाहरी करने में सक्षम हैं। उदाहरण के लिए, जब तक वे एक सेवा को सही तरीके से कार्यान्वित करते हैं, तब तक हमारे उत्पादों को एलडीएपी सर्वर या किसी अन्य बाहरी उपयोगकर्ता डीबी से कनेक्ट करने के लिए कॉन्फ़िगर किया जा सकता है।

अब हमारा लक्ष्य है कि हम अपने दोनों उत्पादों के लिए एसएसओ चाहते हैं। एक परिदृश्य है कि हमारे पास दोनों उत्पादों में हमारा स्वयं का एसपी घटक (या तो कार्यान्वित या एकीकृत) है। ग्राहक का अपना आईडीपी हो सकता है। कुछ कॉन्फ़िगरेशन के साथ, हमारा एसपी उनके आईडीपी से कनेक्ट हो सकता है, और वहां से प्रमाणीकरण कर सकता है, और उपयोगकर्ता को दोनों उत्पादों तक पहुंचने के लिए दो बार लॉगिन करने की आवश्यकता नहीं है। कारण, अगर ग्राहक के पास यह नहीं है तो हम बॉक्स आईडीडी से बाहर निकल सकते हैं।

उत्तर

13

शिबबोलेथ के साथ सबसे बड़ी कठिनाई यह है कि यह प्रभावी रूप से, SAML v2.0 विनिर्देश का एक संदर्भ कार्यान्वयन है।

अधिकांश नियमित स्थापनाओं के लिए, हालांकि, आपको एसएसओ के लिए कुछ वेब ऐप्स सक्षम करने के लिए वास्तव में एसएएमएल स्पेक की बहुत कम आवश्यकता है।

लेकिन चूंकि शिबबोलेथ पूरी चीज को लागू करता है, इसकी सभी क्षमता के साथ, यह कॉन्फ़िगर करने के लिए एक भालू हो सकता है।

हमने शिबबोलेथ (और यह स्वीकार्य रूप से किनारे के उपयोग के मामले में) के साथ एक परियोजना की थी, और, मेरे लिए, उस समय एक एसएएमएल नौसिखिया, यह वास्तव में सब कुछ पाने और काम करने के लिए एक कोर था।

हमारे अगले स्टैब के लिए, मैंने वेब प्रोफाइल के माध्यम से एसएसओ के लिए SAML spec देखा। यदि आप इसे पढ़ते हैं, तो यह वास्तव में इस सीमित उपयोग के मामले के लिए काफी सरल है। और हमने फैसला किया कि शिबबोलेथ का फिर से उपयोग करने के बजाय, हम OpenSAML पुस्तकालयों का उपयोग करके अपना स्वयं का आईडीपी और एसपी लिखेंगे।

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

आप एक आईडीपी के रूप में SimpleSAML का उपयोग करने और अपने वेब ऐप्स के लिए अपना स्वयं का एसपी लिखने पर भी विचार कर सकते हैं। SimpleSAML PHP में है, लेकिन यह थोड़ा और अधिक उपयोगकर्ता के अनुकूल है। आप इसे स्वयं निहित अपाचे सेवा के रूप में देख सकते हैं।

मैं कहूंगा कि हमारा एसपी जवाडोकैड कोड की लगभग 1000 लाइनों में वजन करता है, लेकिन यह ज्यादातर ओपनएसएमएल सामानों को एक साथ और कुछ उपयोगिता सामग्री को तारित करता है। सच में यह डरावना नहीं है। हालांकि वास्तव में हस्ताक्षरित एक्सएमएल ब्लब्स पढ़ने का आनंद लेने के लिए तैयार रहें।

ऐसा नहीं है कि यह वास्तव में सरल नहीं है निराशा होती है, लेकिन यह गोद लेने आदि के बारे में एक चिकन/अंडा बात का एक सा

और अगर है कि आप में से कोई भी सूट, आप OAuth2 देख सकते हैं और में से कुछ अपने प्रोफाइल।

+0

जब मैं शिब एसपी और आईडीपी का उपयोग करके डेमो सेट अप करने का प्रयास करता हूं तो आपके पास बिल्कुल वही भावना होती है। यह बहुत शक्तिशाली और लचीला है। मैंने अपनी विकी और अन्य संबंधित संसाधनों को पढ़ने पर इतना समय बिताया है। कई नई शब्दावली हैं जिन्हें हमें समझने की आवश्यकता है।आपके पोस्ट के लिए बहुत धन्यवाद। यह मुझे अपने स्वयं के एसपी को लागू करने की कोशिश करने के लिए और अधिक बहादुर बनाता है। क्या आप मेरे साथ कुछ संसाधन या उदाहरण साझा कर सकते हैं जिन्हें आपने अपना स्वयं का एसपी कोड लिखते समय संदर्भित किया था? मुझे इंटरनेट पर बहुत कुछ नहीं दिख रहा है। – performanceuser

+0

मैं चारों ओर googled और http://code.google.com/p/websso/ भर में आया। मैंने इसका इस्तेमाल नहीं किया, लेकिन पहले कट के रूप में यह बहुत अच्छा लग रहा है। इसमें समीकरण के एसपी और आईडीपी दोनों पक्ष हैं। एसवीएन चेकआउट ... बड़ा है। मैंने http://www.capcourse.com/Library/OpenSAML/index.html भी पाया, लेकिन उसके कोड में कोई (स्पष्ट) लाइसेंस नहीं है, इसलिए मैंने इसे बहुत बारीकी से नहीं देखा। लेकिन इसमें सामान्य एसएएमएल उदाहरण हैं जो आप देख सकते हैं कि आप अटक गए हैं या नहीं। –

+0

बहुत बहुत धन्यवाद। मैं इन उदाहरणों पर एक नज़र डालेगा। – performanceuser

3

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

जैसे ही आप अधिक सामान लागू करना शुरू करते हैं, और कुछ जटिल परिदृश्य, पहले से निर्मित कुछ के लिए जा रहे हैं सबसे अच्छा विकल्प है। आपको कई सामानों के बारे में भी अवगत होना चाहिए जिन्हें आप प्रति-प्रणाली आधार पर लिखने की संभावना रखते हैं (ई जी। Assertion पीढ़ी, xml-dsig, सत्यापन, आदि)।

एक नज़र में, ऐसा लगता है कि पहले से ही निर्मित उत्पादों को बहुत जटिल या आपकी विशेष जरूरतों को अनुकूलित करने या अनुकूलित करने में मुश्किल होती है। लेकिन जब आप सभी एसएएमएल क्षमताओं को विस्फोट करना चाहते हैं तो आपके देव प्रयास लेखन कनेक्टर और कार्यान्वयन को पुरस्कृत किया जा सकता है।

हालांकि यह बहुत उपयोगी होगा, अगर आप अधिक विस्तार से समझा सकते हैं कि आप क्या हासिल करना चाहते हैं; मुझे लगता है कि आपका प्रश्न काफी खुला है ...

+0

धन्यवाद। मैंने अपनी मूल पोस्ट अपडेट की है। मैं मानता हूं कि सवाल एक तरह का खुला है। मैंने जितना अधिक विवरण प्रदान करने की कोशिश की है। – performanceuser

+0

@performanceuser ने आपके अपडेट को दिया, और यदि यह उससे आगे नहीं जाता है, तो मैं एक साधारण SAML assertion उपभोग करने वाले एंडपॉइंट लिखने की अनुशंसा करता हूं जो सभी तर्क करता है, और आपके पक्ष से लॉगिन करने के लिए अपने ग्राहक से वहां पोस्ट करने के लिए कहता है। आपको अभी भी कुछ सामान (i। ई। लॉगआउट, सुरक्षा) का ख्याल रखना होगा, लेकिन मुझे लगता है कि इसे लिखने का समय और बाधा को जानने के लिए आपको पूर्ण शिबो के उत्पाद को समझने के लिए आवश्यक एक से कम है। –

+0

धन्यवाद। मैं एक को लागू करने की कोशिश करूंगा। क्या आप ओपनएसएमएल का उपयोग कर एसपी को लागू करने के बारे में कुछ संसाधन या उदाहरण साझा कर सकते हैं? मुझे इंटरनेट पर बहुत कुछ नहीं दिख रहा है। – performanceuser

0

मेरे पास शिबबोलेथ सेवा प्रदाता के साथ व्यक्तिगत अनुभव नहीं है, लेकिन मैं वर्तमान में आर्किटेक्चर विकसित कर रहा हूं जो शिबोबोलेड आईडीपी, शिबोबोले डिस्कवरी सर्विस और Guanxi Service Provider का उपयोग करता है। जावा वेबपैप के साथ गुआन्ज़ी सेवा प्रदाता से लाइटवेट गार्ड मॉड्यूल को एकीकृत करना केक का एक टुकड़ा है और आप अपने मॉड्यूल लिखने के बिना आसानी से शिबोबोले आधारित वास्तुकला प्राप्त कर सकते हैं। Guanxi एसपी की स्थापना के लिए localhost tutorial है, बस गुआन्ज़ी WAYF और आईडीपी के बारे में भागों को छोड़ दें और उनके स्थान पर शिबबोलेथ घटकों का उपयोग करें।

+0

आपकी जानकारी के लिए धन्यवाद। यह पहली बार है जब मैंने गुआन्ज़ी के बारे में सुना। क्या आप जानते हैं कि यह मुफ़्त है? – performanceuser

+0

[1]: https://github.com/guanxi/guanxi-sp-engine/blob/master/README [2]: https://github.com/guanxi/guanxi-sp-guard/blob/ मास्टर/README – Erwin

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