मॉर्निंग हर कोई,एक SAML सेवा प्रदाता कैसे बनें
मेरी कंपनी वर्तमान में जावा वेब एप्लिकेशन विकसित करती है। हमारे कुछ ग्राहकों में आंतरिक SAML सर्वर (पहचान प्रदाता?) हैं और अनुरोध है कि हम उनके साथ एकीकृत करें। तो हाल ही में मैं इसे पढ़ रहा हूं और ओपनएएम के साथ खेल रहा हूं। इसके लगभग 3 दिनों के बाद, मुझे इसकी सामान्य समझ है, लेकिन मेरे ज्ञान में अभी भी कुछ अंतराल हैं। मेरी आशा है कि कोई मेरे लिए इसे साफ़ कर सकता है।
तो यहाँ कैसे मैं में एक उपयोगकर्ता लॉगिंग की कार्यप्रवाह की कल्पना है।
के https://their.samlserver.com के रूप में हमारे ग्राहकों SAML सर्वर को परिभाषित करते हैं। तो उपयोगकर्ता एक ऐसे संसाधन के लिए हमारे वेब एप्लिकेशन पर आता है जो संरक्षित है। मान लें कि यूआरएल http://my.app.com/something है।
तो अगर मैं सही हूँ, my.app.com क्या SAML एक सेवा प्रदाता रूप में परिभाषित करता है। हमारे आवेदन पता चलता है कि इस उपयोगकर्ता में लॉग इन करने की जरूरत है। हम तो उपयोगकर्ता के लिए इस प्रकार का पृष्ठ प्रस्तुत करते हैं ...
<script>JQuery Script to auto submit this form on ready</script>
<form method="post" action="https://their.samlserver.com/Post/Servlet">
<input type="hidden" name="SAMLRequest" value="someBase64Data" />
<input type="submit" value="Submit" />
</form>
और वह someBase64Data
इस के base64
इनकोडिंग संस्करण ... होना चाहिए
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_1"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z"
AssertionConsumerServiceIndex="0">
<saml:Issuer>http://my.app.com</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>
तो मेरे पहले जोड़े के प्रश्न।
आईडी मान क्या है मान लीजिए?
और मैं खुद को जारीकर्ता क्यों घोषित कर सकता हूं?
क्या पहचान प्रदाता मेरे बारे में जानता है? हो सकता है कि यह है कि विश्वास
मैं देख रहा है की सर्किल पर OpenAM। और अगर यह मेरे बारे में पता है, तो यह मेरे बारे में कैसे पता चलता है और उसे क्या जानने की आवश्यकता है?
तो उपयोगकर्ता को उस पृष्ठ को अग्रेषित करने के बाद, उन्हें आईडीपी https://their.samlserver.com द्वारा प्रदान किए गए पृष्ठ पर ले जाया जाता है। वे उस पृष्ठ पर प्रमाणित करते हैं और आईडीपी प्रमाणीकरण को सत्यापित करने और उपयोगकर्ता को देखने के लिए जादू करता है। प्रमाणीकरण सफल होने के बाद, आईडीपी <samlp:Response>
परिभाषित here भेजता है।
कुछ और प्रश्न।
सबसे पहले, <samlp:Response>
मेरे वेब एप्लिकेशन पर वापस कैसे जाता है ताकि मैं इसे देख सकूं?
और मुझे यह सत्यापित करने के लिए उस प्रतिक्रिया में क्या देखना चाहिए कि यह सफल रहा? विफलता कैसी दिखती है?
हम वर्तमान में उपयोगकर्ताओं की पहचान करने के लिए ईमेल पता (एलडीएपी) का उपयोग करते हैं, इसलिए हम शायद प्रतिक्रिया से इसे पकड़ लेंगे और उसी तरह उपयोग करेंगे जैसा हम करते हैं। मुझे उस प्रतिक्रिया में कुछ और ध्यान रखना चाहिए?
तो अब हमने वैधता के लिए उस प्रतिक्रिया की जांच की है, हम उपयोगकर्ता को वर्तमान में ऐसा सत्र प्रदान कर सकते हैं। लेकिन जब वे लॉग आउट करना चाहते हैं, तो उसके लिए वर्कफ़्लो है?क्या मुझे आईडीपी को सूचित करना है जिसे उपयोगकर्ता ने छोड़ा है?
और आखिरकार, मेरे पढ़ने में चार विषयों को फेंक दिया गया है और मुझे यकीन नहीं है कि वे इस वर्कफ़्लो में कैसे फिट बैठते हैं। वे ट्रस्ट, टोकन, और कलाकृतियों के मंडल हैं।
किसी भी मदद के लिए धन्यवाद। मुझे पिछले कुछ दिनों में बहुत सारी जानकारी मिली है, और यह संभव है कि मैं थोड़ा और खेल के बाद उन्हें एक साथ टुकड़ा कर सकूं। लेकिन मुझे अभी तक एक सीधा "यहां पोस्ट है" वर्कफ़्लो आलेख अभी तक नहीं मिला है। शायद ऐसा इसलिए है क्योंकि यह गलत काम करता है कि यह कैसे काम करता है। शायद ऐसा इसलिए है क्योंकि यह अभी तक लोकप्रिय नहीं है। लेकिन मैं वास्तव में यह सुनिश्चित करना चाहता था कि मुझे वर्कफ़्लो मिल गया है, इसलिए मुझे उपयोगकर्ता प्रमाणीकरण के रूप में महत्वपूर्ण कुछ महत्वपूर्ण कदम याद नहीं आया।
मैं अभी भी एक ही समस्या से गुजर रहा हूं (पिंग पहचान के साथ बातचीत करने वाले लाइटवेट फ़ेडरेटेड SAML v2 सेवा प्रदाता को कैसे बनाएं)। क्या आप टिप्पणी करते हैं कि यह आपके लिए कैसे काम करता है? क्या आपने फेडलेट का उपयोग करके अपना कोड लिख लिया? धन्यवाद! – theglauber
मेरे पास कुछ हद तक समान वातावरण है। मेरे पास एक जावा आधारित वेब एप्लिकेशन है जो टॉमकैट पर चल रहा है अब मुझे एसएएमएल का उपयोग करके एसएसओ करना है। मुझे सैद्धांतिक ज्ञान के अलावा इन प्रौद्योगिकियों के बारे में कोई जानकारी नहीं है। क्या कोई मुझे स्क्रैच से कॉन्फ़िगर करने में मदद कर सकता है? – Jerry