एसएएमएल 2.0: Difference between revisions
| Line 13: | Line 13: | ||
| website = [https://wiki.oasis-open.org/security/FrontPage OASIS SAML Wiki] | | website = [https://wiki.oasis-open.org/security/FrontPage OASIS SAML Wiki] | ||
}} | }} | ||
सुरक्षा अभिकथन मार्कअप भाषा 2.0 (एसएएमएल 2.0) सुरक्षा डोमेन के बीच प्रमाणीकरण और प्राधिकरण पहचान के विनिमय के लिए एसएएमएल मानक का एक संस्करण है। एसएएमएल 2.0 एक एक्सएमएल-आधारित प्रोटोकॉल है जो एक एसएएमएल प्राधिकरण, जिसे एक पहचान प्रदाता कहा जाता है, और एक एसएएमएल उपभोक्ता, जिसे एक सेवा प्रदाता कहा जाता है, जिसके बीच एक प्रिंसिपल (सामान्य रूप से एक अंतिम उपयोगकर्ता) के बारे में जानकारी प्रसारित करने के लिए | '''सुरक्षा अभिकथन मार्कअप भाषा 2.0''' ('''एसएएमएल 2.0''') सुरक्षा डोमेन के बीच प्रमाणीकरण और प्राधिकरण पहचान के विनिमय के लिए एसएएमएल मानक का एक संस्करण है। एसएएमएल 2.0 एक एक्सएमएल-आधारित प्रोटोकॉल है जो एक एसएएमएल प्राधिकरण, जिसे एक पहचान प्रदाता कहा जाता है, और एक एसएएमएल उपभोक्ता, जिसे एक सेवा प्रदाता कहा जाता है, जिसके बीच एक प्रिंसिपल (सामान्य रूप से एक अंतिम उपयोगकर्ता) के बारे में जानकारी प्रसारित करने के लिए अभिकथन वाले सुरक्षा टोकन का उपयोग करता है। एसएएमएल 2.0 वेब-आधारित, क्रॉस-डोमेन एकल साइन-ऑन (एसएसओ) को सक्षम करता है, जो उपयोगकर्ता को एकाधिक प्रमाणीकरण टोकन वितरित करने के प्रशासनिक ओवरहेड को कम करने में सहायता करता है। | ||
मार्च 2005 में एसएएमएल 1.1 के अतिरिक्त एसएएमएल 2.0 को ओएसिस (संगठन) मानक के रूप में अनुमोदित किया गया था। एसएएमएल 2.0 के महत्वपूर्ण स्वरूपों को आधिकारिक दस्तावेजों एसएएमएलक्रोड ,<ref name="SAMLCore"/> एसएएमएलबाइंड,<ref name="SAMLBind"/> एसएएमएलप्रोफ,<ref name="SAMLProf"/> और एसएएमएलमेटा में विस्तार से सम्मिलित किया गया है।<ref name="SAMLMeta"/> | मार्च 2005 में एसएएमएल 1.1 के अतिरिक्त एसएएमएल 2.0 को ओएसिस (संगठन) मानक के रूप में अनुमोदित किया गया था। एसएएमएल 2.0 के महत्वपूर्ण स्वरूपों को आधिकारिक दस्तावेजों एसएएमएलक्रोड,<ref name="SAMLCore"/> एसएएमएलबाइंड,<ref name="SAMLBind"/> एसएएमएलप्रोफ,<ref name="SAMLProf"/> और एसएएमएलमेटा में विस्तार से सम्मिलित किया गया है।<ref name="SAMLMeta"/> | ||
एसएएमएल 2.0 के निर्माण में 24 से अधिक कंपनियों और संगठनों के लगभग 30 व्यक्ति सम्मिलित थे। विशेष रूप से, [[लिबर्टी एलायंस]] ने अपना पहचान महासंघ रूपरेखा (आईडी-एफएफ) विनिर्देश ओएसिस को देता है, जो एसएएमएल 2.0 विनिर्देश का आधार बन गया। इस प्रकार एसएएमएल 2.0 एसएएमएल 1.1, [http://www.projectliberty.org/resource_center/specifications/liberty_alliance_id_ff_1_2_specifications लिबर्टी आईडी-एफएफ 1.2], और | एसएएमएल 2.0 के निर्माण में 24 से अधिक कंपनियों और संगठनों के लगभग 30 व्यक्ति सम्मिलित थे। विशेष रूप से, [[लिबर्टी एलायंस]] ने अपना पहचान महासंघ रूपरेखा (आईडी-एफएफ) विनिर्देश ओएसिस को देता है, जो एसएएमएल 2.0 विनिर्देश का आधार बन गया। इस प्रकार एसएएमएल 2.0 एसएएमएल 1.1, [http://www.projectliberty.org/resource_center/specifications/liberty_alliance_id_ff_1_2_specifications लिबर्टी आईडी-एफएफ 1.2], और [http://shibboleth.internet2.edu/docs/internet2-mace शिबोलेथ 1.3] के अभिसरण का प्रतिनिधित्व करता है। | ||
== एसएएमएल 2.0 अभिकथन == | == एसएएमएल 2.0 अभिकथन == | ||
अभिकथन (असर्शन) सूचना का एक पैकेज है जो एसएएमएल प्राधिकरण द्वारा दिए गए शून्य या अधिक स्टेटमेंट प्रदान करता है। एसएएमएल अभिकथन सामान्य रूप से किसी विषय के बारे में किए जाते हैं, जिसे <code><Subject></code> तत्व द्वारा दर्शाया जाता है। एसएएमएल 2.0 विनिर्देश तीन अलग-अलग प्रकार के अभिकथन | अभिकथन (असर्शन) सूचना का एक पैकेज है जो एसएएमएल प्राधिकरण द्वारा दिए गए शून्य या अधिक स्टेटमेंट प्रदान करता है। एसएएमएल अभिकथन सामान्य रूप से किसी विषय के बारे में किए जाते हैं, जिसे <code><Subject></code> तत्व द्वारा दर्शाया जाता है। एसएएमएल 2.0 विनिर्देश तीन अलग-अलग प्रकार के अभिकथन स्टेटमेंट को परिभाषित करता है जिन्हें एसएएमएल प्राधिकरण द्वारा बनाया जा सकता है। सभी एसएएमएल-परिभाषित स्टेटमेंट एक विषय से जुड़े हुए हैं। परिभाषित तीन प्रकार के अभिकथन स्टेटमेंट इस प्रकार हैं: | ||
* प्रमाणीकरण स्टेटमेंट: अभिकथन विषय को एक विशेष समय पर एक विशेष माध्यम से प्रमाणित किया गया था। | * प्रमाणीकरण स्टेटमेंट: अभिकथन विषय को एक विशेष समय पर एक विशेष माध्यम से प्रमाणित किया गया था। | ||
* एट्रिब्यूट स्टेटमेंट: अभिकथन विषय आपूर्ति की गई एट्रिब्यूट से जुड़ा है। | * एट्रिब्यूट स्टेटमेंट: अभिकथन विषय आपूर्ति की गई एट्रिब्यूट से जुड़ा है। | ||
* प्राधिकरण निर्णय स्टेटमेंट: | * प्राधिकरण निर्णय स्टेटमेंट: अभिकथन के विषय को निर्दिष्ट संसाधन तक पहुंचने की अनुमति देने का अनुरोध स्वीकार कर लिया गया है या अस्वीकार कर दिया गया है। | ||
एसएएमएल अभिकथन का एक महत्वपूर्ण प्रकार तथाकथित "वाहक" अभिकथन है जिसका उपयोग वेब ब्राउज़र एसएसओ को सुविधाजनक बनाने के लिए किया जाता है। यहां एक पहचान प्रदाता (<nowiki>https://idp.example.org/SAML2</nowiki>) द्वारा एक सेवा प्रदाता (<nowiki>https://sp.example.com/SAML2</nowiki>) को जारी किए गए अल्पकालिक वाहक | एसएएमएल अभिकथन का एक महत्वपूर्ण प्रकार तथाकथित "वाहक" अभिकथन है जिसका उपयोग वेब ब्राउज़र एसएसओ को सुविधाजनक बनाने के लिए किया जाता है। यहां एक पहचान प्रदाता (<nowiki>https://idp.example.org/SAML2</nowiki>) द्वारा एक सेवा प्रदाता (<nowiki>https://sp.example.com/SAML2</nowiki>) को जारी किए गए अल्पकालिक वाहक अभिकथन का एक उदाहरण दिया गया है। अभिकथन में एक प्रमाणीकरण अभिकथन <code><saml:AuthnStatement></code> और एक एट्रिब्यूट अभिकथन <code><saml:AttributeStatement></code>दोनों सम्मिलित हैं, जो संभवतः सेवा प्रदाता अभिगम्य नियंत्रण निर्णय लेने के लिए उपयोग करता है। उपसर्ग <code>saml:</code> एसएएमएल V2.0 अभिकथन नेमस्पेस का प्रतिनिधित्व करता है। | ||
=== एसएएमएल का उदाहरण === | === एसएएमएल का उदाहरण === | ||
| Line 86: | Line 86: | ||
* <code><saml:Issuer></code> तत्व, जिसमें पहचान प्रदाता का विशिष्ट पहचानकर्ता होता है | * <code><saml:Issuer></code> तत्व, जिसमें पहचान प्रदाता का विशिष्ट पहचानकर्ता होता है | ||
* <code><ds:Signature></code> तत्व, जिसमें | * <code><ds:Signature></code> तत्व, जिसमें <code><saml:Assertion></code> तत्व एक अखंडता-संरक्षित डिजिटल चिन्ह (दिखाया नहीं गया) होता है | ||
* <code><saml:Subject></code> तत्व, जो प्रमाणित प्रिंसिपल की पहचान करता है लेकिन इस स्थितियों में प्रिंसिपल की पहचान गोपनीयता के कारणों के लिए एक ओपेक अस्थायी पहचानकर्ता के पीछे छिपी हुई है | * <code><saml:Subject></code> तत्व, जो प्रमाणित प्रिंसिपल की पहचान करता है लेकिन इस स्थितियों में प्रिंसिपल की पहचान गोपनीयता के कारणों के लिए एक ओपेक अस्थायी पहचानकर्ता के पीछे छिपी हुई है | ||
* <code><saml:Conditions></code> तत्व, जो उन शर्तों को देता है जिनके अंतर्गत अभिकथन को वैध माना जाना है | * <code><saml:Conditions></code> तत्व, जो उन शर्तों को देता है जिनके अंतर्गत अभिकथन को वैध माना जाना है | ||
| Line 94: | Line 94: | ||
शब्दों में, अभिकथन निम्नलिखित जानकारी को एन्कोड करता है: | शब्दों में, अभिकथन निम्नलिखित जानकारी को एन्कोड करता है: | ||
<blockquote>अभिकथन ( b07b804c-7c29-ea16-7300-4f3d6f7928ac ) पहचान प्रदाता द्वारा 2004-12-05T09:22:05Z समय | <blockquote>अभिकथन ( b07b804c-7c29-ea16-7300-4f3d6f7928ac ) पहचान प्रदाता द्वारा 2004-12-05T09:22:05Z समय (https://idp.example.org/SAML2) पर जारी किया गया था विशेष रूप से सेवा प्रदाता (https://sp.example.com/SAML2) के लिए विषय (3f7b3dcf-1674-4ecd-92c8-1544f346baf8) के संबंध में जारी किया गया था।</blockquote> | ||
प्रमाणीकरण स्टेटमेंट, विशेष रूप से, निम्नलिखित पर एसर्ट करता है: | प्रमाणीकरण स्टेटमेंट, विशेष रूप से, निम्नलिखित पर एसर्ट करता है: | ||
| Line 120: | Line 120: | ||
एसएएमएल 1.1 वेब ब्राउज़र में एसएसओ प्रोफाइल पहचान प्रदाता (आईडीपी) द्वारा प्रारंभ की जाती है, अर्थात, एक अवांछित <code><samlp:Response></code> तत्व पहचान प्रदाता से सेवा प्रदाता (ब्राउज़र के माध्यम से) में प्रेषित होता है। उपसर्ग <code>samlp:</code> एसएएमएल प्रोटोकॉल नेमस्पेस को दर्शाता है। | एसएएमएल 1.1 वेब ब्राउज़र में एसएसओ प्रोफाइल पहचान प्रदाता (आईडीपी) द्वारा प्रारंभ की जाती है, अर्थात, एक अवांछित <code><samlp:Response></code> तत्व पहचान प्रदाता से सेवा प्रदाता (ब्राउज़र के माध्यम से) में प्रेषित होता है। उपसर्ग <code>samlp:</code> एसएएमएल प्रोटोकॉल नेमस्पेस को दर्शाता है। | ||
एसएएमएल 2.0 में, हालांकि, सेवा प्रदाता से | एसएएमएल 2.0 में, हालांकि, सेवा प्रदाता से संचार प्रारंभ होता है जो पहचान प्रदाता को एक स्पष्ट प्रमाणीकरण अनुरोध जारी करता है। परिणामी प्रमाणीकरण अनुरोध प्रोटोकॉल एसएएमएल 2.0 की एक महत्वपूर्ण नई एट्रिब्यूट है। | ||
जब कोई प्रिंसिपल (या प्रिंसिपल की ओर से कार्य करने वाली एंटिटी) एक प्रमाणीकरण कथन युक्त दावा प्राप्त करना चाहता है, तो एक | जब कोई प्रिंसिपल (या प्रिंसिपल की ओर से कार्य करने वाली एंटिटी) एक प्रमाणीकरण कथन युक्त दावा प्राप्त करना चाहता है, तो एक <code><samlp:AuthnRequest></code> तत्व पहचान प्रदाता को प्रेषित किया जाता है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:AuthnRequest | <samlp:AuthnRequest | ||
| Line 140: | Line 140: | ||
उपरोक्त <code><samlp:AuthnRequest></code> तत्व, जो स्पष्ट रूप से एसएएमएल_2.0 प्रमाणीकरण स्टेटमेंट एसरशन का अनुरोध करता है, स्पष्ट रूप से एक सेवा प्रदाता (https://sp.example.com/SAML2) द्वारा जारी किया गया था और बाद में पहचान प्रदाता (ब्राउज़र के माध्यम से) को प्रस्तुत किया गया था। पहचान प्रदाता प्रिंसिपल (यदि आवश्यक हो) को प्रमाणित करता है और एक प्रमाणीकरण प्रतिक्रिया जारी करता है, जो सेवा प्रदाता (पुनः ब्राउज़र के माध्यम से) को वापस प्रेषित की जाती है। | उपरोक्त <code><samlp:AuthnRequest></code> तत्व, जो स्पष्ट रूप से एसएएमएल_2.0 प्रमाणीकरण स्टेटमेंट एसरशन का अनुरोध करता है, स्पष्ट रूप से एक सेवा प्रदाता (https://sp.example.com/SAML2) द्वारा जारी किया गया था और बाद में पहचान प्रदाता (ब्राउज़र के माध्यम से) को प्रस्तुत किया गया था। पहचान प्रदाता प्रिंसिपल (यदि आवश्यक हो) को प्रमाणित करता है और एक प्रमाणीकरण प्रतिक्रिया जारी करता है, जो सेवा प्रदाता (पुनः ब्राउज़र के माध्यम से) को वापस प्रेषित की जाती है। | ||
=== अर्टिफैक्ट | === अर्टिफैक्ट रिज़ॉल्यूशन प्रोटोकॉल === | ||
एक एसएएमएल संदेश एक एंटिटी से दूसरी एंटिटी में मूल्य या संदर्भ द्वारा प्रेषित किया जाता है। एसएएमएल संदेश के संदर्भ को आर्टिफैक्ट कहा जाता है। किसी आर्टिफैक्ट का अभिग्राही प्रत्यक्ष आर्टिफैक्ट निर्गमक को <code><samlp:ArtifactResolve></code> अनुरोध प्रेषित करके संदर्भ का समाधान करता है, जो फिर आर्टिफैक्ट द्वारा संदर्भित वास्तविक संदेश के साथ प्रतिक्रिया करता है। | एक एसएएमएल संदेश एक एंटिटी से दूसरी एंटिटी में मूल्य या संदर्भ द्वारा प्रेषित किया जाता है। एसएएमएल संदेश के संदर्भ को आर्टिफैक्ट कहा जाता है। किसी आर्टिफैक्ट का अभिग्राही प्रत्यक्ष आर्टिफैक्ट निर्गमक को <code><samlp:ArtifactResolve></code> अनुरोध प्रेषित करके संदर्भ का समाधान करता है, जो फिर आर्टिफैक्ट द्वारा संदर्भित वास्तविक संदेश के साथ प्रतिक्रिया करता है। | ||
मान लीजिए, उदाहरण के लिए, एक पहचान प्रदाता निम्नलिखित <span id= ArtifactResolveRequest > <code><samlp:ArtifactResolve></code> अनुरोध</span> प्रत्यक्ष सेवा प्रदाता से (बैक चैनल के माध्यम से) प्रेषित करता है: | मान लीजिए, उदाहरण के लिए, एक पहचान प्रदाता निम्नलिखित <span id= ArtifactResolveRequest ><code><samlp:ArtifactResolve></code> अनुरोध</span> प्रत्यक्ष सेवा प्रदाता से (बैक चैनल के माध्यम से) प्रेषित करता है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:ArtifactResolve | <samlp:ArtifactResolve | ||
| Line 176: | Line 176: | ||
=== हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन बाइंडिंग === | === हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन बाइंडिंग === | ||
एसएएमएल प्रोटोकॉल संदेशों को प्रत्यक्ष हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल जीईटी अनुरोध के यूआरएल जांच स्ट्रिंग में ले जाया जा सकता है। व्यवहार में यूआरएल की लंबाई सीमित होने के कारण, हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन बाइंडिंग छोटे संदेशों के लिए उपयुक्त है, जैसे कि <code><samlp:AuthnRequest></code> संदेश है। लंबे संदेश (उदाहरण के लिए हस्ताक्षरित या एन्क्रिप्टेड एसएएमएल | एसएएमएल प्रोटोकॉल संदेशों को प्रत्यक्ष हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल जीईटी अनुरोध के यूआरएल जांच स्ट्रिंग में ले जाया जा सकता है। व्यवहार में यूआरएल की लंबाई सीमित होने के कारण, हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन बाइंडिंग छोटे संदेशों के लिए उपयुक्त है, जैसे कि <code><samlp:AuthnRequest></code> संदेश है। लंबे संदेश (उदाहरण के लिए हस्ताक्षरित या एन्क्रिप्टेड एसएएमएल अभिकथन वाले, जैसे एसएएमएल प्रतिक्रियाएं) सामान्य रूप से अन्य बाइंडिंग जैसे एचटीटीपी पीएएसटी बाइंडिंग के माध्यम से प्रेषित होते हैं। | ||
एचटीटीपी पुनर्निर्देशन के माध्यम से प्रेषित एसएएमएल अनुरोधों या प्रतिक्रियाओं में क्रमशः <code>SAMLRequest</code> या <code>SAMLResponse</code> जांच स्ट्रिंग पैरामीटर होता है। प्रेषित किए जाने से पहले, संदेश को उस क्रम में (हेडर और चेकसम के बिना) | एचटीटीपी पुनर्निर्देशन के माध्यम से प्रेषित एसएएमएल अनुरोधों या प्रतिक्रियाओं में क्रमशः <code>SAMLRequest</code> या <code>SAMLResponse</code> जांच स्ट्रिंग पैरामीटर होता है। प्रेषित किए जाने से पहले, संदेश को उस क्रम में (हेडर और चेकसम के बिना) बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड डिफ्लेट किया जाता है। प्राप्त होने पर, मूल संदेश को पुनर्प्राप्त करने के लिए प्रक्रिया सुरक्षित कर दी जाती है। | ||
उदाहरण के लिए, उपरोक्त <code><samlp:AuthnRequest></code> संदेश को एन्कोड करने से परिणाम मिलते हैं: | उदाहरण के लिए, उपरोक्त <code><samlp:AuthnRequest></code> संदेश को एन्कोड करने से परिणाम मिलते हैं: | ||
| Line 189: | Line 189: | ||
UqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C | UqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C | ||
अतिरिक्त सुरक्षा के लिए उपरोक्त संदेश (पठनीयता के लिए स्वरूपित) पर हस्ताक्षर किया जा सकता है। व्यवहार में <code><samlp:AuthnRequest></code>में निहित सभी डेटा जैसे कि <code>Issuer</code> जिसमें एसपी आईडी है, और <code>NameIDPolicy</code>, आईडीपी और एसपी के बीच | अतिरिक्त सुरक्षा के लिए उपरोक्त संदेश (पठनीयता के लिए स्वरूपित) पर हस्ताक्षर किया जा सकता है। व्यवहार में <code><samlp:AuthnRequest></code>में निहित सभी डेटा जैसे कि <code>Issuer</code> जिसमें एसपी आईडी है, और <code>NameIDPolicy</code>, आईडीपी और एसपी के बीच (मैन्युअल सूचना विनिमय के माध्यम से या एसएएमएल 2.0 मेटाडेटा के माध्यम से) पहले ही सहमति हो गई है। उस स्थिति में अनुरोध पर चिन्ह करना सुरक्षा बाधा नहीं है। जब <code><samlp:AuthnRequest></code> आईडीपी द्वारा पहले से ज्ञात जानकारी नहीं है, जैसे कि अभिकथन उपभोक्ता सेवा यूआरएल, सुरक्षा उद्देश्यों के लिए अनुरोध पर चिन्ह करने की अनुशंसा की जाती है। | ||
=== हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग === | === हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग === | ||
| Line 195: | Line 195: | ||
निम्नलिखित उदाहरण में, सेवा प्रदाता और पहचान प्रदाता दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग का उपयोग करते हैं। प्रारंभ में, सेवा प्रदाता एक एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ उपयोगकर्ता कारक के अनुरोध की प्रतिक्रिया देता है: | निम्नलिखित उदाहरण में, सेवा प्रदाता और पहचान प्रदाता दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग का उपयोग करते हैं। प्रारंभ में, सेवा प्रदाता एक एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ उपयोगकर्ता कारक के अनुरोध की प्रतिक्रिया देता है: | ||
<nowiki><form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...> | <nowiki><form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...> | ||
<input type="hidden" name="SAMLRequest" value="''request''" /></nowiki> | |||
<nowiki> </nowiki> | <nowiki> </nowiki>... other input parameter.... | ||
<nowiki></form></nowiki> | |||
<code>SAMLRequest</code> पैरामीटर का मान <code><samlp:AuthnRequest></code> तत्व का बेस 64-एन्कोडिंग है, जो ब्राउज़र के माध्यम से पहचान प्रदाता को प्रेषित होता है। पहचान प्रदाता की एसएसओ सेवा अनुरोध को मान्य करती है और एक अन्य एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है: | <code>SAMLRequest</code> पैरामीटर का मान <code><samlp:AuthnRequest></code> तत्व का बेस 64-एन्कोडिंग है, जो ब्राउज़र के माध्यम से पहचान प्रदाता को प्रेषित होता है। पहचान प्रदाता की एसएसओ सेवा अनुरोध को मान्य करती है और एक अन्य एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है: | ||
<nowiki><form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...> | |||
<input type="hidden" name="SAMLResponse" value="''response''" /></nowiki> | |||
<nowiki> </nowiki> | <nowiki> </nowiki>... | ||
<nowiki></form></nowiki> | |||
<code>SAMLRequest</code> पैरामीटर का मान <code><samlp:AuthnRequest></code> तत्व का बेस 64 एन्कोडिंग है, जो ब्राउज़र के माध्यम से सेवा प्रदाता को भी प्रेषित होता है। | <code>SAMLRequest</code> पैरामीटर का मान <code><samlp:AuthnRequest></code> तत्व का बेस 64 एन्कोडिंग है, जो ब्राउज़र के माध्यम से सेवा प्रदाता को भी प्रेषित होता है। | ||
| Line 211: | Line 211: | ||
यह निश्चित रूप से मानता है कि पेज में पहले प्ररूप तत्व में उपरोक्त <code>SAMLResponse</code> सम्मिलित है, जिसमे <code>form</code> तत्व (<code>forms[0]</code>) सम्मिलित है | यह निश्चित रूप से मानता है कि पेज में पहले प्ररूप तत्व में उपरोक्त <code>SAMLResponse</code> सम्मिलित है, जिसमे <code>form</code> तत्व (<code>forms[0]</code>) सम्मिलित है | ||
=== हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट | === हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग === | ||
संदर्भ द्वारा एसएएमएल संदेश को हल करने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग रिज़ॉल्यूशन प्रोटोकॉल और एसएएमएल एसओएपी बाइंडिंग (हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पर) का उपयोग करता है। निम्नलिखित विशिष्ट उदाहरण पर विचार करें। मान लीजिए कि कोई सेवा प्रदाता किसी पहचान प्रदाता को <code><samlp:AuthnRequest></code> संदेश प्रेषित करना | संदर्भ द्वारा एसएएमएल संदेश को हल करने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग रिज़ॉल्यूशन प्रोटोकॉल और एसएएमएल एसओएपी बाइंडिंग (हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पर) का उपयोग करता है। निम्नलिखित विशिष्ट उदाहरण पर विचार करें। मान लीजिए कि कोई सेवा प्रदाता किसी पहचान प्रदाता को <code><samlp:AuthnRequest></code> संदेश प्रेषित करना चाहता है। प्रारंभ में, सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन के माध्यम से पहचान प्रदाता को एक अर्टिफैक्ट प्रेषित करता है: | ||
<nowiki>https://idp.example.org/SAML2/SSO/Artifact?SAMLart=</nowiki>''artifact'' | <nowiki>https://idp.example.org/SAML2/SSO/Artifact?SAMLart=</nowiki>''artifact'' | ||
इसके बाद पहचान प्रदाता एक | इसके बाद पहचान प्रदाता एक <code><samlp:ArtifactResolve></code> अनुरोध (जैसे कि पहले दिखाया गया <code>ArtifactResolveRequest</code> ) सीधे सेवा प्रदाता को बैक चैनल के माध्यम से प्रेषित करता है। अंत में, सेवा प्रदाता एक <code><samlp:ArtifactResponse></code> तत्व प्रतिवर्त करता है, जिसमें संदर्भित <code><samlp:AuthnRequest></code> संदेश है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:ArtifactResponse | <samlp:ArtifactResponse | ||
| Line 250: | Line 250: | ||
निःसंदेह संचार दूसरी दिशा में भी जा सकता है, अर्थात, पहचान प्रदाता एक आर्टिफैक्ट जारी कर सकता है, और वास्तव में यह अधिक सामान्य है। उदाहरण के लिए, इस विषय में बाद में "द्विक आर्टिफैक्ट" प्रोफ़ाइल उदाहरण देखें। | निःसंदेह संचार दूसरी दिशा में भी जा सकता है, अर्थात, पहचान प्रदाता एक आर्टिफैक्ट जारी कर सकता है, और वास्तव में यह अधिक सामान्य है। उदाहरण के लिए, इस विषय में बाद में "द्विक आर्टिफैक्ट" प्रोफ़ाइल उदाहरण देखें। | ||
==== अर्टिफैक्ट | ==== अर्टिफैक्ट प्रारूप ==== | ||
सामान्य रूप से, एसएएमएल 2.0 अर्टिफैक्ट को | सामान्य रूप से, एसएएमएल 2.0 अर्टिफैक्ट को (एसएएमएलबाइंड<ref name="SAMLBind"/>) इस तरह परिभाषित किया जाता है: | ||
SAML_artifact := B64 (TypeCode EndpointIndex RemainingArtifact) | SAML_artifact := B64 (TypeCode EndpointIndex RemainingArtifact) | ||
TypeCode | TypeCode := Byte1Byte2 | ||
EndpointIndex := Byte1Byte2 | EndpointIndex := Byte1Byte2 | ||
इस प्रकार एक एसएएमएल 2.0 अर्टिफैक्ट | इस प्रकार एक एसएएमएल 2.0 अर्टिफैक्ट में तीन घटक होते हैं: एक दो-बाइट <code>TypeCode</code>, एक दो-बाइट <code>EndpointIndex</code>, और बाइट्स के यादृच्छिक क्रम जिसे <code>RemainingArtifact</code>को कहा जाता है जानकारी के इन तीन भागों को जोड़ा गया है और पूर्ण अर्टिफैक्ट प्राप्त करने के लिए बेस64-एन्कोडेड हैं। | ||
<code>TypeCode</code> | <code>TypeCode</code> विशिष्ट रूप से अर्टिफैक्ट प्रारूप की पहचान करता है। एसएएमएल 2.0 0x0004 प्रकार के केवल एक ऐसे अर्टिफैक्ट <code>EndpointIndex</code> को पूर्वनिर्धारित करता है। अर्टिफैक्ट निर्गमक द्वारा प्रबंधित एक विशेष अर्टिफैक्ट समापन बिंदु का एक संदर्भ है जो पहले उल्लेखित आईडीपी या एसपी हो सकता है। <code>RemainingArtifact</code> जो कि प्रकार की परिभाषा से निर्धारित होता है, कि वह आर्टिफैक्ट का प्रमुख अंश है। | ||
टाइप 0x0004 आर्टिफैक्ट का प्रारूप आगे इस प्रकार परिभाषित किया गया है: | टाइप 0x0004 आर्टिफैक्ट का प्रारूप आगे इस प्रकार परिभाषित किया गया है: | ||
TypeCode | TypeCode := 0x0004 | ||
RemainingArtifact | RemainingArtifact := SourceId MessageHandle | ||
SourceId | SourceId := 20-byte_sequence | ||
MessageHandle | MessageHandle := 20-byte_sequence | ||
इस प्रकार एक टाइप 0x0004 अर्टिफैक्ट आकार 44 बाइट्स (एन्कोडेड) का है। <code>SourceId</code> ई> बाइट्स का एक यादृच्छिक क्रम है, हालांकि व्यवहार में, <code>SourceId</code> निर्गमक के एंटिटीआईडी का एसएचए-1 हैश है। <code>MessageHandle</code> | इस प्रकार एक टाइप 0x0004 अर्टिफैक्ट आकार 44 बाइट्स (एन्कोडेड) का है। <code>SourceId</code> ई> बाइट्स का एक यादृच्छिक क्रम है, हालांकि व्यवहार में, <code>SourceId</code> निर्गमक के एंटिटीआईडी का एसएचए-1 हैश है। <code>MessageHandle</code> बाइट्स का एक यादृच्छिक अनुक्रम है जो एक एसएएमएल संदेश का संदर्भ देता है कि अर्टिफैक्ट निर्गमक मांग पर उत्पादन करने के लिए तैयार है। | ||
उदाहरण के लिए, इस हेक्स-एन्कोडेड टाइप 0x0004 अर्टिफैक्ट | उदाहरण के लिए, इस हेक्स-एन्कोडेड टाइप 0x0004 अर्टिफैक्ट पर विचार करें: | ||
00040000c878f3fd685c833eb03a3b0e1daa329d47338205e436913660e3e917549a59709fd8c91f2120222f | 00040000c878f3fd685c833eb03a3b0e1daa329d47338205e436913660e3e917549a59709fd8c91f2120222f | ||
यदि आप ध्यान से देखें, तो आप आर्टिफैक्ट के सामने <code>TypeCode</code> (0x0004) और <code>EndpointIndex</code> (0x0000) देख सकते हैं। अगले 20 बाइट निर्गमक के एंटिटीआईडी (<nowiki>https://idp.example.org/SAML2</nowiki>) के एसएचए-1 हैश के बाद 20 यादृच्छिक बाइट हैं। इन 44 बाइट्स का बेस64-एन्कोडिंग वही है जो आप ऊपर <code>ArtifactResolveRequest</code> | यदि आप ध्यान से देखें, तो आप आर्टिफैक्ट के सामने <code>TypeCode</code> (0x0004) और <code>EndpointIndex</code> (0x0000) देख सकते हैं। अगले 20 बाइट निर्गमक के एंटिटीआईडी (<nowiki>https://idp.example.org/SAML2</nowiki>) के एसएचए-1 हैश के बाद 20 यादृच्छिक बाइट हैं। इन 44 बाइट्स का बेस64-एन्कोडिंग वही है जो आप ऊपर <code>ArtifactResolveRequest</code> उदाहरण में देखते हैं। | ||
== एसएएमएल 2.0 प्रोफाइल == | == एसएएमएल 2.0 प्रोफाइल == | ||
| Line 283: | Line 283: | ||
** एकल लॉगआउट प्रोफाइल | ** एकल लॉगआउट प्रोफाइल | ||
** नाम पहचानकर्ता प्रबंधन प्रोफ़ाइल | ** नाम पहचानकर्ता प्रबंधन प्रोफ़ाइल | ||
* अर्टिफैक्ट | * अर्टिफैक्ट रिज़ॉल्यूशन प्रोफ़ाइल | ||
* अभिकथन जांच/अनुरोध प्रोफ़ाइल | * अभिकथन जांच/अनुरोध प्रोफ़ाइल | ||
* नाम पहचानकर्ता मानचित्रण प्रोफ़ाइल | * नाम पहचानकर्ता मानचित्रण प्रोफ़ाइल | ||
| Line 303: | Line 303: | ||
यह सबसे सामान्य परिदृश्यों में से एक है। सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-पुनर्निर्देशन बाइंडिंग का उपयोग करके आईडीपी एसएसओ सेवा को एक एसएएमएल अनुरोध प्रेषित करता है। पहचान प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-पीएएसटी बाइंडिंग का उपयोग करके एसपी अभिकथन उपभोक्ता सेवा को एसएएमएल प्रतिक्रिया वापस करता है। | यह सबसे सामान्य परिदृश्यों में से एक है। सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-पुनर्निर्देशन बाइंडिंग का उपयोग करके आईडीपी एसएसओ सेवा को एक एसएएमएल अनुरोध प्रेषित करता है। पहचान प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-पीएएसटी बाइंडिंग का उपयोग करके एसपी अभिकथन उपभोक्ता सेवा को एसएएमएल प्रतिक्रिया वापस करता है। | ||
[[File:Saml2-browser-sso-redirect-post.png|thumb|none|700px|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (एसपी पुनर्निर्देशन बाइंड/आईडीपी पीएएसटी प्रतिक्रिया)]]संदेश | [[File:Saml2-browser-sso-redirect-post.png|thumb|none|700px|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (एसपी पुनर्निर्देशन बाइंड/आईडीपी पीएएसटी प्रतिक्रिया)]]संदेश संचार सेवा प्रदाता पर एक सुरक्षित संसाधन के अनुरोध के साथ प्रारंभ होता है। | ||
'''1. एसपी से लक्ष्य संसाधन का अनुरोध करें''' | '''1. एसपी से लक्ष्य संसाधन का अनुरोध करें''' | ||
| Line 311: | Line 311: | ||
<nowiki>https://sp.example.com/myresource</nowiki> | <nowiki>https://sp.example.com/myresource</nowiki> | ||
सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-7 को | सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-7 को हटा दें। | ||
सेवा प्रदाता उपयोग किए जाने वाले पहचान प्रदाता की खोज के लिए किसी भी प्रकार के तंत्र का उपयोग कर सकता है, उदाहरण के लिए, उपयोगकर्ता से पूछना, पूर्व-कॉन्फ़िगर आईडीपी का उपयोग करना, आदि सम्मिलित है। | सेवा प्रदाता उपयोग किए जाने वाले पहचान प्रदाता की खोज के लिए किसी भी प्रकार के तंत्र का उपयोग कर सकता है, उदाहरण के लिए, उपयोगकर्ता से पूछना, पूर्व-कॉन्फ़िगर आईडीपी का उपयोग करना, आदि सम्मिलित है। | ||
| Line 317: | Line 317: | ||
'''2. आईडीपी एसएसओ सेवा पर पुनर्निर्देशन करें''' | '''2. आईडीपी एसएसओ सेवा पर पुनर्निर्देशन करें''' | ||
सेवा प्रदाता एक उपयुक्त <code>SAMLRequest</code> (और <code>RelayState</code>, if | सेवा प्रदाता एक उपयुक्त <code>SAMLRequest</code> (और <code>RelayState</code>, if any) उत्पन्न करता है, फिर एक मानक [[HTTP 302|हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल 302]] पुनर्निर्देशन का उपयोग करके ब्राउज़र को आईडीपी एसएसओ सेवा पर पुनर्निर्देशन करता है। | ||
<syntaxhighlight lang="http"> | <syntaxhighlight lang="http"> | ||
302 Redirect | 302 Redirect | ||
Location: https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token | Location: https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token | ||
</syntaxhighlight><code>RelayState</code> | </syntaxhighlight><code>RelayState</code> टोकन सेवा प्रदाता पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है। <code>SAMLRequest</code> पैरामीटर का मान एक <code><samlp:AuthnRequest></code> तत्व का डिफ्लेटेड, बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड मान है:<syntaxhighlight lang="xml"> | ||
<samlp:AuthnRequest | <samlp:AuthnRequest | ||
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" | xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" | ||
| Line 343: | Line 343: | ||
GET /SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token HTTP/1.1 | GET /SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token HTTP/1.1 | ||
Host: idp.example.org | Host: idp.example.org | ||
जहां | जहां <code>SAMLRequest</code> और <code>RelayState</code> पैरामीटर के मान पुन: निर्देशित में दिए गए मान के समान हैं। पहचान प्रदाता की एसएसओ सेवा <code><samlp:AuthnRequest></code> तत्व को संसाधित करती है (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और अनुरोध को उसी क्रम में बढ़ाकर) और एक सुरक्षा जांच करती है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता किसी भी तंत्र (विवरण हटाे गए) के साथ उपयोगकर्ता की पहचान करता है। | ||
'''4. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें''' | '''4. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें''' | ||
| Line 349: | Line 349: | ||
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है: | एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है: | ||
<form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...> | <form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...> | ||
<input type="hidden" name="SAMLResponse" value="response" /> | |||
<input type="hidden" name="RelayState" value="token" /> | |||
... | |||
<input type="submit" value="Submit" /> | |||
</form> | |||
<code>RelayState</code> पैरामीटर का मान चरण 3 से संरक्षित किया गया है। | <code>RelayState</code> पैरामीटर का मान चरण 3 से संरक्षित किया गया है। <code>SAMLResponse</code> पैरामीटर का मान निम्नलिखित <code><samlp:Response></code> तत्व का बेस64 एन्कोडिंग है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
| Line 422: | Line 422: | ||
SAMLResponse=response&RelayState=token | SAMLResponse=response&RelayState=token | ||
जहां | जहां <code>SAMLResponse</code> और <code>RelayState</code> पैरामीटर के मान चरण 4 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं। | ||
'''6. लक्ष्य संसाधन पर पुनर्निर्देशित करें''' | '''6. लक्ष्य संसाधन पर पुनर्निर्देशित करें''' | ||
| Line 450: | Line 450: | ||
<nowiki>https://sp.example.com/myresource</nowiki> | <nowiki>https://sp.example.com/myresource</nowiki> | ||
सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-7 को | सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-7 को हटा दें। | ||
'''2. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें''' | '''2. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें''' | ||
| Line 456: | Line 456: | ||
सेवा प्रदाता एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करता है: | सेवा प्रदाता एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करता है: | ||
<form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...> | <form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...> | ||
<input type="hidden" name="SAMLRequest" value="request" /> | |||
<input type="hidden" name="RelayState" value="token" /> | |||
... | |||
<input type="submit" value="Submit" /> | |||
</form> | |||
<code>RelayState</code> टोकन सेवा प्रदाता पर रखी गई | <code>RelayState</code> टोकन सेवा प्रदाता पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है। <code>SAMLRequest</code> पैरामीटर का मान निम्नलिखित <code><samlp:AuthnRequest></code> तत्व का बेस 64 एन्कोडिंग है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:AuthnRequest | <samlp:AuthnRequest | ||
| Line 487: | Line 487: | ||
SAMLRequest=request&RelayState=token | SAMLRequest=request&RelayState=token | ||
जहां | जहां <code>SAMLRequest</code> और <code>RelayState</code> पैरामीटर के मान चरण 2 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं। एसएसओ सेवा <code><samlp:AuthnRequest></code> तत्व को संसाधित करती है (URL-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और निष्पादित करती है एक सुरक्षा जांच. यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता (विवरण हटा दिया गया है) की पहचान करता है। | ||
'''4. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें''' | '''4. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें''' | ||
| Line 493: | Line 493: | ||
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है: | एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है: | ||
<form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...> | <form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...> | ||
<input type="hidden" name="SAMLResponse" value="response" /> | |||
<input type="hidden" name="RelayState" value="token" /> | |||
... | |||
<input type="submit" value="Submit" /> | |||
</form> | |||
<code>RelayState</code> का मान चरण 3 से संरक्षित किया गया है। <code>SAMLResponse</code> पैरामीटर का मान निम्नलिखित <code><samlp:Response></code> तत्व का बेस64 एन्कोडिंग है: | <code>RelayState</code> का मान चरण 3 से संरक्षित किया गया है। <code>SAMLResponse</code> पैरामीटर का मान निम्नलिखित <code><samlp:Response></code> तत्व का बेस64 एन्कोडिंग है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
| Line 557: | Line 557: | ||
उपयोगकर्ता कारक सेवा प्रदाता पर दावा उपभोक्ता सेवा के लिए एक पीएएसटी अनुरोध जारी करता है: | उपयोगकर्ता कारक सेवा प्रदाता पर दावा उपभोक्ता सेवा के लिए एक पीएएसटी अनुरोध जारी करता है: | ||
POST /SAML2/SSO/POST HTTP/1.1 | |||
Host: sp.example.com | |||
Content-Type: application/x-www-form-urlencoded | |||
Content-Length: nnn | |||
SAMLResponse=response&RelayState=token | |||
SAMLResponse= | जहां <code>SAMLResponse</code> और <code>RelayState</code> पैरामीटर के मान चरण 4 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं। | ||
जहां | |||
====== 6. लक्ष्य संसाधन पर पुनर्निर्देशित करें ====== | |||
अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता कारक को लक्ष्य संसाधन पर पुनर्निर्देशित करती है। | अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता कारक को लक्ष्य संसाधन पर पुनर्निर्देशित करती है। | ||
7. लक्ष्य संसाधन के लिए एसपी से पुनः अनुरोध करें | ====== 7. लक्ष्य संसाधन के लिए एसपी से पुनः अनुरोध करें ====== | ||
उपयोगकर्ता कारक सेवा प्रदाता (पुनः) पर लक्ष्य संसाधन का अनुरोध करता है: | उपयोगकर्ता कारक सेवा प्रदाता (पुनः) पर लक्ष्य संसाधन का अनुरोध करता है: | ||
<nowiki>https://sp.example.com/myresource</nowiki> | <nowiki>https://sp.example.com/myresource</nowiki> | ||
8. अनुरोधित संसाधन के साथ प्रतिक्रिया दें | ====== 8. अनुरोधित संसाधन के साथ प्रतिक्रिया दें ====== | ||
चूंकि एक सुरक्षा संदर्भ सम्मिलित है, सेवा प्रदाता संसाधन को उपयोगकर्ता कारक को वापस करता है। | चूंकि एक सुरक्षा संदर्भ सम्मिलित है, सेवा प्रदाता संसाधन को उपयोगकर्ता कारक को वापस करता है। | ||
==== एसपी पुनर्निर्देशन अर्टिफैक्ट; आईडीपी अनुप्रेषित अर्टिफैक्ट == | =====एसपी पुनर्निर्देशन अर्टिफैक्ट; आईडीपी अनुप्रेषित अर्टिफैक्ट ===== | ||
यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल | यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल एसएएमएलप्रॉफ<ref name="SAMLProf" /> जहां सेवा प्रदाता (एसपी) और पहचान प्रदाता (आईडीपी) दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का उपयोग करते हैं। दोनों आर्टिफैक्ट को हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल जीईटी के माध्यम से उनके संबंधित समापन बिंदुओं तक पहुँचाया जाता है। | ||
[[File:Saml2-browser-sso-artifact.gif|frame|center|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (अर्टिफैक्ट )]]एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ संदेश | [[File:Saml2-browser-sso-artifact.gif|frame|center|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (अर्टिफैक्ट )]]एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ संदेश संचार प्रारंभ होता है: | ||
1. एसपी से लक्ष्य संसाधन का अनुरोध करें | '''1. एसपी से लक्ष्य संसाधन का अनुरोध करें''' | ||
प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता कारक के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है: | प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता कारक के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है: | ||
| Line 593: | Line 588: | ||
<nowiki>https://sp.example.com/myresource</nowiki> | <nowiki>https://sp.example.com/myresource</nowiki> | ||
सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-11 को | सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-11 को हटा दें। | ||
2. आईडीपी पर एकल साइन-ऑन (एसएसओ) सेवा पर पुनर्निर्देशन करें | '''2. आईडीपी पर एकल साइन-ऑन (एसएसओ) सेवा पर पुनर्निर्देशन करें''' | ||
सेवा प्रदाता पहचान प्रदाता पर उपयोगकर्ता कारक को एकल साइन-ऑन (एसएसओ) सेवा पर पुनर्निर्देशित करता है। | सेवा प्रदाता पहचान प्रदाता पर उपयोगकर्ता कारक को एकल साइन-ऑन (एसएसओ) सेवा पर पुनर्निर्देशित करता है। <code>RelayState</code> पैरामीटर और <code>SAMLart</code> पुनर्निर्देशन यूआरएल में पैरामीटर जोड़े जाते हैं। | ||
3. आईडीपी पर एसएसओ सेवा के लिए अनुरोध करें | '''3. आईडीपी पर एसएसओ सेवा के लिए अनुरोध करें''' | ||
उपयोगकर्ता कारक पहचान प्रदाता पर एसएसओ सेवा का अनुरोध करता है: | उपयोगकर्ता कारक पहचान प्रदाता पर एसएसओ सेवा का अनुरोध करता है: | ||
<nowiki>https://idp.example.org/SAML2/ | <nowiki>https://idp.example.org/SAML2/SSO/Artifact?SAMLart=</nowiki>''artifact_1''&RelayState=''token'' | ||
जहां <code>''token''</code> सेवा प्रदाता और पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है और <code>''artifact_1''</code> एक एसएएमएल अर्टिफैक्ट है, दोनों चरण 2 पर जारी किए गए हैं। | |||
4. एसपी में अर्टिफैक्ट | '''4. एसपी में अर्टिफैक्ट समाधान सेवा का अनुरोध करें''' | ||
एसएसओ सेवा | एसएसओ सेवा सेवा प्रदाता की आर्टिफैक्ट रिज़ॉल्यूशन सेवा को एसएएमएल एसओएपी संदेश से जुड़े <code><samlp:ArtifactResolve></code> तत्व प्रेषित करके आर्टिफैक्ट को असंदर्भित करती है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:ArtifactResolve | <samlp:ArtifactResolve | ||
| Line 625: | Line 620: | ||
</samlp:ArtifactResolve> | </samlp:ArtifactResolve> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
जहां | जहां <code><samlp:Artifact></code> तत्व का मान चरण 3 में प्रेषित एसएएमएल अर्टिफैक्ट है। | ||
5. एसएएमएल प्रमाणीकरण अनुरोध के साथ प्रतिक्रिया दें | '''5. एसएएमएल प्रमाणीकरण अनुरोध के साथ प्रतिक्रिया दें''' | ||
सेवा प्रदाता पर आर्टिफैक्ट रिज़ॉल्यूशन सेवा पहचान प्रदाता पर एसएसओ सेवा को एक एसएएमएल एसओएपी संदेश से जुड़ा एक <code><samlp:ArtifactResponse></code> तत्व (जिसमें एक <code><samlp:AuthnRequest></code> तत्व होता है) प्रतिवर्त होता है: | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:ArtifactResponse | <samlp:ArtifactResponse | ||
| Line 660: | Line 655: | ||
</samlp:ArtifactResponse> | </samlp:ArtifactResponse> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
एसएसओ सेवा | एसएसओ सेवा <code><samlp:AuthnRequest></code> तत्व को संसाधित करती है और सुरक्षा जांच करती है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता की पहचान करता है (विवरण छोड़ दिया गया है)। | ||
6. अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करें | '''6. अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करें''' | ||
पहचान प्रदाता पर एसएसओ सेवा उपयोगकर्ता कारक को सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करती है। पूर्व <code>RelayState</code> पैरामीटर और एक | पहचान प्रदाता पर एसएसओ सेवा उपयोगकर्ता कारक को सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करती है। पूर्व <code>RelayState</code> पैरामीटर और एक नए <code>SAMLart</code> पुनर्निर्देशन यूआरएल में पैरामीटर जोड़े जाते हैं। | ||
7. एसपी में अभिकथन उपभोक्ता सेवा का अनुरोध करें | '''7. एसपी में अभिकथन उपभोक्ता सेवा का अनुरोध करें''' | ||
उपयोगकर्ता कारक सेवा प्रदाता पर दावा उपभोक्ता सेवा का अनुरोध करता है: | उपयोगकर्ता कारक सेवा प्रदाता पर दावा उपभोक्ता सेवा का अनुरोध करता है: | ||
https://sp.example.com/SAML2/SSO<nowiki/>/Artifact?SAMLart=''artifact_2''&RelayState=''token'' | |||
जहां <code>''token''</code> चरण 3 से टोकन मान है और <code>''artifact_2''</code> चरण 6 में जारी किया गया एसएएमएल अर्टिफैक्ट है। | |||
8. आईडीपी पर अर्टिफैक्ट | '''8. आईडीपी पर अर्टिफैक्ट समाधान सेवा का अनुरोध करें''' | ||
अभिकथन उपभोक्ता सेवा | अभिकथन उपभोक्ता सेवा पहचान प्रदाता पर आर्टिफैक्ट रिज़ॉल्यूशन सेवा के लिए एसएएमएल एसओएपी संदेश के लिए बाध्य <code><samlp:ArtifactResolve></code>तत्व को प्रेषित करके आर्टिफैक्ट को असंदर्भित करती है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:ArtifactResolve | <samlp:ArtifactResolve | ||
| Line 692: | Line 687: | ||
</samlp:ArtifactResolve> | </samlp:ArtifactResolve> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
जहां | जहां <code><samlp:Artifact></code> तत्व का मान चरण 7 पर प्रेषित एसएएमएल अर्टिफैक्ट है। | ||
9. एसएएमएल अभिकथन के साथ प्रतिक्रिया दें | '''9. एसएएमएल अभिकथन के साथ प्रतिक्रिया दें''' | ||
पहचान प्रदाता पर आर्टिफैक्ट रिज़ॉल्यूशन सेवा एक <code><samlp:ArtifactResponse></code> तत्व (एक <code><samlp:Response></code> तत्व युक्त) को एसएएमएल एसओएपी संदेश से जोड़कर सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा को वापस करती है: | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:ArtifactResponse | <samlp:ArtifactResponse | ||
| Line 766: | Line 761: | ||
</samlp:ArtifactResponse> | </samlp:ArtifactResponse> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
10. लक्ष्य संसाधन पर पुनर्निर्देशित करें | '''10. लक्ष्य संसाधन पर पुनर्निर्देशित करें''' | ||
अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता कारक को लक्ष्य संसाधन पर पुनर्निर्देशित करती है। | अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता कारक को लक्ष्य संसाधन पर पुनर्निर्देशित करती है। | ||
11. लक्ष्य संसाधन के लिए एसपी से पुनः अनुरोध करें | '''11. लक्ष्य संसाधन के लिए एसपी से पुनः अनुरोध करें''' | ||
उपयोगकर्ता कारक सेवा प्रदाता (पुनः) पर लक्ष्य संसाधन का अनुरोध करता है: | उपयोगकर्ता कारक सेवा प्रदाता (पुनः) पर लक्ष्य संसाधन का अनुरोध करता है: | ||
| Line 776: | Line 771: | ||
<nowiki>https://sp.example.com/myresource</nowiki> | <nowiki>https://sp.example.com/myresource</nowiki> | ||
12. अनुरोधित संसाधन के साथ प्रतिक्रिया दें | '''12. अनुरोधित संसाधन के साथ प्रतिक्रिया दें''' | ||
चूंकि एक सुरक्षा संदर्भ सम्मिलित है, सेवा प्रदाता संसाधन को उपयोगकर्ता कारक को वापस करता है। | चूंकि एक सुरक्षा संदर्भ सम्मिलित है, सेवा प्रदाता संसाधन को उपयोगकर्ता कारक को वापस करता है। | ||
=== पहचान प्रदाता | === पहचान प्रदाता खोज प्रोफ़ाइल === | ||
एसएएमएल 2.0 आइडेंटिटी प्रोवाइडर | एसएएमएल 2.0 पहचान प्रदाता (आइडेंटिटी प्रोवाइडर) खोज प्रोफ़ाइल में नीचे दी गई अवधारणाएं सम्मिलित हैं: | ||
* 'सामान्य डोमेन' | * '''<nowiki/>'सामान्य डोमेन'''' | ||
* ' | * '''<nowiki/>'सामान्य डोमेन कुकी'''' | ||
* 'सामान्य डोमेन कुकी लेखन सेवा' | * '''<nowiki/>'सामान्य डोमेन कुकी लेखन सेवा'''' | ||
* ' | * '''<nowiki/>'सामान्य डोमेन कुकी पठन सेवा'''' | ||
सामान्य डोमेन के एक काल्पनिक उदाहरण के रूप में, मान लें कि उदाहरण यूके (example.co.uk) और उदाहरण | सामान्य डोमेन के एक काल्पनिक उदाहरण के रूप में, मान लें कि उदाहरण यूके (example.co.uk) और उदाहरण डॉयचलैंड (example.de) वर्चुअल संगठन उदाहरण वैश्विक गठबंधन (example.com) से संबंधित हैं। इस उदाहरण में, डोमेन '''example.com''' सामान्य डोमेन है। उदाहरण यूके और उदाहरण डॉयचलैंड दोनों की इस डोमेन (uk.example.com और de.example.com, क्रमशः) में उपस्थिति है। | ||
सामान्य डोमेन कुकी एक सुरक्षित ब्राउज़र कुकी | सामान्य डोमेन कुकी सामान्य डोमेन तक सीमित एक सुरक्षित ब्राउज़र कुकी है। प्रत्येक ब्राउज़र उपयोगकर्ता के लिए, यह कुकी हाल ही में देखे गए आईडीपी की इतिहास सूची संग्रहीत करती है। कुकी का नाम और मान आईडीपी खोज प्रोफ़ाइल (एसएएमएलप्रॉफ)<ref name="SAMLProf"/> में निर्दिष्ट हैं। | ||
प्रमाणीकरण के एक सफल कार्य के बाद, आईडीपी सामान्य डोमेन कुकी लेखन सेवा का अनुरोध करता है। यह सेवा आईडीपी के विशिष्ट पहचानकर्ता को सामान्य डोमेन कुकी में जोड़ती है। एसपी, जब इसे एक संरक्षित संसाधन के लिए एक अप्रमाणित अनुरोध प्राप्त होता है, तो सामान्य डोमेन कुकी | प्रमाणीकरण के एक सफल कार्य के बाद, आईडीपी सामान्य डोमेन कुकी लेखन सेवा का अनुरोध करता है। यह सेवा आईडीपी के विशिष्ट पहचानकर्ता को सामान्य डोमेन कुकी में जोड़ती है। एसपी, जब इसे एक संरक्षित संसाधन के लिए एक अप्रमाणित अनुरोध प्राप्त होता है, तो सामान्य डोमेन कुकी पठन सेवा से अनुरोध करता है कि वह ब्राउजर उपयोगकर्ता के सबसे हाल ही में उपयोग किए गए आईडीपी की खोज करे। | ||
=== अभिकथन जांच/अनुरोध प्रोफ़ाइल === | === अभिकथन जांच/अनुरोध प्रोफ़ाइल === | ||
| Line 799: | Line 794: | ||
अभिकथन जांच/अनुरोध प्रोफ़ाइल एक सामान्य प्रोफ़ाइल है जो निम्नलिखित एसएएमएल 2.0 तत्वों का उपयोग करके कई प्रकार के तथाकथित प्रश्नों को समायोजित करती है: | अभिकथन जांच/अनुरोध प्रोफ़ाइल एक सामान्य प्रोफ़ाइल है जो निम्नलिखित एसएएमएल 2.0 तत्वों का उपयोग करके कई प्रकार के तथाकथित प्रश्नों को समायोजित करती है: | ||
* | * <code><samlp:AssertionIDRequest></code> तत्व, जिसका उपयोग उसके विशिष्ट पहचानकर्ता (<code>ID</code>) के लिए किया जाता है। | ||
* | * <code><samlp:SubjectQuery></code> तत्व, जो एक सार विस्तार बिंदु है जो नए विषय-आधारित एसएएमएल प्रश्नों को परिभाषित करने की अनुमति देता है। | ||
* | * <code><samlp:AuthnQuery></code> तत्व, जिसका उपयोग प्रमाणीकरण प्राधिकरण से किसी दिए गए विषय के बारे में सम्मिलित प्रमाणीकरण अभिकथन का अनुरोध करने के लिए किया जाता है। | ||
* | * <code><samlp:AttributeQuery></code> तत्व, जिसका उपयोग किसी एट्रिब्यूट प्राधिकरण से किसी दिए गए विषय के बारे में एट्रिब्यूट का अनुरोध करने के लिए किया जाता है। | ||
* | * <code><samlp:AuthzDecisionQuery></code> तत्व, जिसका उपयोग किसी विश्वसनीय तृतीय पक्ष से प्राधिकरण निर्णय का अनुरोध करने के लिए किया जाता है। | ||
एसएएमएल एसओएपी बाइंडिंग का उपयोग | एसएएमएल एसओएपी बाइंडिंग का उपयोग प्रायः प्रश्नों के संयोजन में किया जाता है। | ||
==== एसएएमएल एट्रिब्यूट जांच ==== | ==== एसएएमएल एट्रिब्यूट जांच ==== | ||
एट्रिब्यूट जांच शायद एसएएमएल जांच का सबसे महत्वपूर्ण प्रकार है। | एट्रिब्यूट जांच शायद एसएएमएल जांच का सबसे महत्वपूर्ण प्रकार है। प्रायः एक अनुरोधकर्ता, प्रिंसिपल की ओर से कार्य करता है, एट्रिब्यूट के लिए एक पहचान प्रदाता से प्रश्न करता है। नीचे हम एक प्रिंसिपल द्वारा प्रत्यक्ष जारी किए गए प्रश्न का उदाहरण देते हैं: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<samlp:AttributeQuery | <samlp:AttributeQuery | ||
| Line 839: | Line 834: | ||
</samlp:AttributeQuery> | </samlp:AttributeQuery> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
ध्यान दें कि <code>Issuer</code> | ध्यान दें कि इस स्थिति में <code>Issuer</code> ही <code>Subject</code> है । इसे कभी-कभी एट्रिब्यूट स्व-जांच कहा जाता है। एक पहचान प्रदाता निम्नलिखित अभिकथन को <code><samlp:Response></code> तत्व में व्रेप (दिखाया नहीं गया) किया जा सकता है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<saml:Assertion | <saml:Assertion | ||
| Line 918: | Line 913: | ||
</saml:Assertion> | </saml:Assertion> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
पहले दिखाए गए | पहले दिखाए गए <code>BearerAssertion</code> के विपरीत, इस अभिकथन का जीवनकाल X.509 प्रमाणपत्र के जीवनकाल के अनुरूप है, जिसका उपयोग प्रिंसिपल पहचान प्रदाता को प्रमाणित करने के लिए करता था। इसके अतिरक्त, चूंकि अभिकथन पर हस्ताक्षर किए गए हैं, उपयोगकर्ता इस अभिकथन को एक विश्वसनीय पक्ष को भेज सकता है, और जब तक उपयोगकर्ता संबंधित निजी कुंजी (इसलिए नाम "धारक-कुंजी") का अधिकार प्रमाणित कर सकता है, तब तक विश्वसनीय पक्ष ऐसा कर सकती है आश्वस्त रहें कि दावा प्रामाणिक है। | ||
== एसएएमएल 2.0 मेटाडेटा == | == एसएएमएल 2.0 मेटाडेटा == | ||
वस्तुतः, मेटाडेटा वह है जो एसएएमएल को काम करता है | वस्तुतः, मेटाडेटा वह है जो एसएएमएल को काम करता है या अच्छी तरह से काम करता है। मेटाडेटा के कुछ महत्वपूर्ण उपयोगों में सम्मिलित हैं: | ||
* एक सेवा प्रदाता एक | * एक सेवा प्रदाता ब्राउज़र के माध्यम से एक पहचान प्रदाता को <code><samlp:AuthnRequest></code> तत्व प्रसारित करने की तैयारी करता है। सेवा प्रदाता को कैसे पता चलता है कि पहचान प्रदाता प्रामाणिक है और उपयोगकर्ता के पासवर्ड को फ़िशिंग करने का प्रयास करने वाला कोई विकृत पहचान प्रदाता नहीं है? प्रमाणीकरण अनुरोध जारी करने से पहले सेवा प्रदाता '''मेटाडेटा में''' विश्वसनीय पहचान प्रदाताओं की अपनी सूची से परामर्श करता है। | ||
* पूर्व परिदृश्य में, सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण अनुरोध के साथ उपयोगकर्ता को | * पूर्व परिदृश्य में, सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण अनुरोध के साथ उपयोगकर्ता को जहां भेजा जाए? सेवा प्रदाता <strong>मेटाडेटा में</strong> विश्वसनीय पहचान प्रदाता के पूर्व-व्यवस्थित अंतिम बिंदु स्थान की जांच करता है। | ||
* एक पहचान प्रदाता एक | *एक पहचान प्रदाता ब्राउज़र के माध्यम से एक सेवा प्रदाता से एक <code><samlp:AuthnRequest></code> तत्व प्राप्त करता है। पहचान प्रदाता को कैसे पता चलता है कि सेवा प्रदाता प्रामाणिक है और कोई विकृत सेवा प्रदाता नहीं है जो उपयोगकर्ता के संबंध में व्यक्तिगत रूप से पहचान योग्य जानकारी प्राप्त करने का प्रयास कर रहा है? प्रमाणीकरण प्रतिक्रिया जारी करने से पहले पहचान प्रदाता '''मेटाडेटा में''' विश्वसनीय सेवा प्रदाताओं की अपनी सूची से परामर्श करता है। | ||
* पूर्व परिदृश्य में, पहचान प्रदाता एसएएमएल अभिकथन को कैसे एन्क्रिप्ट करता है ताकि विश्वसनीय सेवा प्रदाता (और केवल विश्वसनीय सेवा प्रदाता) अभिकथन को डिक्रिप्ट कर सके। पहचान प्रदाता अभिकथन को एन्क्रिप्ट करने के लिए <strong>मेटाडेटा में</strong> सेवा प्रदाता के एन्क्रिप्शन प्रमाणपत्र का उपयोग करता है। | * पूर्व परिदृश्य में, पहचान प्रदाता एसएएमएल अभिकथन को कैसे एन्क्रिप्ट करता है ताकि विश्वसनीय सेवा प्रदाता (और केवल विश्वसनीय सेवा प्रदाता) अभिकथन को डिक्रिप्ट कर सके। पहचान प्रदाता अभिकथन को एन्क्रिप्ट करने के लिए <strong>मेटाडेटा में</strong> सेवा प्रदाता के एन्क्रिप्शन प्रमाणपत्र का उपयोग करता है। | ||
* पूर्व परिदृश्य को जारी रखते हुए, पहचान प्रदाता कैसे जानता है कि उपयोगकर्ता को प्रमाणीकरण प्रतिक्रिया के साथ कहां भेजा जाए? पहचान प्रदाता <strong>मेटाडेटा में</strong> विश्वसनीय सेवा प्रदाता के पूर्व-व्यवस्थित | * पूर्व परिदृश्य को जारी रखते हुए, पहचान प्रदाता कैसे जानता है कि उपयोगकर्ता को प्रमाणीकरण प्रतिक्रिया के साथ कहां भेजा जाए? पहचान प्रदाता <strong>मेटाडेटा में</strong> विश्वसनीय सेवा प्रदाता के पूर्व-व्यवस्थित अंतिम बिंदु स्थान की जांच करता है। | ||
* सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण प्रतिक्रिया एक विश्वसनीय पहचान प्रदाता से आई है? सेवा प्रदाता <strong>मेटाडेटा से</strong> पहचान प्रदाता की सार्वजनिक कुंजी का उपयोग करके अभिकथन पर चिन्ह की पुष्टि करता है। | * सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण प्रतिक्रिया एक विश्वसनीय पहचान प्रदाता से आई है? सेवा प्रदाता <strong>मेटाडेटा से</strong> पहचान प्रदाता की सार्वजनिक कुंजी का उपयोग करके अभिकथन पर चिन्ह की पुष्टि करता है। | ||
* सेवा प्रदाता को यह कैसे पता चलता है कि विश्वसनीय पहचान प्रदाता से प्राप्त अर्टिफैक्ट का समाधान कहां करना है? सेवा प्रदाता <strong>मेटाडेटा से</strong> पहचान प्रदाता की अर्टिफैक्ट | * सेवा प्रदाता को यह कैसे पता चलता है कि विश्वसनीय पहचान प्रदाता से प्राप्त अर्टिफैक्ट का समाधान कहां करना है? सेवा प्रदाता <strong>मेटाडेटा से</strong> पहचान प्रदाता की अर्टिफैक्ट समाधान सेवा के पूर्व-व्यवस्थित अंतिम बिंदु स्थान को देखता है। | ||
मेटाडेटा पहचान प्रदाता और सेवा प्रदाता के बीच एक सुरक्षित लेनदेन सुनिश्चित करता है। मेटाडेटा से पहले, | मेटाडेटा पहचान प्रदाता और सेवा प्रदाता के बीच एक सुरक्षित लेनदेन सुनिश्चित करता है। मेटाडेटा से पहले, संगठन की जानकारी को अधिकृत तरीके से कार्यान्वयन में एन्कोड किया गया था। अब संगठन की जानकारी साझा करने की सुविधा मानक मेटाडेटा द्वारा दी जाती है। एसएएमएल 2.0 एक अच्छी तरह से परिभाषित, अंतर-संचालित मेटाडेटा प्रारूप प्रदान करता है, जिसका उपयोग संस्थाएं विश्वास प्रक्रिया को बूटस्ट्रैप करने के लिए कर सकती हैं। | ||
=== पहचान प्रदाता मेटाडेटा === | === पहचान प्रदाता मेटाडेटा === | ||
<code><md:EntityDescriptor></code> तत्व एक पहचान प्रदाता एक में अपने बारे में डेटा प्रकाशित करता है: | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
| Line 958: | Line 953: | ||
इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें: | इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें: | ||
* <code> | * <code>entityID</code> एट्रिब्यूट एंटिटी का विशिष्ट पहचानकर्ता है। | ||
* <code>validUntil</code | * <code>validUntil</code> एट्रिब्यूट मेटाडेटा की अवसान तिथि देती है। | ||
* <code><ds:Signature></code | * <code><ds:Signature></code> तत्व (जिसे सरलता के लिए हटा दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है। | ||
* संगठन में पहचाना गया <code><md:Organization></code> तत्व एंटिटी | * संगठन में पहचाना गया <code><md:Organization></code> तत्व एंटिटी विवरण द्वारा वर्णित एंटिटी (एसएएमएलमेटा का खंड 2.3.2)<ref name="SAMLMeta"/> के लिए अधीन है | ||
* | * <code><md:ContactPerson></code> तत्व में संपर्क जानकारी एंटिटी के लिए अधीन एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलमेटा का अनुभाग 2.3.2.2 देखें।<ref name="SAMLMeta"/> | ||
परिभाषा के अनुसार, एक पहचान प्रदाता एक एसएसओ सेवा का प्रबंधन करता है जो एसएएमएलप्रॉफ में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।<ref name="SAMLProf"/>उदाहरण के लिए, में | परिभाषा के अनुसार, एक पहचान प्रदाता एक एसएसओ सेवा का प्रबंधन करता है जो एसएएमएलप्रॉफ में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।<ref name="SAMLProf"/> उदाहरण के लिए, अगले अनुभाग में दिखाए गए <code><md:IDPSSODescriptor</code> तत्व में वर्णित पहचान प्रदाता देखें। | ||
==== एसएसओ सेवा मेटाडेटा ==== | ==== एसएसओ सेवा मेटाडेटा ==== | ||
पहचान प्रदाता पर एसएसओ सेवा का वर्णन एक में किया गया है | <code><md:IDPSSODescriptor</code> तत्व पहचान प्रदाता पर एसएसओ सेवा का वर्णन एक में किया गया है: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<md:IDPSSODescriptor | <md:IDPSSODescriptor | ||
| Line 1,003: | Line 998: | ||
पिछला मेटाडेटा तत्व पहचान प्रदाता पर एसएसओ सेवा का वर्णन करता है। इस तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें: | पिछला मेटाडेटा तत्व पहचान प्रदाता पर एसएसओ सेवा का वर्णन करता है। इस तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें: | ||
* पहचान प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल | * पहचान प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल हस्ताक्षर कुंजी और/या एक निजी बैक-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी आईडीपी मेटाडेटा में <code><md:KeyDescriptor use="signing"></code> तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य सामग्री को मुख्य विवरणक से हटा दिया गया है। | ||
* <code> | * <code><md:ArtifactResolutionService></code> तत्व <code>BINDING</code> का एट्रिब्यूट प्रदर्शित करता है कि एसएएमएल एसओएपी बाइंडिंग एसएएमएलबाइंड<ref name="SAMLBind"/> अर्टिफैक्ट रिज़ॉल्यूशन के लिए उपयोग किया जाना चाहिए। | ||
* <code> | * <code><md:ArtifactResolutionService></code> तत्व की <code>Location</code> का एट्रिब्यूट का उपयोग "द्विक आर्टिफैक्ट" प्रोफ़ाइल के चरण 8 में किया जाता है। | ||
* | * <code><md:ArtifactResolutionService></code> तत्व का <code>index</code> का एट्रिब्यूट का मान एसएएमएल प्ररूप 0x0004 अर्टिफैक्ट के संरचना में <code>EndpointIndex</code> के रूप में प्रयोग किया जाता है। | ||
* <code><md:NameIDFormat></code | * <code><md:NameIDFormat></code> तत्व प्रदर्शित करते हैं कि एसएएमएल नाम पहचानकर्ता प्रारूप एसएएमएल क्रोड<ref name="SAMLCore"/> एसएसओ सेवा समर्थन करती है। | ||
* <code> | * <code><md:SingleSignOnService></code> तत्व की <code>BINDING</code> के एट्रिब्यूट एसएएमएल 2.0 बाइंडिंग विनिर्देश एसएएमएलबाइंड<ref name="SAMLBind"/> में निर्दिष्ट मानक यूआरआई हैं। | ||
* <code> | * <code><md:SingleSignOnService></code> तत्व <code>Location</code> का एट्रिब्यूट जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग का समर्थन करता है, जिसका पीएएसटी अनुरोध के चरण 2 में उपयोग किया जाता है; | ||
* <code> | * <code><md:SingleSignOnService></code> तत्व <code>Location</code> का एट्रिब्यूट जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का समर्थन करता है जिसका एसपी पुनर्निर्देशन अर्टिफैक्ट के चरण 2 में उपयोग किया जाता है; | ||
* <code><saml:Attribute></code | * <code><saml:Attribute></code> तत्व एक एट्रिब्यूट का वर्णन करता है कि पहचान प्रदाता दावा (नीति के अधीन) करने के लिए तैयार किया गया है। <code><saml:AttributeValue></code> तत्व उन संभावित मानों की गणना करते हैं जिन पर एट्रिब्यूट प्रयुक्त हो सकती है | ||
जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, | जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, <code>Location</code> एट्रिब्यूटएँ के मानो का उपयोग एसएएमएल संदेशों को रूट करने के लिए एक सेवा प्रदाता द्वारा उपयोग की जाती हैं, जो एक विकृत पहचान प्रदाता द्वारा एक मध्य मे आक्षेप की संभावना को कम करता है। | ||
=== सेवा प्रदाता मेटाडेटा === | === सेवा प्रदाता मेटाडेटा === | ||
| Line 1,039: | Line 1,034: | ||
इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें: | इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें: | ||
* <code> | * <code>entityID</code> एट्रिब्यूट एंटिटी का विशिष्ट पहचानकर्ता है। | ||
* <code>validUntil</code | * <code>validUntil</code> एट्रिब्यूट मेटाडेटा की अवसान तिथि देती है। | ||
* <code><ds:Signature></code | * <code><ds:Signature></code> तत्व (जिसे सरलता के लिए हटा दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है। | ||
* संगठन में पहचाना गया <code><md:Organization></code> तत्व एंटिटी विवरणक द्वारा वर्णित एंटिटी | * संगठन में पहचाना गया <code><md:Organization></code> तत्व एंटिटी विवरणक द्वारा वर्णित एंटिटी एसएएमएलमेटा का खंड 2.3.2<ref name="SAMLMeta"/> के लिए अधीन है | ||
* | * <code><md:ContactPerson></code> तत्व में संपर्क जानकारी एंटिटी के लिए अधीन एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलमेटा का अनुभाग 2.3.2.2 देखें।<ref name="SAMLMeta"/> | ||
परिभाषा के अनुसार, एक सेवा प्रदाता एक अभिकथन उपभोक्ता सेवा का प्रबंधन करता है जो एसएएमएलप्रॉफ में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।<ref name="SAMLProf"/>उदाहरण के लिए, में | परिभाषा के अनुसार, एक सेवा प्रदाता एक अभिकथन उपभोक्ता सेवा का प्रबंधन करता है जो एसएएमएलप्रॉफ में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।<ref name="SAMLProf"/>उदाहरण के लिए, अगले अनुभाग में दिखाए गए <code><md:SPSSODescriptor></code> तत्व में वर्णित पहचान प्रदाता देखें। | ||
==== अभिकथन उपभोक्ता सेवा मेटाडेटा ==== | ==== अभिकथन उपभोक्ता सेवा मेटाडेटा ==== | ||
| Line 1,081: | Line 1,076: | ||
</md:SPSSODescriptor> | </md:SPSSODescriptor> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<code><md:SPSSODescriptor></code> मेटाडेटा तत्व | <code><md:SPSSODescriptor></code> मेटाडेटा तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें: | ||
* सेवा प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल चिन्ह कुंजी और/या एक निजी बैक-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी एसपी मेटाडेटा में <code><md:KeyDescriptor use="signing"></code> तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य वस्तु को मुख्य विवरणक से हटा दिया गया है। | * सेवा प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल चिन्ह कुंजी और/या एक निजी बैक-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी एसपी मेटाडेटा में <code><md:KeyDescriptor use="signing"></code> तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य वस्तु को मुख्य विवरणक से हटा दिया गया है। | ||
* इसी तरह सेवा प्रदाता सॉफ्टवेयर को एक निजी एसएएमएल डिक्रिप्शन कुंजी के साथ कॉन्फ़िगर किया गया है। एक सार्वजनिक एसएएमएल एन्क्रिप्शन कुंजी | * इसी तरह सेवा प्रदाता सॉफ्टवेयर को एक निजी एसएएमएल डिक्रिप्शन कुंजी के साथ कॉन्फ़िगर किया गया है। एक सार्वजनिक एसएएमएल एन्क्रिप्शन कुंजी <code><md:KeyDescriptor use="encryption"></code> एसपी मेटाडेटा में तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य वस्तु को हटा दिया गया है। | ||
* <code><md:AssertionConsumerService></code> तत्व की | * <code><md:AssertionConsumerService></code> तत्व की <code>index</code> एट्रिब्यूट का उपयोग <code>AssertionConsumerServiceIndex</code> तत्व में <code><samlp:AuthnRequest></code> एट्रिब्यूट के मान के रूप में किया जाता है। | ||
* <code><md:AssertionConsumerService></code> तत्वों की <code>BINDING</code> | * <code><md:AssertionConsumerService></code> तत्वों की <code>BINDING</code> एट्रिब्यूटएँ एसएएमएल 2.0 बाइंडिंग विनिर्देश (एसएएमएलबीआईएनडी)<ref name="SAMLBind"/> में निर्दिष्ट मानक यूआरआई हैं। | ||
* <code><md:AssertionConsumerService></code> तत्व की | * <code><md:AssertionConsumerService></code> तत्व की <code>Location</code> की एट्रिब्यूट जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग (<code>index="0"</code>) का समर्थन करती है, जिसका उपयोग "द्विक पीओएसटी" प्रोफ़ाइल के चरण 4 में किया जाता है। | ||
* <code><md:AssertionConsumerService></code> तत्व की | * <code><md:AssertionConsumerService></code> तत्व की <code>Location</code> की एट्रिब्यूट जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग (<code>index="1"</code>) का समर्थन करती है, जिसका उपयोग "द्विक आर्टिफैक्ट" प्रोफ़ाइल के चरण 6 में किया जाता है। | ||
* <code><md:AttributeConsumingService></code> तत्व का उपयोग पहचान प्रदाता द्वारा एक <code><saml:AttributeStatement></code> तत्व तैयार करने के लिए किया जाता है जिसे वेब ब्राउज़र एसएसओ के साथ सेवा प्रदाता को भेजा जाता है। | * <code><md:AttributeConsumingService></code> तत्व का उपयोग पहचान प्रदाता द्वारा एक <code><saml:AttributeStatement></code> तत्व तैयार करने के लिए किया जाता है जिसे वेब ब्राउज़र एसएसओ के साथ सेवा प्रदाता को भेजा जाता है। | ||
* <code><md:AssertionConsumerService></code> तत्व की | * <code><md:AssertionConsumerService></code> तत्व की <code>index</code> एट्रिब्यूट का उपयोग <code>AttributeConsumingServiceIndex</code> तत्व में <code><samlp:AuthnRequest></code> एट्रिब्यूट के मान के रूप में किया जाता है। | ||
जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, | जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, <code>Location</code> एट्रिब्यूट के मानो का एक पहचान प्रदाता द्वारा एसएएमएल संदेशों को रूट करने के लिए उपयोग की जाती हैं, जो एक विकृत सेवा प्रदाता द्वारा एक बीच मे आक्षेप की संभावना को कम करता है। | ||
=== मेटाडेटा एग्रीगेट === | === मेटाडेटा एग्रीगेट === | ||
| Line 1,112: | Line 1,107: | ||
</md:EntitiesDescriptor> | </md:EntitiesDescriptor> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
उपरोक्त | उपरोक्त <code><md:EntitiesDescriptor></code> तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें: | ||
* डिजिटल चिन्ह (संक्षिप्तता के लिए हटा दिया गया है) संपूर्ण एग्रीगेट को सम्मिलित करता है। | * डिजिटल चिन्ह (संक्षिप्तता के लिए हटा दिया गया है) संपूर्ण एग्रीगेट को सम्मिलित करता है। | ||
* <code>validUntil</code> | * <code>validUntil</code> एट्रिब्यूट को पैरेंट तत्व तक बढ़ा दिया गया है, जिसका अर्थ है कि अवसान तिथि प्रत्येक चाइल्ड तत्व पर प्रयुक्त होती है। | ||
* अनावश्यक नेमस्पेस घोषणाओं से संरक्षित करने के लिए एक्सएमएल नेमस्पेस घोषणाओं को पैरेंट तत्व तक बढ़ा दिया गया है। | * अनावश्यक नेमस्पेस घोषणाओं से संरक्षित करने के लिए एक्सएमएल नेमस्पेस घोषणाओं को पैरेंट तत्व तक बढ़ा दिया गया है। | ||
Revision as of 14:11, 23 June 2023
| Abbreviation | SAML |
|---|---|
| Status | Published |
| Year started | November 2003 |
| Latest version | V2.0 March 2005 |
| Preview version | V2.0 with Errata May 2019 |
| Organization | Organization for the Advancement of Structured Information Standards (OASIS) |
| Committee | OASIS Security Services (SAML) Technical Committee |
| Website | OASIS SAML Wiki |
सुरक्षा अभिकथन मार्कअप भाषा 2.0 (एसएएमएल 2.0) सुरक्षा डोमेन के बीच प्रमाणीकरण और प्राधिकरण पहचान के विनिमय के लिए एसएएमएल मानक का एक संस्करण है। एसएएमएल 2.0 एक एक्सएमएल-आधारित प्रोटोकॉल है जो एक एसएएमएल प्राधिकरण, जिसे एक पहचान प्रदाता कहा जाता है, और एक एसएएमएल उपभोक्ता, जिसे एक सेवा प्रदाता कहा जाता है, जिसके बीच एक प्रिंसिपल (सामान्य रूप से एक अंतिम उपयोगकर्ता) के बारे में जानकारी प्रसारित करने के लिए अभिकथन वाले सुरक्षा टोकन का उपयोग करता है। एसएएमएल 2.0 वेब-आधारित, क्रॉस-डोमेन एकल साइन-ऑन (एसएसओ) को सक्षम करता है, जो उपयोगकर्ता को एकाधिक प्रमाणीकरण टोकन वितरित करने के प्रशासनिक ओवरहेड को कम करने में सहायता करता है।
मार्च 2005 में एसएएमएल 1.1 के अतिरिक्त एसएएमएल 2.0 को ओएसिस (संगठन) मानक के रूप में अनुमोदित किया गया था। एसएएमएल 2.0 के महत्वपूर्ण स्वरूपों को आधिकारिक दस्तावेजों एसएएमएलक्रोड,[1] एसएएमएलबाइंड,[2] एसएएमएलप्रोफ,[3] और एसएएमएलमेटा में विस्तार से सम्मिलित किया गया है।[4]
एसएएमएल 2.0 के निर्माण में 24 से अधिक कंपनियों और संगठनों के लगभग 30 व्यक्ति सम्मिलित थे। विशेष रूप से, लिबर्टी एलायंस ने अपना पहचान महासंघ रूपरेखा (आईडी-एफएफ) विनिर्देश ओएसिस को देता है, जो एसएएमएल 2.0 विनिर्देश का आधार बन गया। इस प्रकार एसएएमएल 2.0 एसएएमएल 1.1, लिबर्टी आईडी-एफएफ 1.2, और शिबोलेथ 1.3 के अभिसरण का प्रतिनिधित्व करता है।
एसएएमएल 2.0 अभिकथन
अभिकथन (असर्शन) सूचना का एक पैकेज है जो एसएएमएल प्राधिकरण द्वारा दिए गए शून्य या अधिक स्टेटमेंट प्रदान करता है। एसएएमएल अभिकथन सामान्य रूप से किसी विषय के बारे में किए जाते हैं, जिसे <Subject> तत्व द्वारा दर्शाया जाता है। एसएएमएल 2.0 विनिर्देश तीन अलग-अलग प्रकार के अभिकथन स्टेटमेंट को परिभाषित करता है जिन्हें एसएएमएल प्राधिकरण द्वारा बनाया जा सकता है। सभी एसएएमएल-परिभाषित स्टेटमेंट एक विषय से जुड़े हुए हैं। परिभाषित तीन प्रकार के अभिकथन स्टेटमेंट इस प्रकार हैं:
- प्रमाणीकरण स्टेटमेंट: अभिकथन विषय को एक विशेष समय पर एक विशेष माध्यम से प्रमाणित किया गया था।
- एट्रिब्यूट स्टेटमेंट: अभिकथन विषय आपूर्ति की गई एट्रिब्यूट से जुड़ा है।
- प्राधिकरण निर्णय स्टेटमेंट: अभिकथन के विषय को निर्दिष्ट संसाधन तक पहुंचने की अनुमति देने का अनुरोध स्वीकार कर लिया गया है या अस्वीकार कर दिया गया है।
एसएएमएल अभिकथन का एक महत्वपूर्ण प्रकार तथाकथित "वाहक" अभिकथन है जिसका उपयोग वेब ब्राउज़र एसएसओ को सुविधाजनक बनाने के लिए किया जाता है। यहां एक पहचान प्रदाता (https://idp.example.org/SAML2) द्वारा एक सेवा प्रदाता (https://sp.example.com/SAML2) को जारी किए गए अल्पकालिक वाहक अभिकथन का एक उदाहरण दिया गया है। अभिकथन में एक प्रमाणीकरण अभिकथन <saml:AuthnStatement> और एक एट्रिब्यूट अभिकथन <saml:AttributeStatement>दोनों सम्मिलित हैं, जो संभवतः सेवा प्रदाता अभिगम्य नियंत्रण निर्णय लेने के लिए उपयोग करता है। उपसर्ग saml: एसएएमएल V2.0 अभिकथन नेमस्पेस का प्रतिनिधित्व करता है।
एसएएमएल का उदाहरण
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
ID="_d71a3a8e9fcc45c9e9d248ef7049393fc8f04e5f75"
Version="2.0"
IssueInstant="2004-12-05T09:22:05Z">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
3f7b3dcf-1674-4ecd-92c8-1544f346baf8
</saml:NameID>
<saml:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData
InResponseTo="aaf23196-1773-2113-474a-fe114412ab72"
Recipient="https://sp.example.com/SAML2/SSO/POST"
NotOnOrAfter="2004-12-05T09:27:05Z"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions
NotBefore="2004-12-05T09:17:05Z"
NotOnOrAfter="2004-12-05T09:27:05Z">
<saml:AudienceRestriction>
<saml:Audience>https://sp.example.com/SAML2</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement
AuthnInstant="2004-12-05T09:22:00Z"
SessionIndex="b07b804c-7c29-ea16-7300-4f3d6f7928ac">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute
xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
x500:Encoding="LDAP"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"
FriendlyName="eduPersonAffiliation">
<saml:AttributeValue
xsi:type="xs:string">member</saml:AttributeValue>
<saml:AttributeValue
xsi:type="xs:string">staff</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
ध्यान दें कि उपरोक्त उदाहरण में <saml:Assertion> तत्व में निम्नलिखित चाइल्ड तत्व सम्मिलित हैं:
<saml:Issuer>तत्व, जिसमें पहचान प्रदाता का विशिष्ट पहचानकर्ता होता है<ds:Signature>तत्व, जिसमें<saml:Assertion>तत्व एक अखंडता-संरक्षित डिजिटल चिन्ह (दिखाया नहीं गया) होता है<saml:Subject>तत्व, जो प्रमाणित प्रिंसिपल की पहचान करता है लेकिन इस स्थितियों में प्रिंसिपल की पहचान गोपनीयता के कारणों के लिए एक ओपेक अस्थायी पहचानकर्ता के पीछे छिपी हुई है<saml:Conditions>तत्व, जो उन शर्तों को देता है जिनके अंतर्गत अभिकथन को वैध माना जाना है<saml:AuthnStatement>तत्व, जो पहचान प्रदाता पर प्रमाणीकरण के कार्य का वर्णन करता है<saml:AttributeStatement>तत्व, जो प्रमाणित प्रिंसिपल से जुड़े एक बहु-मान एट्रिब्यूट का दावा करता है
शब्दों में, अभिकथन निम्नलिखित जानकारी को एन्कोड करता है:
अभिकथन ( b07b804c-7c29-ea16-7300-4f3d6f7928ac ) पहचान प्रदाता द्वारा 2004-12-05T09:22:05Z समय (https://idp.example.org/SAML2) पर जारी किया गया था विशेष रूप से सेवा प्रदाता (https://sp.example.com/SAML2) के लिए विषय (3f7b3dcf-1674-4ecd-92c8-1544f346baf8) के संबंध में जारी किया गया था।
प्रमाणीकरण स्टेटमेंट, विशेष रूप से, निम्नलिखित पर एसर्ट करता है:
<saml:Subject>तत्व में पहचाने गए प्रिंसिपल को एक संरक्षित चैनल पर भेजे गए पासवर्ड के माध्यम से "2004-12-05T09:22:00Z" समय पर प्रमाणित किया गया था।
इसी प्रकार एट्रिब्यूट स्टेटमेंट का दावा है कि:
<saml:Subject>तत्व में पहचाने गए प्रिंसिपल के पास इस संस्थान में 'स्टाफ' और 'मेम्बर' एट्रिब्यूट हैं।
एसएएमएल 2.0 प्रोटोकॉल
एसएएमएल क्रोड में निम्नलिखित प्रोटोकॉल निर्दिष्ट हैं:[1]
- अभिकथन प्रश्न और अनुरोध प्रोटोकॉल
- प्रमाणीकरण अनुरोध प्रोटोकॉल
- अर्टिफैक्ट रेजोल्यूशन प्रोटोकॉल
- नाम पहचानकर्ता प्रबंधन प्रोटोकॉल
- एकल लॉगआउट प्रोटोकॉल
- नाम पहचानकर्ता मानचित्रण प्रोटोकॉल
इन प्रोटोकॉलों में सबसे महत्वपूर्ण-प्रमाणीकरण अनुरोध प्रोटोकॉल-नीचे विस्तार से चर्चा की गई है।
प्रमाणीकरण अनुरोध प्रोटोकॉल
एसएएमएल 1.1 वेब ब्राउज़र में एसएसओ प्रोफाइल पहचान प्रदाता (आईडीपी) द्वारा प्रारंभ की जाती है, अर्थात, एक अवांछित <samlp:Response> तत्व पहचान प्रदाता से सेवा प्रदाता (ब्राउज़र के माध्यम से) में प्रेषित होता है। उपसर्ग samlp: एसएएमएल प्रोटोकॉल नेमस्पेस को दर्शाता है।
एसएएमएल 2.0 में, हालांकि, सेवा प्रदाता से संचार प्रारंभ होता है जो पहचान प्रदाता को एक स्पष्ट प्रमाणीकरण अनुरोध जारी करता है। परिणामी प्रमाणीकरण अनुरोध प्रोटोकॉल एसएएमएल 2.0 की एक महत्वपूर्ण नई एट्रिब्यूट है।
जब कोई प्रिंसिपल (या प्रिंसिपल की ओर से कार्य करने वाली एंटिटी) एक प्रमाणीकरण कथन युक्त दावा प्राप्त करना चाहता है, तो एक <samlp:AuthnRequest> तत्व पहचान प्रदाता को प्रेषित किया जाता है:
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="aaf23196-1773-2113-474a-fe114412ab72"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z"
AssertionConsumerServiceIndex="0"
AttributeConsumingServiceIndex="0">
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>
उपरोक्त <samlp:AuthnRequest> तत्व, जो स्पष्ट रूप से एसएएमएल_2.0 प्रमाणीकरण स्टेटमेंट एसरशन का अनुरोध करता है, स्पष्ट रूप से एक सेवा प्रदाता (https://sp.example.com/SAML2) द्वारा जारी किया गया था और बाद में पहचान प्रदाता (ब्राउज़र के माध्यम से) को प्रस्तुत किया गया था। पहचान प्रदाता प्रिंसिपल (यदि आवश्यक हो) को प्रमाणित करता है और एक प्रमाणीकरण प्रतिक्रिया जारी करता है, जो सेवा प्रदाता (पुनः ब्राउज़र के माध्यम से) को वापस प्रेषित की जाती है।
अर्टिफैक्ट रिज़ॉल्यूशन प्रोटोकॉल
एक एसएएमएल संदेश एक एंटिटी से दूसरी एंटिटी में मूल्य या संदर्भ द्वारा प्रेषित किया जाता है। एसएएमएल संदेश के संदर्भ को आर्टिफैक्ट कहा जाता है। किसी आर्टिफैक्ट का अभिग्राही प्रत्यक्ष आर्टिफैक्ट निर्गमक को <samlp:ArtifactResolve> अनुरोध प्रेषित करके संदर्भ का समाधान करता है, जो फिर आर्टिफैक्ट द्वारा संदर्भित वास्तविक संदेश के साथ प्रतिक्रिया करता है।
मान लीजिए, उदाहरण के लिए, एक पहचान प्रदाता निम्नलिखित <samlp:ArtifactResolve> अनुरोध प्रत्यक्ष सेवा प्रदाता से (बैक चैनल के माध्यम से) प्रेषित करता है:
<samlp:ArtifactResolve
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_cce4ee769ed970b501d680f697989d14"
Version="2.0"
IssueInstant="2004-12-05T09:21:58Z">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<!-- an ArtifactResolve message SHOULD be signed -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<samlp:Artifact>AAQAAMh48/1oXIM+sDo7Dh2qMp1HM4IF5DaRNmDj6RdUmllwn9jJHyEgIi8=</samlp:Artifact>
</samlp:ArtifactResolve>
प्रतिक्रिया में, सेवा प्रदाता संलग्न अर्टिफैक्ट द्वारा संदर्भित एसएएमएल तत्व वापस करता है। यह प्रोटोकॉल हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल (एचटीटीपी) अर्टिफैक्ट बाइंडिंग का आधार बनाता है।
एसएएमएल 2.0 बाइंडिंग्स
एसएएमएल 2.0 द्वारा समर्थित बाइंडिंग बाइंडिंग विनिर्देश (एसएएमएलबाइंड)[2] में उल्लिखित किया गया है:
- एसएएमएल एसओएपी बाइंडिंग एसओएपी 1.1 पर आधारित
- प्रतिवर्त एसओएपी (पीएओएस) बाइंडिंग
- हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन बाइंडिंग
- हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग
- हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग
- एसएएमएल यूआरआई बाइंडिंग
वेब ब्राउज़र एसएसओ के लिए, एचटीटीपी पुनर्निर्देशन बाइंडिंग और एचटीटीपी पीएएसटी बाइंडिंग का सामान्य रूप से उपयोग किया जाता है। उदाहरण के लिए, सेवा प्रदाता अनुरोध भेजने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन का उपयोग कर सकता है, जबकि पहचान प्रदाता प्रतिक्रिया प्रसारित करने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी का उपयोग करता है। इस उदाहरण से पता चलता है कि एक एंटिटी की बाइंडिंग के चयन उसके भागीदार की बाइंडिंग के चयन से स्वतंत्र है।
हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन बाइंडिंग
एसएएमएल प्रोटोकॉल संदेशों को प्रत्यक्ष हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल जीईटी अनुरोध के यूआरएल जांच स्ट्रिंग में ले जाया जा सकता है। व्यवहार में यूआरएल की लंबाई सीमित होने के कारण, हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन बाइंडिंग छोटे संदेशों के लिए उपयुक्त है, जैसे कि <samlp:AuthnRequest> संदेश है। लंबे संदेश (उदाहरण के लिए हस्ताक्षरित या एन्क्रिप्टेड एसएएमएल अभिकथन वाले, जैसे एसएएमएल प्रतिक्रियाएं) सामान्य रूप से अन्य बाइंडिंग जैसे एचटीटीपी पीएएसटी बाइंडिंग के माध्यम से प्रेषित होते हैं।
एचटीटीपी पुनर्निर्देशन के माध्यम से प्रेषित एसएएमएल अनुरोधों या प्रतिक्रियाओं में क्रमशः SAMLRequest या SAMLResponse जांच स्ट्रिंग पैरामीटर होता है। प्रेषित किए जाने से पहले, संदेश को उस क्रम में (हेडर और चेकसम के बिना) बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड डिफ्लेट किया जाता है। प्राप्त होने पर, मूल संदेश को पुनर्प्राप्त करने के लिए प्रक्रिया सुरक्षित कर दी जाती है।
उदाहरण के लिए, उपरोक्त <samlp:AuthnRequest> संदेश को एन्कोड करने से परिणाम मिलते हैं:
https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2 Mabbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdY ib%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8s BHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1F dgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RkydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NK UqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C
अतिरिक्त सुरक्षा के लिए उपरोक्त संदेश (पठनीयता के लिए स्वरूपित) पर हस्ताक्षर किया जा सकता है। व्यवहार में <samlp:AuthnRequest>में निहित सभी डेटा जैसे कि Issuer जिसमें एसपी आईडी है, और NameIDPolicy, आईडीपी और एसपी के बीच (मैन्युअल सूचना विनिमय के माध्यम से या एसएएमएल 2.0 मेटाडेटा के माध्यम से) पहले ही सहमति हो गई है। उस स्थिति में अनुरोध पर चिन्ह करना सुरक्षा बाधा नहीं है। जब <samlp:AuthnRequest> आईडीपी द्वारा पहले से ज्ञात जानकारी नहीं है, जैसे कि अभिकथन उपभोक्ता सेवा यूआरएल, सुरक्षा उद्देश्यों के लिए अनुरोध पर चिन्ह करने की अनुशंसा की जाती है।
हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग
निम्नलिखित उदाहरण में, सेवा प्रदाता और पहचान प्रदाता दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग का उपयोग करते हैं। प्रारंभ में, सेवा प्रदाता एक एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ उपयोगकर्ता कारक के अनुरोध की प्रतिक्रिया देता है:
<form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...> <input type="hidden" name="SAMLRequest" value="''request''" /> ... other input parameter.... </form>
SAMLRequest पैरामीटर का मान <samlp:AuthnRequest> तत्व का बेस 64-एन्कोडिंग है, जो ब्राउज़र के माध्यम से पहचान प्रदाता को प्रेषित होता है। पहचान प्रदाता की एसएसओ सेवा अनुरोध को मान्य करती है और एक अन्य एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
<form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...> <input type="hidden" name="SAMLResponse" value="''response''" /> ... </form>
SAMLRequest पैरामीटर का मान <samlp:AuthnRequest> तत्व का बेस 64 एन्कोडिंग है, जो ब्राउज़र के माध्यम से सेवा प्रदाता को भी प्रेषित होता है।
प्रपत्र के प्रस्तुतीकरण को स्वचालित करने के लिए, जावास्क्रिप्ट की निम्न पंक्ति एक्सएचटीएमएल पेज पर कहीं भी दर्शाया जा सकता है:
window.onload = function () { document.forms[0].submit(); }
यह निश्चित रूप से मानता है कि पेज में पहले प्ररूप तत्व में उपरोक्त SAMLResponse सम्मिलित है, जिसमे form तत्व (forms[0]) सम्मिलित है
हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग
संदर्भ द्वारा एसएएमएल संदेश को हल करने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग रिज़ॉल्यूशन प्रोटोकॉल और एसएएमएल एसओएपी बाइंडिंग (हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पर) का उपयोग करता है। निम्नलिखित विशिष्ट उदाहरण पर विचार करें। मान लीजिए कि कोई सेवा प्रदाता किसी पहचान प्रदाता को <samlp:AuthnRequest> संदेश प्रेषित करना चाहता है। प्रारंभ में, सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पुनर्निर्देशन के माध्यम से पहचान प्रदाता को एक अर्टिफैक्ट प्रेषित करता है:
https://idp.example.org/SAML2/SSO/Artifact?SAMLart=artifact
इसके बाद पहचान प्रदाता एक <samlp:ArtifactResolve> अनुरोध (जैसे कि पहले दिखाया गया ArtifactResolveRequest ) सीधे सेवा प्रदाता को बैक चैनल के माध्यम से प्रेषित करता है। अंत में, सेवा प्रदाता एक <samlp:ArtifactResponse> तत्व प्रतिवर्त करता है, जिसमें संदर्भित <samlp:AuthnRequest> संदेश है:
<samlp:ArtifactResponse
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="_d84a49e5958803dedcff4c984c2b0d95"
InResponseTo="_cce4ee769ed970b501d680f697989d14"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z">
<!-- an ArtifactResponse message SHOULD be signed -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_306f8ec5b618f361c70b6ffb1480eade"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z"
Destination="https://idp.example.org/SAML2/SSO/Artifact"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
AssertionConsumerServiceURL="https://sp.example.com/SAML2/SSO/Artifact">
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="false"
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"/>
</samlp:AuthnRequest>
</samlp:ArtifactResponse>
निःसंदेह संचार दूसरी दिशा में भी जा सकता है, अर्थात, पहचान प्रदाता एक आर्टिफैक्ट जारी कर सकता है, और वास्तव में यह अधिक सामान्य है। उदाहरण के लिए, इस विषय में बाद में "द्विक आर्टिफैक्ट" प्रोफ़ाइल उदाहरण देखें।
अर्टिफैक्ट प्रारूप
सामान्य रूप से, एसएएमएल 2.0 अर्टिफैक्ट को (एसएएमएलबाइंड[2]) इस तरह परिभाषित किया जाता है:
SAML_artifact := B64 (TypeCode EndpointIndex RemainingArtifact) TypeCode := Byte1Byte2 EndpointIndex := Byte1Byte2
इस प्रकार एक एसएएमएल 2.0 अर्टिफैक्ट में तीन घटक होते हैं: एक दो-बाइट TypeCode, एक दो-बाइट EndpointIndex, और बाइट्स के यादृच्छिक क्रम जिसे RemainingArtifactको कहा जाता है जानकारी के इन तीन भागों को जोड़ा गया है और पूर्ण अर्टिफैक्ट प्राप्त करने के लिए बेस64-एन्कोडेड हैं।
TypeCode विशिष्ट रूप से अर्टिफैक्ट प्रारूप की पहचान करता है। एसएएमएल 2.0 0x0004 प्रकार के केवल एक ऐसे अर्टिफैक्ट EndpointIndex को पूर्वनिर्धारित करता है। अर्टिफैक्ट निर्गमक द्वारा प्रबंधित एक विशेष अर्टिफैक्ट समापन बिंदु का एक संदर्भ है जो पहले उल्लेखित आईडीपी या एसपी हो सकता है। RemainingArtifact जो कि प्रकार की परिभाषा से निर्धारित होता है, कि वह आर्टिफैक्ट का प्रमुख अंश है।
टाइप 0x0004 आर्टिफैक्ट का प्रारूप आगे इस प्रकार परिभाषित किया गया है:
TypeCode := 0x0004 RemainingArtifact := SourceId MessageHandle SourceId := 20-byte_sequence MessageHandle := 20-byte_sequence
इस प्रकार एक टाइप 0x0004 अर्टिफैक्ट आकार 44 बाइट्स (एन्कोडेड) का है। SourceId ई> बाइट्स का एक यादृच्छिक क्रम है, हालांकि व्यवहार में, SourceId निर्गमक के एंटिटीआईडी का एसएचए-1 हैश है। MessageHandle बाइट्स का एक यादृच्छिक अनुक्रम है जो एक एसएएमएल संदेश का संदर्भ देता है कि अर्टिफैक्ट निर्गमक मांग पर उत्पादन करने के लिए तैयार है।
उदाहरण के लिए, इस हेक्स-एन्कोडेड टाइप 0x0004 अर्टिफैक्ट पर विचार करें:
00040000c878f3fd685c833eb03a3b0e1daa329d47338205e436913660e3e917549a59709fd8c91f2120222f
यदि आप ध्यान से देखें, तो आप आर्टिफैक्ट के सामने TypeCode (0x0004) और EndpointIndex (0x0000) देख सकते हैं। अगले 20 बाइट निर्गमक के एंटिटीआईडी (https://idp.example.org/SAML2) के एसएचए-1 हैश के बाद 20 यादृच्छिक बाइट हैं। इन 44 बाइट्स का बेस64-एन्कोडिंग वही है जो आप ऊपर ArtifactResolveRequest उदाहरण में देखते हैं।
एसएएमएल 2.0 प्रोफाइल
एसएएमएल 2.0 में, एसएएमएल 1.1 की तरह, प्राथमिक उपयोग की स्थिति अभी भी वेब ब्राउज़र एसएसओ है, लेकिन एसएएमएल 2.0 का विस्तार एसएएमएल के पूर्व संस्करणों की तुलना में व्यापक है, जैसा कि प्रोफाइल की निम्नलिखित विस्तृत सूची में सुझाया गया है:
- एसएसओ प्रोफाइल
- वेब ब्राउज़र एसएसओ प्रोफाइल
- उन्नत ग्राहक या प्रॉक्सी (ईसीपी) प्रोफ़ाइल
- पहचान प्रदाता खोज प्रोफ़ाइल
- एकल लॉगआउट प्रोफाइल
- नाम पहचानकर्ता प्रबंधन प्रोफ़ाइल
- अर्टिफैक्ट रिज़ॉल्यूशन प्रोफ़ाइल
- अभिकथन जांच/अनुरोध प्रोफ़ाइल
- नाम पहचानकर्ता मानचित्रण प्रोफ़ाइल
- एसएएमएल एट्रिब्यूट प्रोफाइल
- मूल एट्रिब्यूट प्रोफ़ाइल
- एक्स.500/एलडीएपी एट्रिब्यूट प्रोफ़ाइल
- यूयूआईडी एट्रिब्यूट प्रोफ़ाइल
- डीसीई पीएसी एट्रिब्यूट प्रोफ़ाइल
- एक्सएसीएमएल एट्रिब्यूट प्रोफ़ाइल
हालाँकि समर्थित प्रोफ़ाइलों की संख्या अत्यधिक बड़ी है, प्रोफ़ाइल विनिर्देश (एसएएमएलप्रॉफ)[3] सरलीकृत है क्योंकि प्रत्येक प्रोफ़ाइल के बाइंडिंग स्वरूपों को एक अलग बाइंडिंग विनिर्देश (एसएएमएलबाइंड)[2] मे सम्मिलित किया जाता है।
वेब ब्राउजर एसएसओ प्रोफाइल
एसएएमएल 2.0 एक वेब ब्राउज़र एसएसओ प्रोफ़ाइल निर्दिष्ट करता है जिसमें एक पहचान प्रदाता (आईडीपी), एक सेवा प्रदाता (एसपी) और एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता कारक संचालन वाला प्रमुख सम्मिलित होता है। सेवा प्रदाता के पास चयन के लिए चार बाइंडिंग हैं, जबकि पहचान प्रदाता के पास तीन हैं, जो बारह संभावित परिनियोजन परिदृश्यों की ओर ले जाता है। हम नीचे उन तीन परिनियोजन परिदृश्यों की रूपरेखा प्रस्तुत करते हैं।
एसपी पुनर्निर्देशन अनुरोध; आईडीपी पीएएसटी प्रतिक्रिया
यह सबसे सामान्य परिदृश्यों में से एक है। सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-पुनर्निर्देशन बाइंडिंग का उपयोग करके आईडीपी एसएसओ सेवा को एक एसएएमएल अनुरोध प्रेषित करता है। पहचान प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-पीएएसटी बाइंडिंग का उपयोग करके एसपी अभिकथन उपभोक्ता सेवा को एसएएमएल प्रतिक्रिया वापस करता है।
संदेश संचार सेवा प्रदाता पर एक सुरक्षित संसाधन के अनुरोध के साथ प्रारंभ होता है।
1. एसपी से लक्ष्य संसाधन का अनुरोध करें
प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता कारक के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:
https://sp.example.com/myresource
सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-7 को हटा दें।
सेवा प्रदाता उपयोग किए जाने वाले पहचान प्रदाता की खोज के लिए किसी भी प्रकार के तंत्र का उपयोग कर सकता है, उदाहरण के लिए, उपयोगकर्ता से पूछना, पूर्व-कॉन्फ़िगर आईडीपी का उपयोग करना, आदि सम्मिलित है।
2. आईडीपी एसएसओ सेवा पर पुनर्निर्देशन करें
सेवा प्रदाता एक उपयुक्त SAMLRequest (और RelayState, if any) उत्पन्न करता है, फिर एक मानक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल 302 पुनर्निर्देशन का उपयोग करके ब्राउज़र को आईडीपी एसएसओ सेवा पर पुनर्निर्देशन करता है।
302 Redirect
Location: https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token
RelayState टोकन सेवा प्रदाता पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है। SAMLRequest पैरामीटर का मान एक <samlp:AuthnRequest> तत्व का डिफ्लेटेड, बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड मान है:
<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>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>
एसपी चिन्ह कुंजी का उपयोग करके SAMLRequest पर चिन्ह किए जा सकते हैं। सामान्य रूप से, हालांकि, यह आवश्यक नहीं है।
3. आईडीपी पर एसएसओ सेवा के लिए अनुरोध करें
उपयोगकर्ता कारक पहचान प्रदाता पर एसएसओ सेवा के लिए एक जीईटी अनुरोध जारी करता है:
GET /SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token HTTP/1.1 Host: idp.example.org
जहां SAMLRequest और RelayState पैरामीटर के मान पुन: निर्देशित में दिए गए मान के समान हैं। पहचान प्रदाता की एसएसओ सेवा <samlp:AuthnRequest> तत्व को संसाधित करती है (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और अनुरोध को उसी क्रम में बढ़ाकर) और एक सुरक्षा जांच करती है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता किसी भी तंत्र (विवरण हटाे गए) के साथ उपयोगकर्ता की पहचान करता है।
4. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
<form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...> <input type="hidden" name="SAMLResponse" value="response" /> <input type="hidden" name="RelayState" value="token" /> ... <input type="submit" value="Submit" /> </form>
RelayState पैरामीटर का मान चरण 3 से संरक्षित किया गया है। SAMLResponse पैरामीटर का मान निम्नलिखित <samlp:Response> तत्व का बेस64 एन्कोडिंग है:
<samlp:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_2"
InResponseTo="identifier_1"
Version="2.0"
IssueInstant="2004-12-05T09:22:05Z"
Destination="https://sp.example.com/SAML2/SSO/POST">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_3"
Version="2.0"
IssueInstant="2004-12-05T09:22:05Z">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<!-- a POSTed assertion MUST be signed -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
3f7b3dcf-1674-4ecd-92c8-1544f346baf8
</saml:NameID>
<saml:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData
InResponseTo="identifier_1"
Recipient="https://sp.example.com/SAML2/SSO/POST"
NotOnOrAfter="2004-12-05T09:27:05Z"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions
NotBefore="2004-12-05T09:17:05Z"
NotOnOrAfter="2004-12-05T09:27:05Z">
<saml:AudienceRestriction>
<saml:Audience>https://sp.example.com/SAML2</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement
AuthnInstant="2004-12-05T09:22:00Z"
SessionIndex="identifier_3">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
5. एसपी में दावा उपभोक्ता सेवा का अनुरोध करें
उपयोगकर्ता कारक सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा के लिए एक पीएएसटी अनुरोध जारी करता है:
POST /SAML2/SSO/POST HTTP/1.1 Host: sp.example.com Content-Type: application/x-www-form-urlencoded Content-Length: nnn SAMLResponse=response&RelayState=token
जहां SAMLResponse और RelayState पैरामीटर के मान चरण 4 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं।
6. लक्ष्य संसाधन पर पुनर्निर्देशित करें
अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता कारक को लक्ष्य संसाधन पर पुनर्निर्देशित करती है।
7. लक्ष्य संसाधन के लिए एसपी से पुनः अनुरोध करें
उपयोगकर्ता कारक सेवा प्रदाता (पुनः) पर लक्ष्य संसाधन का अनुरोध करता है:
https://sp.example.com/myresource
8. अनुरोधित संसाधन के साथ प्रतिक्रिया दें
चूंकि एक सुरक्षा संदर्भ सम्मिलित है, सेवा प्रदाता संसाधन को उपयोगकर्ता कारक को वापस करता है।
एसपी पीएएसटी अनुरोध; आईडीपी पीएएसटी प्रतिक्रिया
यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल एसएएमएलप्रॉफ[3] जहाँ सेवा प्रदाता (एसपी) और पहचान प्रदाता (आईडीपी) दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग का उपयोग करते हैं।
संदेश संदेश एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ प्रारंभ होता है।
1. एसपी से लक्ष्य संसाधन का अनुरोध करें
प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता कारक के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:
https://sp.example.com/myresource
सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-7 को हटा दें।
2. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें
सेवा प्रदाता एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करता है:
<form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...> <input type="hidden" name="SAMLRequest" value="request" /> <input type="hidden" name="RelayState" value="token" /> ... <input type="submit" value="Submit" /> </form>
RelayState टोकन सेवा प्रदाता पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है। SAMLRequest पैरामीटर का मान निम्नलिखित <samlp:AuthnRequest> तत्व का बेस 64 एन्कोडिंग है:
<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>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>
<samlp:AuthnRequest> तत्व को एक्सएचटीएमएल प्ररूप में डालने से पहले, इसे पहले बेस64-एन्कोड किया जाता है।
3. आईडीपी पर एसएसओ सेवा के लिए अनुरोध करें
उपयोगकर्ता कारक पहचान प्रदाता पर एसएसओ सेवा के लिए एक पीएएसटी अनुरोध जारी करता है:
POST /SAML2/SSO/POST HTTP/1.1 Host: idp.example.org Content-Type: application/x-www-form-urlencoded Content-Length: nnn SAMLRequest=request&RelayState=token
जहां SAMLRequest और RelayState पैरामीटर के मान चरण 2 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं। एसएसओ सेवा <samlp:AuthnRequest> तत्व को संसाधित करती है (URL-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और निष्पादित करती है एक सुरक्षा जांच. यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता (विवरण हटा दिया गया है) की पहचान करता है।
4. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
<form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...> <input type="hidden" name="SAMLResponse" value="response" /> <input type="hidden" name="RelayState" value="token" /> ... <input type="submit" value="Submit" /> </form>
RelayState का मान चरण 3 से संरक्षित किया गया है। SAMLResponse पैरामीटर का मान निम्नलिखित <samlp:Response> तत्व का बेस64 एन्कोडिंग है:
<samlp:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_2"
InResponseTo="identifier_1"
Version="2.0"
IssueInstant="2004-12-05T09:22:05Z"
Destination="https://sp.example.com/SAML2/SSO/POST">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_3"
Version="2.0"
IssueInstant="2004-12-05T09:22:05Z">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<!-- a POSTed assertion MUST be signed -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
3f7b3dcf-1674-4ecd-92c8-1544f346baf8
</saml:NameID>
<saml:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData
InResponseTo="identifier_1"
Recipient="https://sp.example.com/SAML2/SSO/POST"
NotOnOrAfter="2004-12-05T09:27:05Z"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions
NotBefore="2004-12-05T09:17:05Z"
NotOnOrAfter="2004-12-05T09:27:05Z">
<saml:AudienceRestriction>
<saml:Audience>https://sp.example.com/SAML2</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement
AuthnInstant="2004-12-05T09:22:00Z"
SessionIndex="identifier_3">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
5. एसपी में दावा उपभोक्ता सेवा का अनुरोध करें EDIT
उपयोगकर्ता कारक सेवा प्रदाता पर दावा उपभोक्ता सेवा के लिए एक पीएएसटी अनुरोध जारी करता है:
POST /SAML2/SSO/POST HTTP/1.1 Host: sp.example.com Content-Type: application/x-www-form-urlencoded Content-Length: nnn SAMLResponse=response&RelayState=token
जहां SAMLResponse और RelayState पैरामीटर के मान चरण 4 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं।
6. लक्ष्य संसाधन पर पुनर्निर्देशित करें
अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता कारक को लक्ष्य संसाधन पर पुनर्निर्देशित करती है।
7. लक्ष्य संसाधन के लिए एसपी से पुनः अनुरोध करें
उपयोगकर्ता कारक सेवा प्रदाता (पुनः) पर लक्ष्य संसाधन का अनुरोध करता है:
https://sp.example.com/myresource
8. अनुरोधित संसाधन के साथ प्रतिक्रिया दें
चूंकि एक सुरक्षा संदर्भ सम्मिलित है, सेवा प्रदाता संसाधन को उपयोगकर्ता कारक को वापस करता है।
एसपी पुनर्निर्देशन अर्टिफैक्ट; आईडीपी अनुप्रेषित अर्टिफैक्ट
यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल एसएएमएलप्रॉफ[3] जहां सेवा प्रदाता (एसपी) और पहचान प्रदाता (आईडीपी) दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का उपयोग करते हैं। दोनों आर्टिफैक्ट को हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल जीईटी के माध्यम से उनके संबंधित समापन बिंदुओं तक पहुँचाया जाता है।
एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ संदेश संचार प्रारंभ होता है:
1. एसपी से लक्ष्य संसाधन का अनुरोध करें
प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता कारक के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:
https://sp.example.com/myresource
सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से सम्मिलित है, तो चरण 2-11 को हटा दें।
2. आईडीपी पर एकल साइन-ऑन (एसएसओ) सेवा पर पुनर्निर्देशन करें
सेवा प्रदाता पहचान प्रदाता पर उपयोगकर्ता कारक को एकल साइन-ऑन (एसएसओ) सेवा पर पुनर्निर्देशित करता है। RelayState पैरामीटर और SAMLart पुनर्निर्देशन यूआरएल में पैरामीटर जोड़े जाते हैं।
3. आईडीपी पर एसएसओ सेवा के लिए अनुरोध करें
उपयोगकर्ता कारक पहचान प्रदाता पर एसएसओ सेवा का अनुरोध करता है:
https://idp.example.org/SAML2/SSO/Artifact?SAMLart=artifact_1&RelayState=token
जहां token सेवा प्रदाता और पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है और artifact_1 एक एसएएमएल अर्टिफैक्ट है, दोनों चरण 2 पर जारी किए गए हैं।
4. एसपी में अर्टिफैक्ट समाधान सेवा का अनुरोध करें
एसएसओ सेवा सेवा प्रदाता की आर्टिफैक्ट रिज़ॉल्यूशन सेवा को एसएएमएल एसओएपी संदेश से जुड़े <samlp:ArtifactResolve> तत्व प्रेषित करके आर्टिफैक्ट को असंदर्भित करती है:
<samlp:ArtifactResolve
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:58Z"
Destination="https://sp.example.com/SAML2/ArtifactResolution">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<!-- an ArtifactResolve message SHOULD be signed -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<samlp:Artifact>''artifact_1''</samlp:Artifact>
</samlp:ArtifactResolve>
जहां <samlp:Artifact> तत्व का मान चरण 3 में प्रेषित एसएएमएल अर्टिफैक्ट है।
5. एसएएमएल प्रमाणीकरण अनुरोध के साथ प्रतिक्रिया दें
सेवा प्रदाता पर आर्टिफैक्ट रिज़ॉल्यूशन सेवा पहचान प्रदाता पर एसएसओ सेवा को एक एसएएमएल एसओएपी संदेश से जुड़ा एक <samlp:ArtifactResponse> तत्व (जिसमें एक <samlp:AuthnRequest> तत्व होता है) प्रतिवर्त होता है:
<samlp:ArtifactResponse
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="identifier_2"
InResponseTo="identifier_1"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z">
<!-- an ArtifactResponse message SHOULD be signed -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_3"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z"
Destination="https://idp.example.org/SAML2/SSO/Artifact"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
AssertionConsumerServiceURL="https://sp.example.com/SAML2/SSO/Artifact">
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="false"
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"/>
</samlp:AuthnRequest>
</samlp:ArtifactResponse>
एसएसओ सेवा <samlp:AuthnRequest> तत्व को संसाधित करती है और सुरक्षा जांच करती है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता की पहचान करता है (विवरण छोड़ दिया गया है)।
6. अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करें
पहचान प्रदाता पर एसएसओ सेवा उपयोगकर्ता कारक को सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करती है। पूर्व RelayState पैरामीटर और एक नए SAMLart पुनर्निर्देशन यूआरएल में पैरामीटर जोड़े जाते हैं।
7. एसपी में अभिकथन उपभोक्ता सेवा का अनुरोध करें
उपयोगकर्ता कारक सेवा प्रदाता पर दावा उपभोक्ता सेवा का अनुरोध करता है:
https://sp.example.com/SAML2/SSO/Artifact?SAMLart=artifact_2&RelayState=token
जहां token चरण 3 से टोकन मान है और artifact_2 चरण 6 में जारी किया गया एसएएमएल अर्टिफैक्ट है।
8. आईडीपी पर अर्टिफैक्ट समाधान सेवा का अनुरोध करें
अभिकथन उपभोक्ता सेवा पहचान प्रदाता पर आर्टिफैक्ट रिज़ॉल्यूशन सेवा के लिए एसएएमएल एसओएपी संदेश के लिए बाध्य <samlp:ArtifactResolve>तत्व को प्रेषित करके आर्टिफैक्ट को असंदर्भित करती है:
<samlp:ArtifactResolve
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_4"
Version="2.0"
IssueInstant="2004-12-05T09:22:04Z"
Destination="https://idp.example.org/SAML2/ArtifactResolution">
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
<!-- an ArtifactResolve message SHOULD be signed -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<samlp:Artifact>''artifact_2''</samlp:Artifact>
</samlp:ArtifactResolve>
जहां <samlp:Artifact> तत्व का मान चरण 7 पर प्रेषित एसएएमएल अर्टिफैक्ट है।
9. एसएएमएल अभिकथन के साथ प्रतिक्रिया दें
पहचान प्रदाता पर आर्टिफैक्ट रिज़ॉल्यूशन सेवा एक <samlp:ArtifactResponse> तत्व (एक <samlp:Response> तत्व युक्त) को एसएएमएल एसओएपी संदेश से जोड़कर सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा को वापस करती है:
<samlp:ArtifactResponse
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="identifier_5"
InResponseTo="identifier_4"
Version="2.0"
IssueInstant="2004-12-05T09:22:05Z">
<!-- an ArtifactResponse message SHOULD be signed -->
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<samlp:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_6"
InResponseTo="identifier_3"
Version="2.0"
IssueInstant="2004-12-05T09:22:05Z"
Destination="https://sp.example.com/SAML2/SSO/Artifact">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_7"
Version="2.0"
IssueInstant="2004-12-05T09:22:05Z">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<!-- a Subject element is required -->
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
user@mail.example.org
</saml:NameID>
<saml:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData
InResponseTo="identifier_3"
Recipient="https://sp.example.com/SAML2/SSO/Artifact"
NotOnOrAfter="2004-12-05T09:27:05Z"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions
NotBefore="2004-12-05T09:17:05Z"
NotOnOrAfter="2004-12-05T09:27:05Z">
<saml:AudienceRestriction>
<saml:Audience>https://sp.example.com/SAML2</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement
AuthnInstant="2004-12-05T09:22:00Z"
SessionIndex="identifier_7">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
</samlp:ArtifactResponse>
10. लक्ष्य संसाधन पर पुनर्निर्देशित करें
अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता कारक को लक्ष्य संसाधन पर पुनर्निर्देशित करती है।
11. लक्ष्य संसाधन के लिए एसपी से पुनः अनुरोध करें
उपयोगकर्ता कारक सेवा प्रदाता (पुनः) पर लक्ष्य संसाधन का अनुरोध करता है:
https://sp.example.com/myresource
12. अनुरोधित संसाधन के साथ प्रतिक्रिया दें
चूंकि एक सुरक्षा संदर्भ सम्मिलित है, सेवा प्रदाता संसाधन को उपयोगकर्ता कारक को वापस करता है।
पहचान प्रदाता खोज प्रोफ़ाइल
एसएएमएल 2.0 पहचान प्रदाता (आइडेंटिटी प्रोवाइडर) खोज प्रोफ़ाइल में नीचे दी गई अवधारणाएं सम्मिलित हैं:
- 'सामान्य डोमेन'
- 'सामान्य डोमेन कुकी'
- 'सामान्य डोमेन कुकी लेखन सेवा'
- 'सामान्य डोमेन कुकी पठन सेवा'
सामान्य डोमेन के एक काल्पनिक उदाहरण के रूप में, मान लें कि उदाहरण यूके (example.co.uk) और उदाहरण डॉयचलैंड (example.de) वर्चुअल संगठन उदाहरण वैश्विक गठबंधन (example.com) से संबंधित हैं। इस उदाहरण में, डोमेन example.com सामान्य डोमेन है। उदाहरण यूके और उदाहरण डॉयचलैंड दोनों की इस डोमेन (uk.example.com और de.example.com, क्रमशः) में उपस्थिति है।
सामान्य डोमेन कुकी सामान्य डोमेन तक सीमित एक सुरक्षित ब्राउज़र कुकी है। प्रत्येक ब्राउज़र उपयोगकर्ता के लिए, यह कुकी हाल ही में देखे गए आईडीपी की इतिहास सूची संग्रहीत करती है। कुकी का नाम और मान आईडीपी खोज प्रोफ़ाइल (एसएएमएलप्रॉफ)[3] में निर्दिष्ट हैं।
प्रमाणीकरण के एक सफल कार्य के बाद, आईडीपी सामान्य डोमेन कुकी लेखन सेवा का अनुरोध करता है। यह सेवा आईडीपी के विशिष्ट पहचानकर्ता को सामान्य डोमेन कुकी में जोड़ती है। एसपी, जब इसे एक संरक्षित संसाधन के लिए एक अप्रमाणित अनुरोध प्राप्त होता है, तो सामान्य डोमेन कुकी पठन सेवा से अनुरोध करता है कि वह ब्राउजर उपयोगकर्ता के सबसे हाल ही में उपयोग किए गए आईडीपी की खोज करे।
अभिकथन जांच/अनुरोध प्रोफ़ाइल
अभिकथन जांच/अनुरोध प्रोफ़ाइल एक सामान्य प्रोफ़ाइल है जो निम्नलिखित एसएएमएल 2.0 तत्वों का उपयोग करके कई प्रकार के तथाकथित प्रश्नों को समायोजित करती है:
<samlp:AssertionIDRequest>तत्व, जिसका उपयोग उसके विशिष्ट पहचानकर्ता (ID) के लिए किया जाता है।<samlp:SubjectQuery>तत्व, जो एक सार विस्तार बिंदु है जो नए विषय-आधारित एसएएमएल प्रश्नों को परिभाषित करने की अनुमति देता है।<samlp:AuthnQuery>तत्व, जिसका उपयोग प्रमाणीकरण प्राधिकरण से किसी दिए गए विषय के बारे में सम्मिलित प्रमाणीकरण अभिकथन का अनुरोध करने के लिए किया जाता है।<samlp:AttributeQuery>तत्व, जिसका उपयोग किसी एट्रिब्यूट प्राधिकरण से किसी दिए गए विषय के बारे में एट्रिब्यूट का अनुरोध करने के लिए किया जाता है।<samlp:AuthzDecisionQuery>तत्व, जिसका उपयोग किसी विश्वसनीय तृतीय पक्ष से प्राधिकरण निर्णय का अनुरोध करने के लिए किया जाता है।
एसएएमएल एसओएपी बाइंडिंग का उपयोग प्रायः प्रश्नों के संयोजन में किया जाता है।
एसएएमएल एट्रिब्यूट जांच
एट्रिब्यूट जांच शायद एसएएमएल जांच का सबसे महत्वपूर्ण प्रकार है। प्रायः एक अनुरोधकर्ता, प्रिंसिपल की ओर से कार्य करता है, एट्रिब्यूट के लिए एक पहचान प्रदाता से प्रश्न करता है। नीचे हम एक प्रिंसिपल द्वारा प्रत्यक्ष जारी किए गए प्रश्न का उदाहरण देते हैं:
<samlp:AttributeQuery
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="aaf23196-1773-2113-474a-fe114412ab72"
Version="2.0"
IssueInstant="2006-07-17T20:31:40Z">
<saml:Issuer
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">
CN=trscavo@uiuc.edu,OU=User,O=NCSA-TEST,C=US
</saml:Issuer>
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">
CN=trscavo@uiuc.edu,OU=User,O=NCSA-TEST,C=US
</saml:NameID>
</saml:Subject>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid:2.5.4.42"
FriendlyName="givenName">
</saml:Attribute>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid:1.3.6.1.4.1.1466.115.121.1.26"
FriendlyName="mail">
</saml:Attribute>
</samlp:AttributeQuery>
ध्यान दें कि इस स्थिति में Issuer ही Subject है । इसे कभी-कभी एट्रिब्यूट स्व-जांच कहा जाता है। एक पहचान प्रदाता निम्नलिखित अभिकथन को <samlp:Response> तत्व में व्रेप (दिखाया नहीं गया) किया जा सकता है:
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
ID="_33776a319493ad607b7ab3e689482e45"
Version="2.0"
IssueInstant="2006-07-17T20:31:41Z">
<saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
<ds:Signature>...</ds:Signature>
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">
CN=trscavo@uiuc.edu,OU=User,O=NCSA-TEST,C=US
</saml:NameID>
<saml:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
<saml:SubjectConfirmationData>
<ds:KeyInfo>
<ds:X509Data>
<!-- principal's X.509 cert -->
<ds:X509Certificate>
MIICiDCCAXACCQDE+9eiWrm62jANBgkqhkiG9w0BAQQFADBFMQswCQYDVQQGEwJV
UzESMBAGA1UEChMJTkNTQS1URVNUMQ0wCwYDVQQLEwRVc2VyMRMwEQYDVQQDEwpT
UC1TZXJ2aWNlMB4XDTA2MDcxNzIwMjE0MVoXDTA2MDcxODIwMjE0MVowSzELMAkG
A1UEBhMCVVMxEjAQBgNVBAoTCU5DU0EtVEVTVDENMAsGA1UECxMEVXNlcjEZMBcG
A1UEAwwQdHJzY2F2b0B1aXVjLmVkdTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
gYEAv9QMe4lRl3XbWPcflbCjGK9gty6zBJmp+tsaJINM0VaBaZ3t+tSXknelYife
nCc2O3yaX76aq53QMXy+5wKQYe8Rzdw28Nv3a73wfjXJXoUhGkvERcscs9EfIWcC
g2bHOg8uSh+Fbv3lHih4lBJ5MCS2buJfsR7dlr/xsadU2RcCAwEAATANBgkqhkiG
9w0BAQQFAAOCAQEAdyIcMTob7TVkelfJ7+I1j0LO24UlKvbLzd2OPvcFTCv6fVHx
Ejk0QxaZXJhreZ6+rIdiMXrEzlRdJEsNMxtDW8++sVp6avoB5EX1y3ez+CEAIL4g
cjvKZUR4dMryWshWIBHKFFul+r7urUgvWI12KbMeE9KP+kiiiiTskLcKgFzngw1J
selmHhTcTCrcDocn5yO2+d3dog52vSOtVFDBsBuvDixO2hv679JR6Hlqjtk4GExp
E9iVI0wdPE038uQIJJTXlhsMMLvUGVh/c0ReJBn92Vj4dI/yy6PtY/8ncYLYNkjg
oVN0J/ymOktn9lTlFyTiuY4OuJsZRO1+zWLy9g==
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</saml:SubjectConfirmationData>
</saml:SubjectConfirmation>
</saml:Subject>
<!-- assertion lifetime constrained by principal's X.509 cert -->
<saml:Conditions
NotBefore="2006-07-17T20:31:41Z"
NotOnOrAfter="2006-07-18T20:21:41Z">
</saml:Conditions>
<saml:AuthnStatement
AuthnInstant="2006-07-17T20:31:41Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute
xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
x500:Encoding="LDAP"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid:2.5.4.42"
FriendlyName="givenName">
<saml:AttributeValue
xsi:type="xs:string">Tom</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute
xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
x500:Encoding="LDAP"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid:1.3.6.1.4.1.1466.115.121.1.26"
FriendlyName="mail">
<saml:AttributeValue
xsi:type="xs:string">trscavo@gmail.com</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
पहले दिखाए गए BearerAssertion के विपरीत, इस अभिकथन का जीवनकाल X.509 प्रमाणपत्र के जीवनकाल के अनुरूप है, जिसका उपयोग प्रिंसिपल पहचान प्रदाता को प्रमाणित करने के लिए करता था। इसके अतिरक्त, चूंकि अभिकथन पर हस्ताक्षर किए गए हैं, उपयोगकर्ता इस अभिकथन को एक विश्वसनीय पक्ष को भेज सकता है, और जब तक उपयोगकर्ता संबंधित निजी कुंजी (इसलिए नाम "धारक-कुंजी") का अधिकार प्रमाणित कर सकता है, तब तक विश्वसनीय पक्ष ऐसा कर सकती है आश्वस्त रहें कि दावा प्रामाणिक है।
एसएएमएल 2.0 मेटाडेटा
वस्तुतः, मेटाडेटा वह है जो एसएएमएल को काम करता है या अच्छी तरह से काम करता है। मेटाडेटा के कुछ महत्वपूर्ण उपयोगों में सम्मिलित हैं:
- एक सेवा प्रदाता ब्राउज़र के माध्यम से एक पहचान प्रदाता को
<samlp:AuthnRequest>तत्व प्रसारित करने की तैयारी करता है। सेवा प्रदाता को कैसे पता चलता है कि पहचान प्रदाता प्रामाणिक है और उपयोगकर्ता के पासवर्ड को फ़िशिंग करने का प्रयास करने वाला कोई विकृत पहचान प्रदाता नहीं है? प्रमाणीकरण अनुरोध जारी करने से पहले सेवा प्रदाता मेटाडेटा में विश्वसनीय पहचान प्रदाताओं की अपनी सूची से परामर्श करता है। - पूर्व परिदृश्य में, सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण अनुरोध के साथ उपयोगकर्ता को जहां भेजा जाए? सेवा प्रदाता मेटाडेटा में विश्वसनीय पहचान प्रदाता के पूर्व-व्यवस्थित अंतिम बिंदु स्थान की जांच करता है।
- एक पहचान प्रदाता ब्राउज़र के माध्यम से एक सेवा प्रदाता से एक
<samlp:AuthnRequest>तत्व प्राप्त करता है। पहचान प्रदाता को कैसे पता चलता है कि सेवा प्रदाता प्रामाणिक है और कोई विकृत सेवा प्रदाता नहीं है जो उपयोगकर्ता के संबंध में व्यक्तिगत रूप से पहचान योग्य जानकारी प्राप्त करने का प्रयास कर रहा है? प्रमाणीकरण प्रतिक्रिया जारी करने से पहले पहचान प्रदाता मेटाडेटा में विश्वसनीय सेवा प्रदाताओं की अपनी सूची से परामर्श करता है। - पूर्व परिदृश्य में, पहचान प्रदाता एसएएमएल अभिकथन को कैसे एन्क्रिप्ट करता है ताकि विश्वसनीय सेवा प्रदाता (और केवल विश्वसनीय सेवा प्रदाता) अभिकथन को डिक्रिप्ट कर सके। पहचान प्रदाता अभिकथन को एन्क्रिप्ट करने के लिए मेटाडेटा में सेवा प्रदाता के एन्क्रिप्शन प्रमाणपत्र का उपयोग करता है।
- पूर्व परिदृश्य को जारी रखते हुए, पहचान प्रदाता कैसे जानता है कि उपयोगकर्ता को प्रमाणीकरण प्रतिक्रिया के साथ कहां भेजा जाए? पहचान प्रदाता मेटाडेटा में विश्वसनीय सेवा प्रदाता के पूर्व-व्यवस्थित अंतिम बिंदु स्थान की जांच करता है।
- सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण प्रतिक्रिया एक विश्वसनीय पहचान प्रदाता से आई है? सेवा प्रदाता मेटाडेटा से पहचान प्रदाता की सार्वजनिक कुंजी का उपयोग करके अभिकथन पर चिन्ह की पुष्टि करता है।
- सेवा प्रदाता को यह कैसे पता चलता है कि विश्वसनीय पहचान प्रदाता से प्राप्त अर्टिफैक्ट का समाधान कहां करना है? सेवा प्रदाता मेटाडेटा से पहचान प्रदाता की अर्टिफैक्ट समाधान सेवा के पूर्व-व्यवस्थित अंतिम बिंदु स्थान को देखता है।
मेटाडेटा पहचान प्रदाता और सेवा प्रदाता के बीच एक सुरक्षित लेनदेन सुनिश्चित करता है। मेटाडेटा से पहले, संगठन की जानकारी को अधिकृत तरीके से कार्यान्वयन में एन्कोड किया गया था। अब संगठन की जानकारी साझा करने की सुविधा मानक मेटाडेटा द्वारा दी जाती है। एसएएमएल 2.0 एक अच्छी तरह से परिभाषित, अंतर-संचालित मेटाडेटा प्रारूप प्रदान करता है, जिसका उपयोग संस्थाएं विश्वास प्रक्रिया को बूटस्ट्रैप करने के लिए कर सकती हैं।
पहचान प्रदाता मेटाडेटा
<md:EntityDescriptor> तत्व एक पहचान प्रदाता एक में अपने बारे में डेटा प्रकाशित करता है:
<md:EntityDescriptor entityID="https://idp.example.org/SAML2" validUntil="2013-03-22T23:00:00Z"
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- insert ds:Signature element (omitted) -->
<!-- insert md:IDPSSODescriptor element (below) -->
<md:Organization>
<md:OrganizationName xml:lang="en">Some Non-profit Organization of New York</md:OrganizationName>
<md:OrganizationDisplayName xml:lang="en">Some Non-profit Organization</md:OrganizationDisplayName>
<md:OrganizationURL xml:lang="en">https://www.example.org/</md:OrganizationURL>
</md:Organization>
<md:ContactPerson contactType="technical">
<md:SurName>SAML Technical Support</md:SurName>
<md:EmailAddress>mailto:saml-support@example.org</md:EmailAddress>
</md:ContactPerson>
</md:EntityDescriptor>
इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें:
entityIDएट्रिब्यूट एंटिटी का विशिष्ट पहचानकर्ता है।validUntilएट्रिब्यूट मेटाडेटा की अवसान तिथि देती है।<ds:Signature>तत्व (जिसे सरलता के लिए हटा दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।- संगठन में पहचाना गया
<md:Organization>तत्व एंटिटी विवरण द्वारा वर्णित एंटिटी (एसएएमएलमेटा का खंड 2.3.2)[4] के लिए अधीन है <md:ContactPerson>तत्व में संपर्क जानकारी एंटिटी के लिए अधीन एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलमेटा का अनुभाग 2.3.2.2 देखें।[4]
परिभाषा के अनुसार, एक पहचान प्रदाता एक एसएसओ सेवा का प्रबंधन करता है जो एसएएमएलप्रॉफ में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।[3] उदाहरण के लिए, अगले अनुभाग में दिखाए गए <md:IDPSSODescriptor तत्व में वर्णित पहचान प्रदाता देखें।
एसएसओ सेवा मेटाडेटा
<md:IDPSSODescriptor तत्व पहचान प्रदाता पर एसएसओ सेवा का वर्णन एक में किया गया है:
<md:IDPSSODescriptor
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo>...</ds:KeyInfo>
</md:KeyDescriptor>
<md:ArtifactResolutionService isDefault="true" index="0"
Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://idp.example.org/SAML2/ArtifactResolution"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:SingleSignOnService
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location="https://idp.example.org/SAML2/SSO/Redirect"/>
<md:SingleSignOnService
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://idp.example.org/SAML2/SSO/POST"/>
<md:SingleSignOnService
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
Location="https://idp.example.org/SAML2/Artifact"/>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"
FriendlyName="eduPersonAffiliation">
<saml:AttributeValue>member</saml:AttributeValue>
<saml:AttributeValue>student</saml:AttributeValue>
<saml:AttributeValue>faculty</saml:AttributeValue>
<saml:AttributeValue>employee</saml:AttributeValue>
<saml:AttributeValue>staff</saml:AttributeValue>
</saml:Attribute>
</md:IDPSSODescriptor>
पिछला मेटाडेटा तत्व पहचान प्रदाता पर एसएसओ सेवा का वर्णन करता है। इस तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:
- पहचान प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल हस्ताक्षर कुंजी और/या एक निजी बैक-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी आईडीपी मेटाडेटा में
<md:KeyDescriptor use="signing">तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य सामग्री को मुख्य विवरणक से हटा दिया गया है। <md:ArtifactResolutionService>तत्वBINDINGका एट्रिब्यूट प्रदर्शित करता है कि एसएएमएल एसओएपी बाइंडिंग एसएएमएलबाइंड[2] अर्टिफैक्ट रिज़ॉल्यूशन के लिए उपयोग किया जाना चाहिए।<md:ArtifactResolutionService>तत्व कीLocationका एट्रिब्यूट का उपयोग "द्विक आर्टिफैक्ट" प्रोफ़ाइल के चरण 8 में किया जाता है।<md:ArtifactResolutionService>तत्व काindexका एट्रिब्यूट का मान एसएएमएल प्ररूप 0x0004 अर्टिफैक्ट के संरचना मेंEndpointIndexके रूप में प्रयोग किया जाता है।<md:NameIDFormat>तत्व प्रदर्शित करते हैं कि एसएएमएल नाम पहचानकर्ता प्रारूप एसएएमएल क्रोड[1] एसएसओ सेवा समर्थन करती है।<md:SingleSignOnService>तत्व कीBINDINGके एट्रिब्यूट एसएएमएल 2.0 बाइंडिंग विनिर्देश एसएएमएलबाइंड[2] में निर्दिष्ट मानक यूआरआई हैं।<md:SingleSignOnService>तत्वLocationका एट्रिब्यूट जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग का समर्थन करता है, जिसका पीएएसटी अनुरोध के चरण 2 में उपयोग किया जाता है;<md:SingleSignOnService>तत्वLocationका एट्रिब्यूट जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का समर्थन करता है जिसका एसपी पुनर्निर्देशन अर्टिफैक्ट के चरण 2 में उपयोग किया जाता है;<saml:Attribute>तत्व एक एट्रिब्यूट का वर्णन करता है कि पहचान प्रदाता दावा (नीति के अधीन) करने के लिए तैयार किया गया है।<saml:AttributeValue>तत्व उन संभावित मानों की गणना करते हैं जिन पर एट्रिब्यूट प्रयुक्त हो सकती है
जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, Location एट्रिब्यूटएँ के मानो का उपयोग एसएएमएल संदेशों को रूट करने के लिए एक सेवा प्रदाता द्वारा उपयोग की जाती हैं, जो एक विकृत पहचान प्रदाता द्वारा एक मध्य मे आक्षेप की संभावना को कम करता है।
सेवा प्रदाता मेटाडेटा
<md:EntityDescriptor> तत्व पहचान प्रदाता की तरह, एक सेवा प्रदाता अपने बारे में डेटा को एक में प्रकाशित करता है :
<md:EntityDescriptor entityID="https://sp.example.com/SAML2" validUntil="2013-03-22T23:00:00Z"
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- insert ds:Signature element (omitted) -->
<!-- insert md:SPSSODescriptor element (see below) -->
<md:Organization>
<md:OrganizationName xml:lang="en">Some Commercial Vendor of California</md:OrganizationName>
<md:OrganizationDisplayName xml:lang="en">Some Commercial Vendor</md:OrganizationDisplayName>
<md:OrganizationURL xml:lang="en">https://www.example.com/</md:OrganizationURL>
</md:Organization>
<md:ContactPerson contactType="technical">
<md:SurName>SAML Technical Support</md:SurName>
<md:EmailAddress>mailto:saml-support@example.com</md:EmailAddress>
</md:ContactPerson>
</md:EntityDescriptor>
इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें:
entityIDएट्रिब्यूट एंटिटी का विशिष्ट पहचानकर्ता है।validUntilएट्रिब्यूट मेटाडेटा की अवसान तिथि देती है।<ds:Signature>तत्व (जिसे सरलता के लिए हटा दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।- संगठन में पहचाना गया
<md:Organization>तत्व एंटिटी विवरणक द्वारा वर्णित एंटिटी एसएएमएलमेटा का खंड 2.3.2[4] के लिए अधीन है <md:ContactPerson>तत्व में संपर्क जानकारी एंटिटी के लिए अधीन एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलमेटा का अनुभाग 2.3.2.2 देखें।[4]
परिभाषा के अनुसार, एक सेवा प्रदाता एक अभिकथन उपभोक्ता सेवा का प्रबंधन करता है जो एसएएमएलप्रॉफ में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।[3]उदाहरण के लिए, अगले अनुभाग में दिखाए गए <md:SPSSODescriptor> तत्व में वर्णित पहचान प्रदाता देखें।
अभिकथन उपभोक्ता सेवा मेटाडेटा
अभिकथन उपभोक्ता सेवा मे <md:SPSSODescriptor> तत्व में समाहित है:
<md:SPSSODescriptor
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo>...</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo>...</ds:KeyInfo>
</md:KeyDescriptor>
<md:ArtifactResolutionService isDefault="true" index="0"
Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
Location="https://sp.example.com/SAML2/ArtifactResolution"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:AssertionConsumerService isDefault="true" index="0"
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://sp.example.com/SAML2/SSO/POST"/>
<md:AssertionConsumerService index="1"
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
Location="https://sp.example.com/SAML2/Artifact"/>
<md:AttributeConsumingService isDefault="true" index="1">
<md:ServiceName xml:lang="en">Service Provider Portal</md:ServiceName>
<md:RequestedAttribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"
FriendlyName="eduPersonAffiliation">
</md:RequestedAttribute>
</md:AttributeConsumingService>
</md:SPSSODescriptor>
<md:SPSSODescriptor> मेटाडेटा तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:
- सेवा प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल चिन्ह कुंजी और/या एक निजी बैक-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी एसपी मेटाडेटा में
<md:KeyDescriptor use="signing">तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य वस्तु को मुख्य विवरणक से हटा दिया गया है। - इसी तरह सेवा प्रदाता सॉफ्टवेयर को एक निजी एसएएमएल डिक्रिप्शन कुंजी के साथ कॉन्फ़िगर किया गया है। एक सार्वजनिक एसएएमएल एन्क्रिप्शन कुंजी
<md:KeyDescriptor use="encryption">एसपी मेटाडेटा में तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य वस्तु को हटा दिया गया है। <md:AssertionConsumerService>तत्व कीindexएट्रिब्यूट का उपयोगAssertionConsumerServiceIndexतत्व में<samlp:AuthnRequest>एट्रिब्यूट के मान के रूप में किया जाता है।<md:AssertionConsumerService>तत्वों कीBINDINGएट्रिब्यूटएँ एसएएमएल 2.0 बाइंडिंग विनिर्देश (एसएएमएलबीआईएनडी)[2] में निर्दिष्ट मानक यूआरआई हैं।<md:AssertionConsumerService>तत्व कीLocationकी एट्रिब्यूट जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पीएएसटी बाइंडिंग (index="0") का समर्थन करती है, जिसका उपयोग "द्विक पीओएसटी" प्रोफ़ाइल के चरण 4 में किया जाता है।<md:AssertionConsumerService>तत्व कीLocationकी एट्रिब्यूट जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग (index="1") का समर्थन करती है, जिसका उपयोग "द्विक आर्टिफैक्ट" प्रोफ़ाइल के चरण 6 में किया जाता है।<md:AttributeConsumingService>तत्व का उपयोग पहचान प्रदाता द्वारा एक<saml:AttributeStatement>तत्व तैयार करने के लिए किया जाता है जिसे वेब ब्राउज़र एसएसओ के साथ सेवा प्रदाता को भेजा जाता है।<md:AssertionConsumerService>तत्व कीindexएट्रिब्यूट का उपयोगAttributeConsumingServiceIndexतत्व में<samlp:AuthnRequest>एट्रिब्यूट के मान के रूप में किया जाता है।
जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, Location एट्रिब्यूट के मानो का एक पहचान प्रदाता द्वारा एसएएमएल संदेशों को रूट करने के लिए उपयोग की जाती हैं, जो एक विकृत सेवा प्रदाता द्वारा एक बीच मे आक्षेप की संभावना को कम करता है।
मेटाडेटा एग्रीगेट
पूर्व उदाहरणों में, प्रत्येक <md:EntityDescriptor> तत्व को डिजिटल रूप से हस्ताक्षरित दिखाया गया है। हालाँकि, व्यवहार में, एकाधिक <md:EntityDescriptor> तत्वों को एक <md:EntitiesDescriptor> तत्व के अंतर्गत संपूर्ण एग्रीगेट पर एकल डिजिटल चिन्ह के साथ एक साथ संग्रहित किया जाता है:
<md:EntitiesDescriptor validUntil="2013-03-22T23:00:00Z"
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- insert ds:Signature element (omitted) -->
<md:EntityDescriptor entityID="https://idp.example.org/SAML2">
...
</md:EntityDescriptor>
<md:EntityDescriptor entityID="https://sp.example.com/SAML2">
...
</md:EntityDescriptor>
</md:EntitiesDescriptor>
उपरोक्त <md:EntitiesDescriptor> तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:
- डिजिटल चिन्ह (संक्षिप्तता के लिए हटा दिया गया है) संपूर्ण एग्रीगेट को सम्मिलित करता है।
validUntilएट्रिब्यूट को पैरेंट तत्व तक बढ़ा दिया गया है, जिसका अर्थ है कि अवसान तिथि प्रत्येक चाइल्ड तत्व पर प्रयुक्त होती है।- अनावश्यक नेमस्पेस घोषणाओं से संरक्षित करने के लिए एक्सएमएल नेमस्पेस घोषणाओं को पैरेंट तत्व तक बढ़ा दिया गया है।
सामान्य रूप से मेटाडेटा एग्रीगेट विश्वसनीय तृतीय पक्षों द्वारा प्रकाशित किए जाते हैं जिन्हें संघ कहा जाता है जो एग्रीगेट में सभी मेटाडेटा की अखंडता की प्रत्याभूति देते हैं। ध्यान दें कि मेटाडेटा एग्रीगेट बहुत बड़ा हो सकता है, जो प्रति एग्रीगेट सैकड़ों या हजारों इकाइयों से बना हो सकता है।
यह भी देखें
- सुरक्षा अभिकथन मार्कअप भाषा
- एसएएमएल 1.1
- एसएएमएल मेटाडेटा
- एसएएमएल-आधारित उत्पाद और सेवाएँ
- मुक्तआईडी संयोजन
संदर्भ
Primary references:
- ↑ 1.0 1.1 1.2 S. Cantor et al. Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0 – Errata Composite. Working Draft 07, 8 September 2015. Document ID sstc-saml-core-errata-2.0-wd-07 http://www.oasis-open.org/committees/download.php/56776/sstc-saml-core-errata-2.0-wd-07.pdf
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 S. Cantor et al. Bindings for the OASIS Security Assertion Markup Language (SAML) V2.0 – Errata Composite. Working Draft 06, 8 September 2015. Document ID sstc-saml-bindings-errata-2.0-wd-06 https://www.oasis-open.org/committees/download.php/56779/sstc-saml-bindings-errata-2.0-wd-06.pdf
- ↑ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 J. Hughes et al. Profiles for the OASIS Security Assertion Markup Language (SAML) V2.0 – Errata Composite. Working Draft 07, 8 September 2015. Document ID sstc-saml-profiles-errata-2.0-wd-07 https://www.oasis-open.org/committees/download.php/56782/sstc-saml-profiles-errata-2.0-wd-07.pdf
- ↑ 4.0 4.1 4.2 4.3 4.4 S. Cantor et al. Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0 – Errata Composite. Working Draft 05, 8 September 2015. Document ID sstc-saml-metadata-errata-2.0-wd-05 https://www.oasis-open.org/committees/download.php/56785/sstc-saml-metadata-errata-2.0-wd-05.pdf
Secondary references:
- P. Mishra et al. Conformance Requirements for the OASIS Security Assertion Markup Language (SAML) V2.0 – Errata Composite. Working Draft 04, 1 December 2009. Document ID sstc-saml-conformance-errata-2.0-wd-04 https://www.oasis-open.org/committees/download.php/35393/sstc-saml-conformance-errata-2.0-wd-04-diff.pdf
- N. Ragouzis et al., Security Assertion Markup Language (SAML) V2.0 Technical Overview. OASIS Committee Draft, March 2008. Document ID sstc-saml-tech-overview-2.0-cd-02 http://www.oasis-open.org/committees/download.php/27819/sstc-saml-tech-overview-2.0-cd-02.pdf
- P. Madsen et al., SAML V2.0 Executive Overview. OASIS Committee Draft, April 2005. Document ID sstc-saml-tech-overview-2.0-cd-01-2col http://www.oasis-open.org/committees/download.php/13525/sstc-saml-exec-overview-2.0-cd-01-2col.pdf
- J. Kemp et al. Authentication Context for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS Standard, March 2005. Document ID saml-authn-context-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf
- F. Hirsch et al. Security and Privacy Considerations for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS Standard, March 2005. Document ID saml-sec-consider-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-sec-consider-2.0-os.pdf
- J. Hodges et al. Glossary for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS Standard, March 2005. Document ID saml-glossary-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-glossary-2.0-os.pdf
Deprecated references:
- P. Mishra et al. Conformance Requirements for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS Standard, March 2005. Document ID saml-conformance-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-conformance-2.0-os.pdf
- S. Cantor et al. Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS Standard, March 2005. Document ID saml-core-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
- S. Cantor et al. Bindings for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS Standard, March 2005. Document ID saml-bindings-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf
- S. Cantor et al. Profiles for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS Standard, March 2005. Document ID saml-profiles-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf
- S. Cantor et al. Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0. OASIS Standard, March 2005. Document ID saml-metadata-2.0-os http://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf

