एसएएमएल 2.0: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Computer markup language}} {{multipleissues|{{Technical|date=December 2019}} {{manual|date=February 2020}}}} {{Infobox technology standard | title...")
 
Line 1: Line 1:
{{Short description|Computer markup language}}
{{Short description|Computer markup language}}
{{multipleissues|{{Technical|date=December 2019}}
{{manual|date=February 2020}}}}
{{Infobox technology standard
{{Infobox technology standard
| title            = Security Assertion Markup Language
| title            = Security Assertion Markup Language
Line 15: 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 (SAML 2.0) [[सुरक्षा डोमेन]] के बीच [[प्रमाणीकरण]] और प्राधिकरण पहचान के आदान-प्रदान के लिए [[सुरक्षा अभिकथन मार्कअप भाषा]] मानक का एक संस्करण है। SAML 2.0 एक [[XML]]-आधारित [[संचार प्रोटोकॉल]] है, जो SAML प्राधिकरण, जिसे [[पहचान प्रदाता]] नाम दिया गया है, और SAML उपभोक्ता, जिसे [[सेवा प्रदाता]] कहा जाता है, के बीच प्रिंसिपल (आमतौर पर अंतिम उपयोगकर्ता) के बारे में जानकारी देने के लिए सुरक्षा अभिकथन मार्कअप लैंग्वेज वाले [[सॉफ्टवेयर टोकन]] का उपयोग करता है। SAML 2.0 वेब-आधारित, क्रॉस-डोमेन [[केवल हस्ताक्षर के ऊपर]] (SSO) को सक्षम करता है, जो उपयोगकर्ता को एकाधिक प्रमाणीकरण टोकन वितरित करने के प्रशासनिक ओवरहेड को कम करने में मदद करता है।
सुरक्षा अभिकथन मार्कअप भाषा 2.0 (एसएएमएल 2.0) सुरक्षा डोमेन के बीच प्रमाणीकरण और प्राधिकरण पहचान के विनिमय के लिए एसएएमएल मानक का एक संस्करण है। एसएएमएल 2.0 एक एक्सएमएल-आधारित प्रोटोकॉल है जो एक एसएएमएल प्राधिकरण, जिसे एक पहचान प्रदाता कहा जाता है, और एक एसएएमएल उपभोक्ता, जिसे एक सेवा प्रदाता कहा जाता है, जिसके बीच एक प्रिंसिपल (सामान्य रूप से एक अंतिम उपयोगकर्ता) के बारे में जानकारी प्रसारित करने के लिए दावे वाले सुरक्षा टोकन का उपयोग करता है। एसएएमएल 2.0 वेब-आधारित, क्रॉस-डोमेन एकल साइन-ऑन (एसएसओ) को सक्षम करता है, जो उपयोगकर्ता को एकाधिक प्रमाणीकरण टोकन वितरित करने के प्रशासनिक ओवरहेड को कम करने में सहायता करता है।


मार्च 2005 में SAML 1.1 की जगह SAML 2.0 को OASIS (संगठन) मानक के रूप में अनुमोदित किया गया था। SAML 2.0 के महत्वपूर्ण पहलुओं को आधिकारिक दस्तावेजों SAMLCore में विस्तार से शामिल किया गया है,<ref name="SAMLCore"/>SAMLबाइंड,<ref name="SAMLBind"/>SAMLProf,<ref name="SAMLProf"/>और SAMLMeta।<ref name="SAMLMeta"/>
मार्च 2005 में एसएएमएल 1.1 के अतिरिक्त एसएएमएल 2.0 को ओएसिस (संगठन) मानक के रूप में अनुमोदित किया गया था। एसएएमएल 2.0 के महत्वपूर्ण स्वरूपों को आधिकारिक दस्तावेजों एसएएमएलकोर ,<ref name="SAMLCore"/> एसएएमएलबाइंड,<ref name="SAMLBind"/> एसएएमएलप्रोफ,<ref name="SAMLProf"/> और एसएएमएलमेटा में विस्तार से सम्मिलित किया गया है।<ref name="SAMLMeta"/>


SAML 2.0 के निर्माण में 24 से अधिक कंपनियों और संगठनों के लगभग 30 व्यक्ति शामिल थे। विशेष रूप से, और विशेष रूप से, [[लिबर्टी एलायंस]] ने अपना आइडेंटिटी फ़ेडरेशन फ्रेमवर्क (ID-FF) विनिर्देश OASIS को दान कर दिया, जो SAML 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 के अभिसरण का प्रतिनिधित्व करता है -shibboleth-arch-protocols-200509.pdf Shibboleth 1.3]।
एसएएमएल 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 अभिकथन ==


एक अभिकथन जानकारी का एक पैकेज है जो SAML प्राधिकरण द्वारा किए गए शून्य या अधिक कथनों की आपूर्ति करता है। एसएएमएल अभिकथन आमतौर पर एक विषय के बारे में किया जाता है, जिसका प्रतिनिधित्व किया जाता है <code><Subject></code> तत्व। SAML 2.0 विनिर्देश तीन अलग-अलग प्रकार के अभिकथन कथनों को परिभाषित करता है जो SAML प्राधिकरण द्वारा बनाए जा सकते हैं। सभी एसएएमएल-परिभाषित बयान एक विषय से जुड़े हैं। परिभाषित तीन प्रकार के अभिकथन कथन इस प्रकार हैं:
अभिकथन (असर्शन) सूचना का एक पैकेज है जो एसएएमएल प्राधिकरण द्वारा दिए गए शून्य या अधिक स्टेटमेंट प्रदान करता है। एसएएमएल अभिकथन सामान्य रूप से किसी विषय के बारे में किए जाते हैं, जिसे <code><Subject></code> तत्व द्वारा दर्शाया जाता है। एसएएमएल 2.0 विनिर्देश तीन अलग-अलग प्रकार के अभिकथन स्टेटमेंट को परिभाषित करता है जिन्हें एसएएमएल प्राधिकरण द्वारा बनाया जा सकता है। सभी एसएएमएल-परिभाषित स्टेटमेंट एक विषय से जुड़े हुए हैं। परिभाषित तीन प्रकार के अभिकथन स्टेटमेंट इस प्रकार हैं:
* प्रमाणीकरण कथन: अभिकथन विषय को एक विशेष समय पर एक विशेष माध्यम से प्रमाणित किया गया था।
* प्रमाणीकरण स्टेटमेंट: अभिकथन विषय को एक विशेष समय पर एक विशेष माध्यम से प्रमाणित किया गया था।
* विशेषता कथन: अभिकथन विषय आपूर्ति की गई विशेषताओं से जुड़ा है।
* विशेषता स्टेटमेंट: अभिकथन विषय आपूर्ति की गई विशेषताओं से जुड़ा है।
* प्राधिकरण निर्णय वक्तव्य: दावे के विषय को निर्दिष्ट संसाधन तक पहुंचने की अनुमति देने का अनुरोध मंजूर या अस्वीकार कर दिया गया है।
* प्राधिकरण निर्णय स्टेटमेंट: दावे के विषय को निर्दिष्ट संसाधन तक पहुंचने की अनुमति देने का अनुरोध स्वीकार कर लिया गया है या अस्वीकार कर दिया गया है।


SAML अभिकथन का एक महत्वपूर्ण प्रकार तथाकथित <span id= BearerAssertion > Bearer Assertation</span> है जिसका उपयोग वेब ब्राउज़र SSO की सुविधा के लिए किया जाता है। यहां एक पहचान प्रदाता (<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> SAML V2.0 अभिकथन नाम स्थान का प्रतिनिधित्व करता है।
एसएएमएल अभिकथन का एक महत्वपूर्ण प्रकार तथाकथित "वाहक" अभिकथन है जिसका उपयोग वेब ब्राउज़र एसएसओ को सुविधाजनक बनाने के लिए किया जाता है। यहां एक पहचान प्रदाता (<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 अभिकथन नामस्थान का प्रतिनिधित्व करता है।


=== SAML का उदाहरण ===
=== एसएएमएल का उदाहरण EDIT ===
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<saml:Assertion
<saml:Assertion
Line 85: Line 83:
  </saml:Assertion>
  </saml:Assertion>
</syntaxhighlight>
</syntaxhighlight>
ध्यान दें कि उपरोक्त उदाहरण में <code><saml:Assertion></code> तत्व में निम्नलिखित बाल तत्व शामिल हैं:
ध्यान दें कि उपरोक्त उदाहरण में <code><saml:Assertion></code> तत्व में निम्नलिखित बाल तत्व सम्मिलित हैं:


* ए <code><saml:Issuer></code> तत्व, जिसमें पहचान प्रदाता का विशिष्ट पहचानकर्ता होता है
* ए <code><saml:Issuer></code> तत्व, जिसमें पहचान प्रदाता का विशिष्ट पहचानकर्ता होता है
* ए <code><ds:Signature></code> तत्व, जिसमें एक अखंडता-संरक्षित डिजिटल हस्ताक्षर (दिखाया नहीं गया) होता है <code><saml:Assertion></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 96: Line 94:
शब्दों में, अभिकथन निम्नलिखित जानकारी को कूटबद्ध करता है:
शब्दों में, अभिकथन निम्नलिखित जानकारी को कूटबद्ध करता है:


<blockquote>अभिकथन ( b07b804c-7c29-ea16-7300-4f3d6f7928ac ) पहचान प्रदाता द्वारा 2004-12-05T09:22:05Z पर जारी किया गया था (<nowiki>https://idp.example.org/SAML2</nowiki) >) विशेष रूप से सेवा प्रदाता (<nowiki>https://sp.example.com/SAML2</nowiki>) के लिए विषय (3f7b3dcf-1674-4ecd-92c8-1544f346baf8) के संबंध में।</blockquote>
<blockquote>अभिकथन ( b07b804c-7c29-ea16-7300-4f3d6f7928ac ) पहचान प्रदाता द्वारा 2004-12-05T09:22:05Z पर जारी किया गया था (<nowiki>https://idp.example.org/एसएएमएल2</nowiki></nowiki) >) विशेष रूप से सेवा प्रदाता (<nowiki>&lt;nowiki&gt;https://sp.example.com/एसएएमएल2</nowiki>) के लिए विषय (3f7b3dcf-1674-4ecd-92c8-1544f346baf8) के संबंध में।</blockquote>


प्रमाणीकरण कथन, विशेष रूप से, निम्नलिखित पर जोर देता है:
प्रमाणीकरण स्टेटमेंट, विशेष रूप से, निम्नलिखित पर जोर देता है:


<blockquote>प्रिंसिपल की पहचान इसमें की गई है <code><saml:Subject></code> सुरक्षित चैनल पर भेजे गए पासवर्ड के माध्यम से तत्व को 2004-12-05T09:22:00Z पर प्रमाणित किया गया था।</blockquote>
<blockquote>प्रिंसिपल की पहचान इसमें की गई है <code><saml:Subject></code> सुरक्षित चैनल पर भेजे गए पासवर्ड के माध्यम से तत्व को 2004-12-05T09:22:00Z पर प्रमाणित किया गया था।</blockquote>


इसी प्रकार विशेषता कथन का दावा है कि:
इसी प्रकार विशेषता स्टेटमेंट का दावा है कि:


<blockquote>प्रिंसिपल की पहचान इसमें की गई है <code><saml:Subject></code> तत्व में इस संस्था के 'कर्मचारी' और 'सदस्य' गुण हैं।</blockquote>
<blockquote>प्रिंसिपल की पहचान इसमें की गई है <code><saml:Subject></code> तत्व में इस संस्था के 'कर्मचारी' और 'सदस्य' गुण हैं।</blockquote>


== एसएएमएल 2.0 प्रोटोकॉल ==
== एसएएमएल 2.0 प्रोटोकॉल ==
SAML Core में निम्नलिखित प्रोटोकॉल निर्दिष्ट हैं:<ref name="SAMLCore"/>
एसएएमएल Core में निम्नलिखित प्रोटोकॉल निर्दिष्ट हैं:<ref name="SAMLCore"/>


* अभिकथन क्वेरी और अनुरोध प्रोटोकॉल
* अभिकथन क्वेरी और अनुरोध प्रोटोकॉल
* # प्रमाणीकरण अनुरोध प्रोटोकॉल
* # प्रमाणीकरण अनुरोध प्रोटोकॉल
* #आर्टिफैक्ट रेजोल्यूशन प्रोटोकॉल
* #अर्टिफैक्ट रेजोल्यूशन प्रोटोकॉल
* नाम पहचानकर्ता प्रबंधन प्रोटोकॉल
* नाम पहचानकर्ता प्रबंधन प्रोटोकॉल
* सिंगल लॉगआउट प्रोटोकॉल
* एकल लॉगआउट प्रोटोकॉल
* नाम पहचानकर्ता मैपिंग प्रोटोकॉल
* नाम पहचानकर्ता मैपिंग प्रोटोकॉल


Line 120: Line 118:
=== प्रमाणीकरण अनुरोध प्रोटोकॉल ===
=== प्रमाणीकरण अनुरोध प्रोटोकॉल ===


एसएएमएल 1.1 में वेब ब्राउजर एसएसओ प्रोफाइल [[ पहचान प्रदाता ]] | आइडेंटिटी प्रोवाइडर (आईडीपी) द्वारा शुरू किए जाते हैं, यानी एक अवांछित <code><samlp:Response></code> तत्व पहचान प्रदाता से सेवा प्रदाता (ब्राउज़र के माध्यम से) में प्रेषित होता है। (उपसर्ग <code>samlp:</code> SAML प्रोटोकॉल नामस्थान को दर्शाता है।)
एसएएमएल 1.1 में वेब ब्राउजर एसएसओ प्रोफाइल [[ पहचान प्रदाता ]] | आइडेंटिटी प्रोवाइडर (आईडीपी) द्वारा शुरू किए जाते हैं, यानी एक अवांछित <code><samlp:Response></code> तत्व पहचान प्रदाता से सेवा प्रदाता (ब्राउज़र के माध्यम से) में प्रेषित होता है। (उपसर्ग <code>samlp:</code> एसएएमएल प्रोटोकॉल नामस्थान को दर्शाता है।)


SAML 2.0 में, हालांकि, सेवा प्रदाता से प्रवाह शुरू होता है जो पहचान प्रदाता को एक स्पष्ट प्रमाणीकरण अनुरोध जारी करता है। परिणामी प्रमाणीकरण अनुरोध प्रोटोकॉल SAML 2.0 की एक महत्वपूर्ण नई विशेषता है।
एसएएमएल 2.0 में, हालांकि, सेवा प्रदाता से प्रवाह शुरू होता है जो पहचान प्रदाता को एक स्पष्ट प्रमाणीकरण अनुरोध जारी करता है। परिणामी प्रमाणीकरण अनुरोध प्रोटोकॉल एसएएमएल 2.0 की एक महत्वपूर्ण नई विशेषता है।


जब एक प्रिंसिपल (या प्रिंसिपल की ओर से काम करने वाली इकाई) एक ऑथेंटिकेशन स्टेटमेंट वाला एक एश्योरमेंट प्राप्त करना चाहता है, तो ए <code><samlp:AuthnRequest></code> तत्व पहचान प्रदाता को प्रेषित किया जाता है:
जब एक प्रिंसिपल (या प्रिंसिपल की ओर से काम करने वाली इकाई) एक ऑथेंटिकेशन स्टेटमेंट वाला एक एश्योरमेंट प्राप्त करना चाहता है, तो ए <code><samlp:AuthnRequest></code> तत्व पहचान प्रदाता को प्रेषित किया जाता है:
Line 140: Line 138:
   </samlp:AuthnRequest>
   </samlp:AuthnRequest>
</syntaxhighlight>
</syntaxhighlight>
उपरोक्त <code><samlp:AuthnRequest></code> तत्व, जो स्पष्ट रूप से #SAML_2.0_एसरशन का अनुरोध करता है, स्पष्ट रूप से एक सेवा प्रदाता (<nowiki>https://sp.example.com/SAML2</nowiki>) द्वारा जारी किया गया था और बाद में पहचान प्रदाता (ब्राउज़र के माध्यम से) को प्रस्तुत किया गया था। पहचान प्रदाता प्रिंसिपल (यदि आवश्यक हो) को प्रमाणित करता है और एक प्रमाणीकरण प्रतिक्रिया जारी करता है, जो सेवा प्रदाता (फिर से ब्राउज़र के माध्यम से) को वापस प्रेषित की जाती है।
उपरोक्त <code><samlp:AuthnRequest></code> तत्व, जो स्पष्ट रूप से #एसएएमएल_2.0_एसरशन का अनुरोध करता है, स्पष्ट रूप से एक सेवा प्रदाता (<nowiki>https://sp.example.com/एसएएमएल2</nowiki>) द्वारा जारी किया गया था और बाद में पहचान प्रदाता (ब्राउज़र के माध्यम से) को प्रस्तुत किया गया था। पहचान प्रदाता प्रिंसिपल (यदि आवश्यक हो) को प्रमाणित करता है और एक प्रमाणीकरण प्रतिक्रिया जारी करता है, जो सेवा प्रदाता (फिर से ब्राउज़र के माध्यम से) को वापस प्रेषित की जाती है।


=== विरूपण साक्ष्य संकल्प प्रोटोकॉल ===
=== अर्टिफैक्ट साक्ष्य संकल्प प्रोटोकॉल ===


एक एसएएमएल संदेश एक इकाई से दूसरे में या तो मूल्य या संदर्भ द्वारा प्रेषित होता है। एसएएमएल संदेश के संदर्भ को आर्टिफैक्ट कहा जाता है। एक आर्टिफैक्ट का रिसीवर एक भेजकर संदर्भ को हल करता है <code><samlp:ArtifactResolve></code> आर्टिफैक्ट के जारीकर्ता से सीधे अनुरोध करें, जो आर्टिफैक्ट द्वारा संदर्भित वास्तविक संदेश के साथ प्रतिक्रिया करता है।
एक एसएएमएल संदेश एक इकाई से दूसरे में या तो मूल्य या संदर्भ द्वारा प्रेषित होता है। एसएएमएल संदेश के संदर्भ को अर्टिफैक्ट कहा जाता है। एक अर्टिफैक्ट का रिसीवर एक भेजकर संदर्भ को हल करता है <code><samlp:ArtifactResolve></code> अर्टिफैक्ट के जारीकर्ता से सीधे अनुरोध करें, जो अर्टिफैक्ट द्वारा संदर्भित वास्तविक संदेश के साथ प्रतिक्रिया करता है।


मान लीजिए, उदाहरण के लिए, एक पहचान प्रदाता निम्नलिखित <span id= ArtifactResolveRequest > भेजता है<code><samlp:ArtifactResolve></code> अनुरोध</span> सीधे सेवा प्रदाता से (बैक चैनल के माध्यम से):
मान लीजिए, उदाहरण के लिए, एक पहचान प्रदाता निम्नलिखित <span id= ArtifactResolveRequest > भेजता है<code><samlp:ArtifactResolve></code> अनुरोध</span> सीधे सेवा प्रदाता से (बैक चैनल के माध्यम से):
Line 161: Line 159:
   </samlp:ArtifactResolve>
   </samlp:ArtifactResolve>
</syntaxhighlight>
</syntaxhighlight>
जवाब में, सेवा प्रदाता संलग्न आर्टिफैक्ट द्वारा संदर्भित एसएएमएल तत्व लौटाता है। यह प्रोटोकॉल #HTTP आर्टिफैक्ट बाइंडिंग का आधार बनाता है।
जवाब में, सेवा प्रदाता संलग्न अर्टिफैक्ट द्वारा संदर्भित एसएएमएल तत्व लौटाता है। यह प्रोटोकॉल #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का आधार बनाता है।


== एसएएमएल 2.0 बाइंडिंग्स ==
== एसएएमएल 2.0 बाइंडिंग्स ==


SAML 2.0 द्वारा समर्थित बाइंडिंग बाइंडिंग विनिर्देश (SAMLBind<ref name="SAMLBind"/>):
एसएएमएल 2.0 द्वारा समर्थित बाइंडिंग बाइंडिंग विनिर्देश (एसएएमएलBind<ref name="SAMLBind"/>):


* SAML SOAP बाइंडिंग (SOAP 1.1 पर आधारित)
* एसएएमएल SOAP बाइंडिंग (SOAP 1.1 पर आधारित)
* रिवर्स SOAP (PAOS) ​​बाइंडिंग
* रिवर्स SOAP (PAOS) ​​बाइंडिंग
* #HTTP रीडायरेक्ट बाइंडिंग
* #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट बाइंडिंग
* #HTTP पोस्ट बाइंडिंग
* #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पोस्ट बाइंडिंग
* #HTTP आर्टिफैक्ट बाइंडिंग
* #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग
* SAML URI बाइंडिंग
* एसएएमएल URI बाइंडिंग


वेब ब्राउज़र एसएसओ के लिए, एचटीटीपी रीडायरेक्ट बाइंडिंग और एचटीटीपी पोस्ट बाइंडिंग का आमतौर पर इस्तेमाल किया जाता है। उदाहरण के लिए, सेवा प्रदाता अनुरोध भेजने के लिए HTTP रीडायरेक्ट का उपयोग कर सकता है, जबकि पहचान प्रदाता प्रतिक्रिया प्रसारित करने के लिए HTTP POST का उपयोग करता है। इस उदाहरण से पता चलता है कि एक इकाई की बाध्यकारी की पसंद उसके साथी की बाध्यकारी की पसंद से स्वतंत्र है।
वेब ब्राउज़र एसएसओ के लिए, एचटीटीपी रीडायरेक्ट बाइंडिंग और एचटीटीपी पोस्ट बाइंडिंग का सामान्य रूप से इस्तेमाल किया जाता है। उदाहरण के लिए, सेवा प्रदाता अनुरोध भेजने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट का उपयोग कर सकता है, जबकि पहचान प्रदाता प्रतिक्रिया प्रसारित करने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST का उपयोग करता है। इस उदाहरण से पता चलता है कि एक इकाई की बाध्यकारी की पसंद उसके साथी की बाध्यकारी की पसंद से स्वतंत्र है।


=== HTTP रीडायरेक्ट बाइंडिंग ===
=== हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट बाइंडिंग ===


SAML प्रोटोकॉल संदेशों को सीधे HTTP GET अनुरोध के URL क्वेरी स्ट्रिंग में ले जाया जा सकता है। व्यवहार में URL की लंबाई सीमित होने के कारण, HTTP रीडायरेक्ट बाइंडिंग छोटे संदेशों के लिए उपयुक्त है, जैसे कि <code><samlp:AuthnRequest></code> संदेश। लंबे संदेश (उदाहरण के लिए हस्ताक्षरित या एन्क्रिप्टेड SAML अभिकथन वाले, जैसे SAML प्रतिक्रियाएँ) आमतौर पर #HTTP POST बाइंडिंग जैसे अन्य बाइंडिंग के माध्यम से प्रेषित होते हैं।
एसएएमएल प्रोटोकॉल संदेशों को सीधे हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल GET अनुरोध के URL क्वेरी स्ट्रिंग में ले जाया जा सकता है। व्यवहार में URL की लंबाई सीमित होने के कारण, हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट बाइंडिंग छोटे संदेशों के लिए उपयुक्त है, जैसे कि <code><samlp:AuthnRequest></code> संदेश। लंबे संदेश (उदाहरण के लिए हस्ताक्षरित या एन्क्रिप्टेड एसएएमएल अभिकथन वाले, जैसे एसएएमएल प्रतिक्रियाएँ) सामान्य रूप से #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST बाइंडिंग जैसे अन्य बाइंडिंग के माध्यम से प्रेषित होते हैं।


एचटीटीपी रीडायरेक्ट के ज़रिए ट्रांसमिट किए गए एसएएमएल अनुरोध या जवाबों में a <code>SAMLRequest</code> या <code>SAMLResponse</code> क्वेरी स्ट्रिंग पैरामीटर, क्रमशः। भेजे जाने से पहले, संदेश उस क्रम में [[DEFLATE]] (हेडर और चेकसम के बिना), [[बेस 64]]-एन्कोडेड और URL-एन्कोडेड है। प्राप्त होने पर, मूल संदेश को पुनर्प्राप्त करने के लिए प्रक्रिया उलट दी जाती है।
एचटीटीपी रीडायरेक्ट के ज़रिए ट्रांसमिट किए गए एसएएमएल अनुरोध या जवाबों में a <code>एसएएमएलRequest</code> या <code>एसएएमएलResponse</code> क्वेरी स्ट्रिंग पैरामीटर, क्रमशः। भेजे जाने से पहले, संदेश उस क्रम में [[DEFLATE]] (हेडर और चेकसम के बिना), [[बेस 64]]-एन्कोडेड और URL-एन्कोडेड है। प्राप्त होने पर, मूल संदेश को पुनर्प्राप्त करने के लिए प्रक्रिया उलट दी जाती है।


उदाहरण के लिए, एन्कोडिंग <code><samlp:AuthnRequest></code> उपज के ऊपर संदेश:
उदाहरण के लिए, एन्कोडिंग <code><samlp:AuthnRequest></code> उपज के ऊपर संदेश:


   <nowiki>https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2
   <nowiki>https://idp.example.org/एसएएमएल2/एसएसओ/Redirect?एसएएमएलRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2</nowiki>
Mabbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdY
  Mabbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdY
ib%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8s
  ib%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8s
BHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1F
  BHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1F
dgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RkydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NK
  dgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RkydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NK
UqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C</nowiki>
  UqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C


अतिरिक्त सुरक्षा के लिए उपरोक्त संदेश (पठनीयता के लिए स्वरूपित) पर हस्ताक्षर किए जा सकते हैं। व्यवहार में, एक में निहित सभी डेटा <code><samlp:AuthnRequest></code>, जैसे कि <code>Issuer</code> जिसमें एसपी आईडी है, और <code>NameIDPolicy</code>, IdP और SP के बीच पहले ही सहमति हो गई है (मैन्युअल सूचना विनिमय के माध्यम से या #SAML 2.0 मेटाडेटा के माध्यम से)। उस स्थिति में अनुरोध पर हस्ताक्षर करना सुरक्षा बाधा नहीं है। जब <code><samlp:AuthnRequest></code> IdP द्वारा पहले से ज्ञात जानकारी नहीं है, जैसे कि अभिकथन उपभोक्ता सेवा URL, सुरक्षा उद्देश्यों के लिए अनुरोध पर हस्ताक्षर करने की अनुशंसा की जाती है।
अतिरिक्त सुरक्षा के लिए उपरोक्त संदेश (पठनीयता के लिए स्वरूपित) पर चिन्ह किए जा सकते हैं। व्यवहार में, एक में निहित सभी डेटा <code><samlp:AuthnRequest></code>, जैसे कि <code>Issuer</code> जिसमें एसपी आईडी है, और <code>NameIDPolicy</code>, IdP और SP के बीच पहले ही सहमति हो गई है (मैन्युअल सूचना विनिमय के माध्यम से या #एसएएमएल 2.0 मेटाडेटा के माध्यम से)। उस स्थिति में अनुरोध पर चिन्ह करना सुरक्षा बाधा नहीं है। जब <code><samlp:AuthnRequest></code> IdP द्वारा पहले से ज्ञात जानकारी नहीं है, जैसे कि अभिकथन उपभोक्ता सेवा URL, सुरक्षा उद्देश्यों के लिए अनुरोध पर चिन्ह करने की अनुशंसा की जाती है।


=== HTTP पोस्ट बाइंडिंग ===
=== हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पोस्ट बाइंडिंग ===


निम्नलिखित उदाहरण में, सेवा प्रदाता और पहचान प्रदाता दोनों HTTP POST बाइंडिंग का उपयोग करते हैं। प्रारंभ में, सेवा प्रदाता एक एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ [[उपयोगकर्ता एजेंट]] के अनुरोध का जवाब देता है:
निम्नलिखित उदाहरण में, सेवा प्रदाता और पहचान प्रदाता दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST बाइंडिंग का उपयोग करते हैं। प्रारंभ में, सेवा प्रदाता एक एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ [[उपयोगकर्ता एजेंट]] के अनुरोध का जवाब देता है:
<वाक्यविन्यास लैंग = html4सख्त>
<वाक्यविन्यास लैंग = html4सख्त>
   <फॉर्म विधि = पोस्ट एक्शन = https://idp.example.org/SAML2/SSO/POST ...>
   <फॉर्म विधि = पोस्ट एक्शन = [https://idp.example.org/SAML2/SSO/POST https://idp.example.org/एसएएमएल2/एसएसओ/POST] ...>
     <इनपुट प्रकार = छिपा हुआ नाम = SAMLRequest मान = अनुरोध />
     <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलRequest मान = अनुरोध />
     ... अन्य इनपुट पैरामीटर ....
     ... अन्य इनपुट पैरामीटर ....
   </रूप>
   </रूप>
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>
का मूल्य <code>SAMLRequest</code> पैरामीटर a का बेस 64-एन्कोडिंग है <code><samlp:AuthnRequest></code> तत्व, जो ब्राउज़र के माध्यम से पहचान प्रदाता को प्रेषित होता है। पहचान प्रदाता पर एसएसओ सेवा अनुरोध को मान्य करती है और एक अन्य एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
का मूल्य <code>एसएएमएलRequest</code> पैरामीटर a का बेस 64-एन्कोडिंग है <code><samlp:AuthnRequest></code> तत्व, जो ब्राउज़र के माध्यम से पहचान प्रदाता को प्रेषित होता है। पहचान प्रदाता पर एसएसओ सेवा अनुरोध को मान्य करती है और एक अन्य एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
<वाक्यविन्यास लैंग = html4सख्त>
<वाक्यविन्यास लैंग = html4सख्त>
   <फॉर्म विधि = पोस्ट कार्रवाई = https://sp.example.com/SAML2/SSO/POST ...>
   <फॉर्म विधि = पोस्ट कार्रवाई = [https://sp.example.com/SAML2/SSO/POST https://sp.example.com/एसएएमएल2/एसएसओ/POST] ...>
     <इनपुट प्रकार = छिपा हुआ नाम = SAMLResponse मान = प्रतिक्रिया />
     <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलResponse मान = प्रतिक्रिया />
     ...
     ...
   </रूप>
   </रूप>
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>
का मूल्य <code>SAMLResponse</code> पैरामीटर a का बेस 64 एन्कोडिंग है <code><samlp:Response></code> तत्व, जो इसी तरह सेवा प्रदाता को ब्राउज़र के माध्यम से प्रेषित किया जाता है।
का मूल्य <code>एसएएमएलResponse</code> पैरामीटर a का बेस 64 एन्कोडिंग है <code><samlp:Response></code> तत्व, जो इसी तरह सेवा प्रदाता को ब्राउज़र के माध्यम से प्रेषित किया जाता है।


प्रपत्र के सबमिशन को स्वचालित करने के लिए, जावास्क्रिप्ट की निम्न पंक्ति XHTML पृष्ठ पर कहीं भी दिखाई दे सकती है:
प्रपत्र के सबमिशन को स्वचालित करने के लिए, जावास्क्रिप्ट की निम्न पंक्ति XHTML पृष्ठ पर कहीं भी दिखाई दे सकती है:
Line 215: Line 213:
   window.onload = function () { document.forms[0].submit(); }
   window.onload = function () { document.forms[0].submit(); }
</syntaxhighlight>
</syntaxhighlight>
यह निश्चित रूप से मानता है कि पृष्ठ में पहले फॉर्म तत्व में उपरोक्त SAMLResponse शामिल है <code>form</code> तत्व (<code>forms[0]</code>).
यह निश्चित रूप से मानता है कि पृष्ठ में पहले फॉर्म तत्व में उपरोक्त एसएएमएलResponse सम्मिलित है <code>form</code> तत्व (<code>forms[0]</code>).


=== HTTP विरूपण साक्ष्य बाइंडिंग ===
=== हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट साक्ष्य बाइंडिंग ===


संदर्भ द्वारा SAML संदेश को हल करने के लिए HTTP आर्टिफैक्ट बाइंडिंग #Artifact रिज़ॉल्यूशन प्रोटोकॉल और SAML SOAP बाइंडिंग (HTTP पर) का उपयोग करता है। निम्नलिखित विशिष्ट उदाहरण पर विचार करें। मान लीजिए कि एक सेवा प्रदाता एक भेजना चाहता है <code><samlp:AuthnRequest></code> एक पहचान प्रदाता को संदेश। प्रारंभ में, सेवा प्रदाता HTTP रीडायरेक्ट के माध्यम से पहचान प्रदाता को एक आर्टिफैक्ट भेजता है:
संदर्भ द्वारा एसएएमएल संदेश को हल करने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग #Artifact रिज़ॉल्यूशन प्रोटोकॉल और एसएएमएल SOAP बाइंडिंग (हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पर) का उपयोग करता है। निम्नलिखित विशिष्ट उदाहरण पर विचार करें। मान लीजिए कि एक सेवा प्रदाता एक भेजना चाहता है <code><samlp:AuthnRequest></code> एक पहचान प्रदाता को संदेश। प्रारंभ में, सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट के माध्यम से पहचान प्रदाता को एक अर्टिफैक्ट भेजता है:


   <nowiki>https://idp.example.org/SAML2/SSO/Artifact</nowiki>?SAMLart=artifact
   <nowiki>https://idp.example.org/एसएएमएल2/एसएसओ/Artifact?एसएएमएलart=artifact</nowiki>


इसके बाद पहचान प्रदाता एक भेजता है <code><samlp:ArtifactResolve></code> अनुरोध (जैसे कि पहले दिखाया गया #ArtifactResolveRequest) सीधे बैक चैनल के माध्यम से सेवा प्रदाता को। अंत में, सेवा प्रदाता एक देता है <code><samlp:ArtifactResponse></code> तत्व जिसमें संदर्भित है <code><samlp:AuthnRequest></code> संदेश:
इसके बाद पहचान प्रदाता एक भेजता है <code><samlp:ArtifactResolve></code> अनुरोध (जैसे कि पहले दिखाया गया #ArtifactResolveRequest) सीधे बैक चैनल के माध्यम से सेवा प्रदाता को। अंत में, सेवा प्रदाता एक देता है <code><samlp:ArtifactResponse></code> तत्व जिसमें संदर्भित है <code><samlp:AuthnRequest></code> संदेश:
Line 254: Line 252:
   </samlp:ArtifactResponse>
   </samlp:ArtifactResponse>
</syntaxhighlight>
</syntaxhighlight>
बेशक प्रवाह दूसरी दिशा में भी जा सकता है, यानी पहचान प्रदाता एक आर्टिफैक्ट जारी कर सकता है, और वास्तव में यह अधिक सामान्य है। उदाहरण के लिए देखें, #SP रीडायरेक्ट आर्टिफैक्ट; इस विषय में बाद में IdP रीडायरेक्ट विरूपण साक्ष्य प्रोफ़ाइल उदाहरण।
बेशक प्रवाह दूसरी दिशा में भी जा सकता है, यानी पहचान प्रदाता एक अर्टिफैक्ट जारी कर सकता है, और वास्तव में यह अधिक सामान्य है। उदाहरण के लिए देखें, #SP रीडायरेक्ट अर्टिफैक्ट; इस विषय में बाद में IdP रीडायरेक्ट अर्टिफैक्ट साक्ष्य प्रोफ़ाइल उदाहरण।


==== विरूपण साक्ष्य प्रारूप ====
==== अर्टिफैक्ट साक्ष्य प्रारूप ====


सामान्य तौर पर, SAML 2.0 आर्टिफैक्ट को इस तरह परिभाषित किया जाता है (SAMLBind<ref name="SAMLBind"/>):
सामान्य तौर पर, एसएएमएल 2.0 अर्टिफैक्ट को इस तरह परिभाषित किया जाता है (एसएएमएलBind<ref name="SAMLBind"/>):


   SAML_artifact:= B64 (टाइपकोड एंडपॉइंटइंडेक्स शेष आर्टिफैक्ट)
   एसएएमएल_artifact:= B64 (टाइपकोड एंडपॉइंटइंडेक्स शेष अर्टिफैक्ट)
   टाइपकोड := बाइट1बाइट2
   टाइपकोड�:= बाइट1बाइट2
   एंडपॉइंट इंडेक्स: = बाइट 1 बाइट 2
   एंडपॉइंट इंडेक्स: = बाइट 1 बाइट 2


इस प्रकार एक SAML 2.0 विरूपण साक्ष्य में तीन घटक होते हैं: एक दो-बाइट <code>TypeCode</code>, एक दो-बाइट <code>EndpointIndex</code>, और बाइट्स के मनमाने क्रम को कहा जाता है <code>RemainingArtifact</code>. जानकारी के इन तीन टुकड़ों को जोड़ा गया है और पूर्ण आर्टिफैक्ट प्राप्त करने के लिए बेस64-एन्कोडेड हैं। <code>TypeCode</code> e> विशिष्ट रूप से विरूपण साक्ष्य प्रारूप की पहचान करता है। SAML 2.0 0x0004 प्रकार के केवल एक ऐसे आर्टिफैक्ट को पूर्वनिर्धारित करता है। <code>EndpointIndex</code> e> विरूपण साक्ष्य जारीकर्ता द्वारा प्रबंधित एक विशेष विरूपण साक्ष्य समापन बिंदु का एक संदर्भ है (जो पहले उल्लेखित IdP या SP हो सकता है)। <code>RemainingArtifact</code>डी>, जो कि प्रकार की परिभाषा से निर्धारित होता है, कलाकृतियों का मांस है।
इस प्रकार एक एसएएमएल 2.0 अर्टिफैक्ट साक्ष्य में तीन घटक होते हैं: एक दो-बाइट <code>TypeCode</code>, एक दो-बाइट <code>EndpointIndex</code>, और बाइट्स के मनमाने क्रम को कहा जाता है <code>RemainingArtifact</code>. जानकारी के इन तीन टुकड़ों को जोड़ा गया है और पूर्ण अर्टिफैक्ट प्राप्त करने के लिए बेस64-एन्कोडेड हैं। <code>TypeCode</code> e> विशिष्ट रूप से अर्टिफैक्ट साक्ष्य प्रारूप की पहचान करता है। एसएएमएल 2.0 0x0004 प्रकार के केवल एक ऐसे अर्टिफैक्ट को पूर्वनिर्धारित करता है। <code>EndpointIndex</code> e> अर्टिफैक्ट साक्ष्य जारीकर्ता द्वारा प्रबंधित एक विशेष अर्टिफैक्ट साक्ष्य समापन बिंदु का एक संदर्भ है (जो पहले उल्लेखित IdP या SP हो सकता है)। <code>RemainingArtifact</code>डी>, जो कि प्रकार की परिभाषा से निर्धारित होता है, कलाकृतियों का मांस है।


0x0004 आर्टिफैक्ट प्रकार के प्रारूप को आगे निम्नानुसार परिभाषित किया गया है:
0x0004 अर्टिफैक्ट प्रकार के प्रारूप को आगे निम्नानुसार परिभाषित किया गया है:


   टाइपकोड: = 0x0004
   टाइपकोड: = 0x0004
Line 273: Line 271:
   मैसेजहैंडल: = 20-बाइट_अनुक्रम
   मैसेजहैंडल: = 20-बाइट_अनुक्रम


इस प्रकार एक प्रकार 0x0004 आर्टिफैक्ट आकार 44 बाइट्स (एन्कोडेड) का है। <code>SourceId</code> ई> बाइट्स का एक मनमाना क्रम है, हालांकि व्यवहार में, <code>SourceId</code> जारीकर्ता के entityID का SHA-1 हैश है। <code>MessageHandle</code> ई> बाइट्स का एक यादृच्छिक अनुक्रम है जो एक एसएएमएल संदेश का संदर्भ देता है कि आर्टिफैक्ट जारीकर्ता ऑन-डिमांड उत्पादन करने को तैयार है।
इस प्रकार एक प्रकार 0x0004 अर्टिफैक्ट आकार 44 बाइट्स (एन्कोडेड) का है। <code>SourceId</code> ई> बाइट्स का एक मनमाना क्रम है, हालांकि व्यवहार में, <code>SourceId</code> जारीकर्ता के entityID का SHA-1 हैश है। <code>MessageHandle</code> ई> बाइट्स का एक यादृच्छिक अनुक्रम है जो एक एसएएमएल संदेश का संदर्भ देता है कि अर्टिफैक्ट जारीकर्ता ऑन-डिमांड उत्पादन करने को तैयार है।


उदाहरण के लिए, इस हेक्स-एन्कोडेड प्रकार 0x0004 विरूपण साक्ष्य पर विचार करें:
उदाहरण के लिए, इस हेक्स-एन्कोडेड प्रकार 0x0004 अर्टिफैक्ट साक्ष्य पर विचार करें:


   00040000c878f3fd685c833eb03a3b0e1daa329d47338205e436913660e3e917549a59709fd8c91f2120222f
   00040000c878f3fd685c833eb03a3b0e1daa329d47338205e436913660e3e917549a59709fd8c91f2120222f


यदि आप बारीकी से देखते हैं, तो आप देख सकते हैं <code>TypeCode</code> (0x0004) और <code>EndpointIndex</code> (0x0000) विरूपण साक्ष्य के सामने। अगले 20 बाइट जारीकर्ता के entityID (<nowiki>https://idp.example.org/SAML2</nowiki>) के SHA-1 हैश के बाद 20 रैंडम बाइट हैं। इन 44 बाइट्स का बेस64-एन्कोडिंग वही है जो आप ऊपर #ArtifactResolveRequest उदाहरण में देखते हैं।
यदि आप बारीकी से देखते हैं, तो आप देख सकते हैं <code>TypeCode</code> (0x0004) और <code>EndpointIndex</code> (0x0000) अर्टिफैक्ट साक्ष्य के सामने। अगले 20 बाइट जारीकर्ता के entityID (<nowiki>https://idp.example.org/एसएएमएल2</nowiki>) के SHA-1 हैश के बाद 20 रैंडम बाइट हैं। इन 44 बाइट्स का बेस64-एन्कोडिंग वही है जो आप ऊपर #ArtifactResolveRequest उदाहरण में देखते हैं।


== एसएएमएल 2.0 प्रोफाइल ==
== एसएएमएल 2.0 प्रोफाइल ==


SAML 2.0 में, SAML 1.1 की तरह, प्राथमिक उपयोग मामला अभी भी वेब ब्राउज़र SSO है, लेकिन SAML 2.0 का दायरा SAML के पिछले संस्करणों की तुलना में व्यापक है, जैसा कि प्रोफ़ाइल की निम्नलिखित विस्तृत सूची में सुझाया गया है:
एसएएमएल 2.0 में, एसएएमएल 1.1 की तरह, प्राथमिक उपयोग मामला अभी भी वेब ब्राउज़र एसएसओ है, लेकिन एसएएमएल 2.0 का दायरा एसएएमएल के पिछले संस्करणों की तुलना में व्यापक है, जैसा कि प्रोफ़ाइल की निम्नलिखित विस्तृत सूची में सुझाया गया है:


* एसएसओ प्रोफाइल
* एसएसओ प्रोफाइल
Line 289: Line 287:
** उन्नत ग्राहक या प्रॉक्सी (ईसीपी) प्रोफ़ाइल
** उन्नत ग्राहक या प्रॉक्सी (ईसीपी) प्रोफ़ाइल
** #Identity_Provider_Discovery_Profile
** #Identity_Provider_Discovery_Profile
** सिंगल लॉगआउट प्रोफाइल
** एकल लॉगआउट प्रोफाइल
** नाम पहचानकर्ता प्रबंधन प्रोफ़ाइल
** नाम पहचानकर्ता प्रबंधन प्रोफ़ाइल
* विरूपण साक्ष्य संकल्प प्रोफ़ाइल
* अर्टिफैक्ट साक्ष्य संकल्प प्रोफ़ाइल
* #Assertion_Query/Request_Profile|अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल
* #Assertion_Query/Request_Profile|अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल
* नाम पहचानकर्ता मानचित्रण प्रोफ़ाइल
* नाम पहचानकर्ता मानचित्रण प्रोफ़ाइल
* SAML विशेषता प्रोफाइल
* एसएएमएल विशेषता प्रोफाइल
** मूल विशेषता प्रोफ़ाइल
** मूल विशेषता प्रोफ़ाइल
** X.500/LDAP विशेषता प्रोफ़ाइल
** X.500/LDAP विशेषता प्रोफ़ाइल
Line 301: Line 299:
** XACML विशेषता प्रोफ़ाइल
** XACML विशेषता प्रोफ़ाइल


हालाँकि समर्थित प्रोफ़ाइलों की संख्या काफी बड़ी है, प्रोफ़ाइल विनिर्देश (SAMLProf<ref name="SAMLProf"/> सरलीकृत है क्योंकि प्रत्येक प्रोफ़ाइल के बाध्यकारी पहलुओं को एक अलग बाइंडिंग विनिर्देश (SAMLBind<ref name="SAMLBind"/>).
हालाँकि समर्थित प्रोफ़ाइलों की संख्या काफी बड़ी है, प्रोफ़ाइल विनिर्देश (एसएएमएलProf<ref name="SAMLProf"/> सरलीकृत है क्योंकि प्रत्येक प्रोफ़ाइल के बाध्यकारी स्वरूपों को एक अलग बाइंडिंग विनिर्देश (एसएएमएलBind<ref name="SAMLBind"/>).


=== वेब ब्राउजर एसएसओ प्रोफाइल ===
=== वेब ब्राउजर एसएसओ प्रोफाइल ===


SAML 2.0 एक वेब ब्राउज़र SSO प्रोफ़ाइल निर्दिष्ट करता है जिसमें एक पहचान प्रदाता (IdP), एक सेवा प्रदाता (SP) और एक HTTP उपयोगकर्ता एजेंट चलाने वाला प्रमुख शामिल होता है। सेवा प्रदाता के पास चुनने के लिए चार बाइंडिंग हैं, जबकि पहचान प्रदाता के पास तीन हैं, जो बारह संभावित परिनियोजन परिदृश्यों की ओर ले जाता है। हम नीचे उन तीन परिनियोजन परिदृश्यों की रूपरेखा प्रस्तुत करते हैं।
एसएएमएल 2.0 एक वेब ब्राउज़र एसएसओ प्रोफ़ाइल निर्दिष्ट करता है जिसमें एक पहचान प्रदाता (IdP), एक सेवा प्रदाता (SP) और एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता एजेंट चलाने वाला प्रमुख सम्मिलित होता है। सेवा प्रदाता के पास चुनने के लिए चार बाइंडिंग हैं, जबकि पहचान प्रदाता के पास तीन हैं, जो बारह संभावित परिनियोजन परिदृश्यों की ओर ले जाता है। हम नीचे उन तीन परिनियोजन परिदृश्यों की रूपरेखा प्रस्तुत करते हैं।


==== एसपी पुनर्निर्देशन अनुरोध; आईडीपी पोस्ट प्रतिक्रिया ====
==== एसपी पुनर्निर्देशन अनुरोध; आईडीपी पोस्ट प्रतिक्रिया ====


यह सबसे आम परिदृश्यों में से एक है। सेवा प्रदाता HTTP-रीडायरेक्ट बाइंडिंग का उपयोग करके IdP SSO सेवा को एक SAML अनुरोध भेजता है। पहचान प्रदाता HTTP-POST बाइंडिंग का उपयोग करके SP अभिकथन उपभोक्ता सेवा को SAML प्रतिक्रिया लौटाता है।
यह सबसे आम परिदृश्यों में से एक है। सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-रीडायरेक्ट बाइंडिंग का उपयोग करके IdP एसएसओ सेवा को एक एसएएमएल अनुरोध भेजता है। पहचान प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-POST बाइंडिंग का उपयोग करके SP अभिकथन उपभोक्ता सेवा को एसएएमएल प्रतिक्रिया लौटाता है।


[[File:Saml2-browser-sso-redirect-post.png|thumb|none|700px|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (एसपी रीडायरेक्ट बाइंड/आईडीपी पोस्ट प्रतिक्रिया)]]संदेश प्रवाह सेवा प्रदाता पर एक सुरक्षित संसाधन के अनुरोध के साथ शुरू होता है।
[[File:Saml2-browser-sso-redirect-post.png|thumb|none|700px|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (एसपी रीडायरेक्ट बाइंड/आईडीपी पोस्ट प्रतिक्रिया)]]संदेश प्रवाह सेवा प्रदाता पर एक सुरक्षित संसाधन के अनुरोध के साथ शुरू होता है।
Line 315: Line 313:
1. एसपी से लक्ष्य संसाधन का अनुरोध करें
1. एसपी से लक्ष्य संसाधन का अनुरोध करें


प्रिंसिपल (एक HTTP उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:
प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>
Line 325: Line 323:
2. आईडीपी एसएसओ सेवा पर रीडायरेक्ट करें
2. आईडीपी एसएसओ सेवा पर रीडायरेक्ट करें


सेवा प्रदाता एक उपयुक्त SAMLRequest (और RelayState, यदि कोई हो) उत्पन्न करता है, फिर एक मानक [[HTTP 302]] रीडायरेक्ट का उपयोग करके ब्राउज़र को IdP SSO सेवा पर रीडायरेक्ट करता है।
सेवा प्रदाता एक उपयुक्त एसएएमएलRequest (और RelayState, यदि कोई हो) उत्पन्न करता है, फिर एक मानक [[HTTP 302|हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल 302]] रीडायरेक्ट का उपयोग करके ब्राउज़र को IdP एसएसओ सेवा पर रीडायरेक्ट करता है।


<syntaxhighlight lang="http">
<syntaxhighlight lang="http">
Line 332: Line 330:
</syntaxhighlight>
</syntaxhighlight>


  <code>RelayState</code> ई> टोकन सेवा प्रदाता पर रखी गई राज्य सूचना का एक अपारदर्शी संदर्भ है। का मूल्य <code>SAMLRequest</code> पैरामीटर एक डिफ्लेटेड, बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड मान है <code><samlp:AuthnRequest></code> तत्व:
  <code>RelayState</code> ई> टोकन सेवा प्रदाता पर रखी गई राज्य सूचना का एक अपारदर्शी संदर्भ है। का मूल्य <code>एसएएमएलRequest</code> पैरामीटर एक डिफ्लेटेड, बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड मान है <code><samlp:AuthnRequest></code> तत्व:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 348: Line 346:
   </samlp:AuthnRequest>
   </samlp:AuthnRequest>
</syntaxhighlight>
</syntaxhighlight>
SP हस्ताक्षर कुंजी का उपयोग करके SAMLRequest पर हस्ताक्षर किए जा सकते हैं। आमतौर पर, हालांकि, यह आवश्यक नहीं है।
SP चिन्ह कुंजी का उपयोग करके एसएएमएलRequest पर चिन्ह किए जा सकते हैं। सामान्य रूप से, हालांकि, यह आवश्यक नहीं है।


3. IdP पर SSO सेवा के लिए अनुरोध करें
3. IdP पर एसएसओ सेवा के लिए अनुरोध करें


उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक जीईटी अनुरोध जारी करता है:
उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक जीईटी अनुरोध जारी करता है:


<सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6>
<सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6>
GET /SAML2/SSO/रीडायरेक्ट?SAMLRequest=request&RelayState=token HTTP/1.1
GET /एसएएमएल2/एसएसओ/रीडायरेक्ट?एसएएमएलRequest=request&RelayState=token हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल/1.1
होस्ट: idp.example.org
होस्ट: idp.example.org
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


जहां के मूल्य <code>SAMLRequest</code> और <code>RelayState</code> पैरामीटर वही हैं जो रीडायरेक्ट में दिए गए हैं. पहचान प्रदाता पर SSO सेवा प्रक्रिया करती है <code><samlp:AuthnRequest></code> तत्व (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता को किसी भी तंत्र (विवरण छोड़े गए) के साथ पहचानता है।
जहां के मूल्य <code>एसएएमएलRequest</code> और <code>RelayState</code> पैरामीटर वही हैं जो रीडायरेक्ट में दिए गए हैं. पहचान प्रदाता पर एसएसओ सेवा प्रक्रिया करती है <code><samlp:AuthnRequest></code> तत्व (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता को किसी भी तंत्र (विवरण छोड़े गए) के साथ पहचानता है।


4. एक्सएचटीएमएल फॉर्म के साथ प्रतिक्रिया दें
4. एक्सएचटीएमएल फॉर्म के साथ प्रतिक्रिया दें
Line 366: Line 364:


<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>
<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>
   <फॉर्म विधि = पोस्ट कार्रवाई = https://sp.example.com/SAML2/SSO/POST ...>
   <फॉर्म विधि = पोस्ट कार्रवाई = [https://sp.example.com/SAML2/SSO/POST https://sp.example.com/एसएएमएल2/एसएसओ/POST] ...>
     <इनपुट प्रकार = छिपा हुआ नाम = SAMLResponse मान = प्रतिक्रिया />
     <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलResponse मान = प्रतिक्रिया />
     <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
     <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
     ...
     ...
Line 374: Line 372:
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


का मूल्य <code>RelayState</code> पैरामीटर को चरण 3 से संरक्षित किया गया है। का मान <code>SAMLResponse</code> पैरामीटर निम्न का बेस 64 एन्कोडिंग है <code><samlp:Response></code> तत्व:
का मूल्य <code>RelayState</code> पैरामीटर को चरण 3 से संरक्षित किया गया है। का मान <code>एसएएमएलResponse</code> पैरामीटर निम्न का बेस 64 एन्कोडिंग है <code><samlp:Response></code> तत्व:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 438: Line 436:
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
होस्ट: sp.example.com
होस्ट: sp.example.com
सामग्री-प्रकार: एप्लिकेशन/x-www-form-urlencoded
वस्तु-प्रकार: एप्लिकेशन/x-www-form-urlencoded
सामग्री-लंबाई: एनएनएन
वस्तु-लंबाई: एनएनएन
   
   
SAMLResponse=प्रतिक्रिया&RelayState=token
एसएएमएलResponse=प्रतिक्रिया&RelayState=token
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


जहां के मूल्य <code>SAMLResponse</code> और <code>RelayState</code> पैरामीटर चरण 4 पर XHTML फ़ॉर्म से लिए गए हैं।
जहां के मूल्य <code>एसएएमएलResponse</code> और <code>RelayState</code> पैरामीटर चरण 4 पर XHTML फ़ॉर्म से लिए गए हैं।


6. लक्ष्य संसाधन पर पुनर्निर्देशित करें
6. लक्ष्य संसाधन पर पुनर्निर्देशित करें
Line 462: Line 460:
==== सपा पोस्ट अनुरोध; आईडीपी पोस्ट प्रतिक्रिया ====
==== सपा पोस्ट अनुरोध; आईडीपी पोस्ट प्रतिक्रिया ====


यह SAML 2.0 वेब ब्राउज़र SSO प्रोफ़ाइल (SAMLProf<ref name="SAMLProf"/> जहाँ सेवा प्रदाता (SP) और पहचान प्रदाता (IdP) दोनों HTTP POST बाइंडिंग का उपयोग करते हैं।
यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल (एसएएमएलProf<ref name="SAMLProf"/> जहाँ सेवा प्रदाता (SP) और पहचान प्रदाता (IdP) दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST बाइंडिंग का उपयोग करते हैं।


[[File:Saml2-browser-sso-post.gif|frame|center|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (पोस्ट)]]संदेश प्रवाह एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ शुरू होता है।
[[File:Saml2-browser-sso-post.gif|frame|center|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (पोस्ट)]]संदेश प्रवाह एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ शुरू होता है।
Line 468: Line 466:
1. एसपी से लक्ष्य संसाधन का अनुरोध करें
1. एसपी से लक्ष्य संसाधन का अनुरोध करें


प्रिंसिपल (एक HTTP उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:
प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>
Line 478: Line 476:
सेवा प्रदाता XHTML फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करता है:
सेवा प्रदाता XHTML फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करता है:
<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>
<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>
   <फॉर्म विधि = पोस्ट एक्शन = https://idp.example.org/SAML2/SSO/POST ...>
   <फॉर्म विधि = पोस्ट एक्शन = [https://idp.example.org/SAML2/SSO/POST https://idp.example.org/एसएएमएल2/एसएसओ/POST] ...>
     <इनपुट प्रकार = छिपा हुआ नाम = SAMLRequest मान = अनुरोध />
     <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलRequest मान = अनुरोध />
     <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
     <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
     ...
     ...
     <इनपुट प्रकार = मूल्य जमा करें = जमा करें />
     <इनपुट प्रकार = मूल्य जमा करें = जमा करें />
   </रूप>
   </रूप>
</वाक्यविन्यास हाइलाइट> <code>RelayState</code> ई> टोकन सेवा प्रदाता पर रखी गई राज्य सूचना का एक अपारदर्शी संदर्भ है। का मूल्य <code>SAMLRequest</code> पैरामीटर निम्न का बेस 64 एन्कोडिंग है <code><samlp:AuthnRequest></code> तत्व:
</वाक्यविन्यास हाइलाइट> <code>RelayState</code> ई> टोकन सेवा प्रदाता पर रखी गई राज्य सूचना का एक अपारदर्शी संदर्भ है। का मूल्य <code>एसएएमएलRequest</code> पैरामीटर निम्न का बेस 64 एन्कोडिंग है <code><samlp:AuthnRequest></code> तत्व:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:AuthnRequest
   <samlp:AuthnRequest
Line 501: Line 499:
से पहले <code><samlp:AuthnRequest></code> तत्व एक्सएचटीएमएल फॉर्म में डाला गया है, यह पहले बेस 64-एन्कोडेड है।
से पहले <code><samlp:AuthnRequest></code> तत्व एक्सएचटीएमएल फॉर्म में डाला गया है, यह पहले बेस 64-एन्कोडेड है।


3. IdP पर SSO सेवा के लिए अनुरोध करें
3. IdP पर एसएसओ सेवा के लिए अनुरोध करें


उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक पोस्ट अनुरोध जारी करता है:
उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक पोस्ट अनुरोध जारी करता है:
Line 507: Line 505:
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
होस्ट: idp.example.org
होस्ट: idp.example.org
सामग्री-प्रकार: एप्लिकेशन/x-www-form-urlencoded
वस्तु-प्रकार: एप्लिकेशन/x-www-form-urlencoded
सामग्री-लंबाई: एनएनएन
वस्तु-लंबाई: एनएनएन


SAMLRequest=request&RelayState=token
एसएएमएलRequest=request&RelayState=token
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>
जहां के मूल्य <code>SAMLRequest</code> और <code>RelayState</code> पैरामीटर चरण 2 पर XHTML प्रपत्र से लिए गए हैं। SSO सेवा प्रक्रिया करती है <code><samlp:AuthnRequest></code> तत्व (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता की पहचान करता है (विवरण छोड़ा गया)।
जहां के मूल्य <code>एसएएमएलRequest</code> और <code>RelayState</code> पैरामीटर चरण 2 पर XHTML प्रपत्र से लिए गए हैं। एसएसओ सेवा प्रक्रिया करती है <code><samlp:AuthnRequest></code> तत्व (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता की पहचान करता है (विवरण छोड़ा गया)।


4. एक्सएचटीएमएल फॉर्म के साथ प्रतिक्रिया दें
4. एक्सएचटीएमएल फॉर्म के साथ प्रतिक्रिया दें
Line 518: Line 516:
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>
<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>
   <फॉर्म विधि = पोस्ट कार्रवाई = https://sp.example.com/SAML2/SSO/POST ...>
   <फॉर्म विधि = पोस्ट कार्रवाई = [https://sp.example.com/SAML2/SSO/POST https://sp.example.com/एसएएमएल2/एसएसओ/POST] ...>
     <इनपुट प्रकार = छिपा हुआ नाम = SAMLResponse मान = प्रतिक्रिया />
     <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलResponse मान = प्रतिक्रिया />
     <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
     <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
     ...
     ...
Line 525: Line 523:
   </रूप>
   </रूप>
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>
का मूल्य <code>RelayState</code> पैरामीटर को चरण 3 से संरक्षित किया गया है। का मान <code>SAMLResponse</code> पैरामीटर निम्न का बेस 64 एन्कोडिंग है <code><samlp:Response></code> तत्व:
का मूल्य <code>RelayState</code> पैरामीटर को चरण 3 से संरक्षित किया गया है। का मान <code>एसएएमएलResponse</code> पैरामीटर निम्न का बेस 64 एन्कोडिंग है <code><samlp:Response></code> तत्व:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:Response
   <samlp:Response
Line 587: Line 585:
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
होस्ट: sp.example.com
होस्ट: sp.example.com
सामग्री-प्रकार: एप्लिकेशन/x-www-form-urlencoded
वस्तु-प्रकार: एप्लिकेशन/x-www-form-urlencoded
सामग्री-लंबाई: एनएनएन
वस्तु-लंबाई: एनएनएन
   
   
SAMLResponse=प्रतिक्रिया&RelayState=token
एसएएमएलResponse=प्रतिक्रिया&RelayState=token
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>
जहां के मूल्य <code>SAMLResponse</code> और <code>RelayState</code> पैरामीटर चरण 4 पर XHTML फ़ॉर्म से लिए गए हैं।
जहां के मूल्य <code>एसएएमएलResponse</code> और <code>RelayState</code> पैरामीटर चरण 4 पर XHTML फ़ॉर्म से लिए गए हैं।


6. लक्ष्य संसाधन पर पुनर्निर्देशित करें
6. लक्ष्य संसाधन पर पुनर्निर्देशित करें
Line 608: Line 606:
चूंकि एक सुरक्षा संदर्भ मौजूद है, सेवा प्रदाता संसाधन को उपयोगकर्ता एजेंट को लौटाता है।
चूंकि एक सुरक्षा संदर्भ मौजूद है, सेवा प्रदाता संसाधन को उपयोगकर्ता एजेंट को लौटाता है।


==== एसपी रीडायरेक्ट आर्टिफैक्ट; IdP अनुप्रेषित विरूपण साक्ष्य ==
==== एसपी रीडायरेक्ट अर्टिफैक्ट; IdP अनुप्रेषित अर्टिफैक्ट साक्ष्य ==


यह SAML 2.0 वेब ब्राउज़र SSO प्रोफ़ाइल (SAMLProf<ref name="SAMLProf"/> जहां सेवा प्रदाता (SP) और पहचान प्रदाता (IdP) दोनों HTTP आर्टिफैक्ट बाइंडिंग का उपयोग करते हैं। दोनों कलाकृतियों को HTTP GET के माध्यम से उनके संबंधित समापन बिंदुओं तक पहुँचाया जाता है।
यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल (एसएएमएलProf<ref name="SAMLProf"/> जहां सेवा प्रदाता (SP) और पहचान प्रदाता (IdP) दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का उपयोग करते हैं। दोनों कलाकृतियों को हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल GET के माध्यम से उनके संबंधित समापन बिंदुओं तक पहुँचाया जाता है।


[[File:Saml2-browser-sso-artifact.gif|frame|center|SAML 2.0 वेब ब्राउज़र SSO (विरूपण साक्ष्य)]]एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ संदेश प्रवाह शुरू होता है:
[[File:Saml2-browser-sso-artifact.gif|frame|center|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (अर्टिफैक्ट साक्ष्य)]]एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ संदेश प्रवाह शुरू होता है:


1. एसपी से लक्ष्य संसाधन का अनुरोध करें
1. एसपी से लक्ष्य संसाधन का अनुरोध करें


प्रिंसिपल (एक HTTP उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:
प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>
Line 622: Line 620:
सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से मौजूद है, तो चरण 2-11 को छोड़ दें।
सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से मौजूद है, तो चरण 2-11 को छोड़ दें।


2. IdP पर सिंगल साइन-ऑन (SSO) सेवा पर रीडायरेक्ट करें
2. IdP पर एकल साइन-ऑन (एसएसओ) सेवा पर रीडायरेक्ट करें


सेवा प्रदाता पहचान प्रदाता पर उपयोगकर्ता एजेंट को एकल साइन-ऑन (SSO) सेवा पर पुनर्निर्देशित करता है। ए <code>RelayState</code> पैरामीटर और ए <code>SAMLart</code> रीडायरेक्ट URL में पैरामीटर जोड़े जाते हैं।
सेवा प्रदाता पहचान प्रदाता पर उपयोगकर्ता एजेंट को एकल साइन-ऑन (एसएसओ) सेवा पर पुनर्निर्देशित करता है। ए <code>RelayState</code> पैरामीटर और ए <code>एसएएमएलart</code> रीडायरेक्ट URL में पैरामीटर जोड़े जाते हैं।


3. IdP पर SSO सेवा के लिए अनुरोध करें
3. IdP पर एसएसओ सेवा के लिए अनुरोध करें


उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा का अनुरोध करता है:
उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा का अनुरोध करता है:


   <nowiki>https://idp.example.org/SAML2/SSO/Artifact</nowiki>?SAMLart=''artifact_1''&RelayState=''token''
   <nowiki>https://idp.example.org/एसएएमएल2/एसएसओ/Artifact?एसएएमएलart=</nowiki>''artifact_1''&RelayState=''token''


कहाँ <code>''token''</code> सेवा प्रदाता और पर रखी गई राज्य की जानकारी का एक अपारदर्शी संदर्भ है <code>''artifact_1''</code> एक SAML विरूपण साक्ष्य है, दोनों चरण 2 पर जारी किए गए हैं।
कहाँ <code>''token''</code> सेवा प्रदाता और पर रखी गई राज्य की जानकारी का एक अपारदर्शी संदर्भ है <code>''artifact_1''</code> एक एसएएमएल अर्टिफैक्ट साक्ष्य है, दोनों चरण 2 पर जारी किए गए हैं।


4. एसपी में विरूपण साक्ष्य समाधान सेवा का अनुरोध करें
4. एसपी में अर्टिफैक्ट साक्ष्य समाधान सेवा का अनुरोध करें


एसएसओ सेवा एक भेजकर आर्टिफैक्ट को संदर्भित करती है <code><samlp:ArtifactResolve></code> सेवा प्रदाता पर विरूपण साक्ष्य समाधान सेवा के लिए SAML SOAP संदेश के लिए बाध्य तत्व:
एसएसओ सेवा एक भेजकर अर्टिफैक्ट को संदर्भित करती है <code><samlp:ArtifactResolve></code> सेवा प्रदाता पर अर्टिफैक्ट साक्ष्य समाधान सेवा के लिए एसएएमएल SOAP संदेश के लिए बाध्य तत्व:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:ArtifactResolve
   <samlp:ArtifactResolve
Line 652: Line 650:
   </samlp:ArtifactResolve>
   </samlp:ArtifactResolve>
</syntaxhighlight>
</syntaxhighlight>
जहां का मूल्य <code><samlp:Artifact></code> तत्व चरण 3 में प्रेषित SAML विरूपण साक्ष्य है।
जहां का मूल्य <code><samlp:Artifact></code> तत्व चरण 3 में प्रेषित एसएएमएल अर्टिफैक्ट साक्ष्य है।


5. SAML प्रमाणीकरण अनुरोध के साथ प्रतिक्रिया दें
5. एसएएमएल प्रमाणीकरण अनुरोध के साथ प्रतिक्रिया दें


सर्विस प्रोवाइडर की आर्टिफैक्ट रेजोल्यूशन सर्विस रिटर्न करती है <code><samlp:ArtifactResponse></code> तत्व (एक युक्त <code><samlp:AuthnRequest></code> तत्व) पहचान प्रदाता पर एसएसओ सेवा के लिए एक SAML SOAP संदेश के लिए बाध्य:
सर्विस प्रोवाइडर की अर्टिफैक्ट रेजोल्यूशन सर्विस रिटर्न करती है <code><samlp:ArtifactResponse></code> तत्व (एक युक्त <code><samlp:AuthnRequest></code> तत्व) पहचान प्रदाता पर एसएसओ सेवा के लिए एक एसएएमएल SOAP संदेश के लिए बाध्य:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:ArtifactResponse
   <samlp:ArtifactResponse
Line 687: Line 685:
   </samlp:ArtifactResponse>
   </samlp:ArtifactResponse>
</syntaxhighlight>
</syntaxhighlight>
SSO सेवा प्रक्रिया करती है <code><samlp:AuthnRequest></code> तत्व और एक सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता की पहचान करता है (विवरण छोड़ा गया)।
एसएसओ सेवा प्रक्रिया करती है <code><samlp:AuthnRequest></code> तत्व और एक सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता की पहचान करता है (विवरण छोड़ा गया)।


6. अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करें
6. अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करें


पहचान प्रदाता पर SSO सेवा उपयोगकर्ता एजेंट को सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करती है। पूर्व <code>RelayState</code> पैरामीटर और एक नया <code>SAMLart</code> रीडायरेक्ट URL में पैरामीटर जोड़े जाते हैं।
पहचान प्रदाता पर एसएसओ सेवा उपयोगकर्ता एजेंट को सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा पर पुनर्निर्देशित करती है। पूर्व <code>RelayState</code> पैरामीटर और एक नया <code>एसएएमएलart</code> रीडायरेक्ट URL में पैरामीटर जोड़े जाते हैं।


7. एसपी में अभिकथन उपभोक्ता सेवा का अनुरोध करें
7. एसपी में अभिकथन उपभोक्ता सेवा का अनुरोध करें
Line 697: Line 695:
उपयोगकर्ता एजेंट सेवा प्रदाता पर दावा उपभोक्ता सेवा का अनुरोध करता है:
उपयोगकर्ता एजेंट सेवा प्रदाता पर दावा उपभोक्ता सेवा का अनुरोध करता है:


   <nowiki>https://sp.example.com/SAML2/SSO/Artifact</nowiki>?SAMLart=''artifact_2''&RelayState=''token''
   <nowiki>https://sp.example.com/एसएएमएल2/एसएसओ/Artifact?एसएएमएलart=</nowiki>''artifact_2''&RelayState=''token''


कहाँ <code>''token''</code> चरण 3 से टोकन मान है और <code>''artifact_2''</code> चरण 6 में जारी किया गया SAML विरूपण साक्ष्य है।
कहाँ <code>''token''</code> चरण 3 से टोकन मान है और <code>''artifact_2''</code> चरण 6 में जारी किया गया एसएएमएल अर्टिफैक्ट साक्ष्य है।


8. IdP पर विरूपण साक्ष्य समाधान सेवा का अनुरोध करें
8. IdP पर अर्टिफैक्ट साक्ष्य समाधान सेवा का अनुरोध करें


अभिकथन उपभोक्ता सेवा आर्टिफैक्ट को एक भेजकर डिरेफेरेंस करती है <code><samlp:ArtifactResolve></code> पहचान प्रदाता पर विरूपण साक्ष्य समाधान सेवा के लिए SAML SOAP संदेश के लिए बाध्य तत्व:
अभिकथन उपभोक्ता सेवा अर्टिफैक्ट को एक भेजकर डिरेफेरेंस करती है <code><samlp:ArtifactResolve></code> पहचान प्रदाता पर अर्टिफैक्ट साक्ष्य समाधान सेवा के लिए एसएएमएल SOAP संदेश के लिए बाध्य तत्व:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:ArtifactResolve
   <samlp:ArtifactResolve
Line 719: Line 717:
   </samlp:ArtifactResolve>
   </samlp:ArtifactResolve>
</syntaxhighlight>
</syntaxhighlight>
जहां का मूल्य <code><samlp:Artifact></code> तत्व चरण 7 पर प्रेषित SAML विरूपण साक्ष्य है।
जहां का मूल्य <code><samlp:Artifact></code> तत्व चरण 7 पर प्रेषित एसएएमएल अर्टिफैक्ट साक्ष्य है।


9. SAML अभिकथन के साथ प्रतिक्रिया दें
9. एसएएमएल अभिकथन के साथ प्रतिक्रिया दें


आइडेंटिटी प्रोवाइडर पर आर्टिफैक्ट रेजोल्यूशन सर्विस रिटर्न करती है <code><samlp:ArtifactResponse></code> तत्व (एक युक्त <code><samlp:Response></code> तत्व) सेवा प्रदाता पर दावा उपभोक्ता सेवा के लिए एक SAML SOAP संदेश के लिए बाध्य है:
आइडेंटिटी प्रोवाइडर पर अर्टिफैक्ट रेजोल्यूशन सर्विस रिटर्न करती है <code><samlp:ArtifactResponse></code> तत्व (एक युक्त <code><samlp:Response></code> तत्व) सेवा प्रदाता पर दावा उपभोक्ता सेवा के लिए एक एसएएमएल SOAP संदेश के लिए बाध्य है:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:ArtifactResponse
   <samlp:ArtifactResponse
Line 809: Line 807:
=== पहचान प्रदाता डिस्कवरी प्रोफ़ाइल ===
=== पहचान प्रदाता डिस्कवरी प्रोफ़ाइल ===


SAML 2.0 आइडेंटिटी प्रोवाइडर डिस्कवरी प्रोफ़ाइल में नीचे दी गई अवधारणाएं शामिल हैं:
एसएएमएल 2.0 आइडेंटिटी प्रोवाइडर डिस्कवरी प्रोफ़ाइल में नीचे दी गई अवधारणाएं सम्मिलित हैं:


* 'आम डोमेन'
* 'आम डोमेन'
Line 818: Line 816:
सामान्य डोमेन के एक काल्पनिक उदाहरण के रूप में, मान लें कि उदाहरण यूके (example.co.uk) और उदाहरण Deutschland (example.de) आभासी संगठन उदाहरण ग्लोबल एलायंस (example.com) से संबंधित हैं। इस उदाहरण में, 'example.com' डोमेन सामान्य डोमेन है। उदाहरण यूके और उदाहरण Deutschland दोनों की इस डोमेन में मौजूदगी है (uk.example.com और de.example.com, सम्मान)।
सामान्य डोमेन के एक काल्पनिक उदाहरण के रूप में, मान लें कि उदाहरण यूके (example.co.uk) और उदाहरण Deutschland (example.de) आभासी संगठन उदाहरण ग्लोबल एलायंस (example.com) से संबंधित हैं। इस उदाहरण में, 'example.com' डोमेन सामान्य डोमेन है। उदाहरण यूके और उदाहरण Deutschland दोनों की इस डोमेन में मौजूदगी है (uk.example.com और de.example.com, सम्मान)।


सामान्य डोमेन कुकी एक सुरक्षित ब्राउज़र कुकी है जिसका दायरा सामान्य डोमेन तक सीमित है। प्रत्येक ब्राउज़र उपयोगकर्ता के लिए, यह कुकी हाल ही में विज़िट किए गए IdPs की एक इतिहास सूची संग्रहीत करती है। कुकी का नाम और मान IdP डिस्कवरी प्रोफ़ाइल (SAMLProf<ref name="SAMLProf"/>).
सामान्य डोमेन कुकी एक सुरक्षित ब्राउज़र कुकी है जिसका दायरा सामान्य डोमेन तक सीमित है। प्रत्येक ब्राउज़र उपयोगकर्ता के लिए, यह कुकी हाल ही में विज़िट किए गए IdPs की एक इतिहास सूची संग्रहीत करती है। कुकी का नाम और मान IdP डिस्कवरी प्रोफ़ाइल (एसएएमएलProf<ref name="SAMLProf"/>).


प्रमाणीकरण के एक सफल कार्य के बाद, आईडीपी सामान्य डोमेन कुकी लेखन सेवा का अनुरोध करता है। यह सेवा IdP के विशिष्ट पहचानकर्ता को सामान्य डोमेन कुकी में जोड़ती है। एसपी, जब इसे एक संरक्षित संसाधन के लिए एक अप्रमाणित अनुरोध प्राप्त होता है, तो सामान्य डोमेन कुकी रीडिंग सर्विस से अनुरोध करता है कि वह ब्राउजर उपयोगकर्ता के सबसे हाल ही में उपयोग किए गए आईडीपी की खोज करे।
प्रमाणीकरण के एक सफल कार्य के बाद, आईडीपी सामान्य डोमेन कुकी लेखन सेवा का अनुरोध करता है। यह सेवा IdP के विशिष्ट पहचानकर्ता को सामान्य डोमेन कुकी में जोड़ती है। एसपी, जब इसे एक संरक्षित संसाधन के लिए एक अप्रमाणित अनुरोध प्राप्त होता है, तो सामान्य डोमेन कुकी रीडिंग सर्विस से अनुरोध करता है कि वह ब्राउजर उपयोगकर्ता के सबसे हाल ही में उपयोग किए गए आईडीपी की खोज करे।
Line 824: Line 822:
=== अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल ===
=== अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल ===


अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल एक सामान्य प्रोफ़ाइल है जो निम्नलिखित SAML 2.0 तत्वों का उपयोग करके कई प्रकार के तथाकथित प्रश्नों को समायोजित करती है:
अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल एक सामान्य प्रोफ़ाइल है जो निम्नलिखित एसएएमएल 2.0 तत्वों का उपयोग करके कई प्रकार के तथाकथित प्रश्नों को समायोजित करती है:


* द <code><samlp:AssertionIDRequest></code> एलिमेंट, जिसका उपयोग उसके विशिष्ट पहचानकर्ता (<code>ID</code>)
* द <code><samlp:AssertionIDRequest></code> एलिमेंट, जिसका उपयोग उसके विशिष्ट पहचानकर्ता (<code>ID</code>)
* द <code><samlp:SubjectQuery></code> तत्व, जो एक सार विस्तार बिंदु है जो नए विषय-आधारित SAML प्रश्नों को परिभाषित करने की अनुमति देता है
* द <code><samlp:SubjectQuery></code> तत्व, जो एक सार विस्तार बिंदु है जो नए विषय-आधारित एसएएमएल प्रश्नों को परिभाषित करने की अनुमति देता है
* द <code><samlp:AuthnQuery></code> तत्व, जिसका उपयोग प्रमाणीकरण प्राधिकरण से किसी दिए गए विषय के बारे में मौजूदा प्रमाणीकरण दावे का अनुरोध करने के लिए किया जाता है
* द <code><samlp:AuthnQuery></code> तत्व, जिसका उपयोग प्रमाणीकरण प्राधिकरण से किसी दिए गए विषय के बारे में मौजूदा प्रमाणीकरण दावे का अनुरोध करने के लिए किया जाता है
* द <code><samlp:AttributeQuery></code> तत्व, जिसका उपयोग किसी विशेषता प्राधिकरण से किसी दिए गए विषय के बारे में विशेषताओं का अनुरोध करने के लिए किया जाता है
* द <code><samlp:AttributeQuery></code> तत्व, जिसका उपयोग किसी विशेषता प्राधिकरण से किसी दिए गए विषय के बारे में विशेषताओं का अनुरोध करने के लिए किया जाता है
* द <code><samlp:AuthzDecisionQuery></code> तत्व, जिसका उपयोग किसी विश्वसनीय तृतीय पक्ष से प्राधिकरण निर्णय का अनुरोध करने के लिए किया जाता है
* द <code><samlp:AuthzDecisionQuery></code> तत्व, जिसका उपयोग किसी विश्वसनीय तृतीय पक्ष से प्राधिकरण निर्णय का अनुरोध करने के लिए किया जाता है


SAML SOAP बाइंडिंग का उपयोग अक्सर प्रश्नों के संयोजन में किया जाता है।
एसएएमएल SOAP बाइंडिंग का उपयोग अक्सर प्रश्नों के संयोजन में किया जाता है।


==== SAML विशेषता क्वेरी ====
==== एसएएमएल विशेषता क्वेरी ====


विशेषता क्वेरी शायद SAML क्वेरी का सबसे महत्वपूर्ण प्रकार है। अक्सर एक अनुरोधकर्ता, प्रिंसिपल की ओर से कार्य करता है, विशेषताओं के लिए एक पहचान प्रदाता से पूछताछ करता है। नीचे हम एक प्रिंसिपल द्वारा सीधे जारी किए गए प्रश्न का उदाहरण देते हैं:
विशेषता क्वेरी शायद एसएएमएल क्वेरी का सबसे महत्वपूर्ण प्रकार है। अक्सर एक अनुरोधकर्ता, प्रिंसिपल की ओर से कार्य करता है, विशेषताओं के लिए एक पहचान प्रदाता से पूछताछ करता है। नीचे हम एक प्रिंसिपल द्वारा सीधे जारी किए गए प्रश्न का उदाहरण देते हैं:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:AttributeQuery
   <samlp:AttributeQuery
Line 945: Line 943:
   </saml:Assertion>
   </saml:Assertion>
</syntaxhighlight>
</syntaxhighlight>
पहले दिखाए गए #BearerAssertion के विपरीत, इस अभिकथन का जीवनकाल X.509 प्रमाणपत्र के जीवनकाल के अनुरूप होता है जिसका उपयोग प्रिंसिपल पहचान प्रदाता को प्रमाणित करने के लिए करता है। इसके अलावा, चूंकि अभिकथन पर हस्ताक्षर किए गए हैं, इसलिए उपयोगकर्ता इस अभिकथन को एक निर्भर पक्ष को धकेल सकता है, और जब तक उपयोगकर्ता संबंधित निजी कुंजी (इसलिए नाम धारक-की-कुंजी) का अधिकार साबित कर सकता है, निर्भर पक्ष को आश्वस्त किया जा सकता है कि दावा प्रामाणिक है।
पहले दिखाए गए #BearerAssertion के विपरीत, इस अभिकथन का जीवनकाल X.509 प्रमाणपत्र के जीवनकाल के अनुरूप होता है जिसका उपयोग प्रिंसिपल पहचान प्रदाता को प्रमाणित करने के लिए करता है। इसके अलावा, चूंकि अभिकथन पर चिन्ह किए गए हैं, इसलिए उपयोगकर्ता इस अभिकथन को एक निर्भर पक्ष को धकेल सकता है, और जब तक उपयोगकर्ता संबंधित निजी कुंजी (इसलिए नाम धारक-की-कुंजी) का अधिकार साबित कर सकता है, निर्भर पक्ष को आश्वस्त किया जा सकता है कि दावा प्रामाणिक है।


== एसएएमएल 2.0 मेटाडेटा ==
== एसएएमएल 2.0 मेटाडेटा ==


वस्तुतः, मेटाडेटा वह है जो SAML को काम करता है (या अच्छी तरह से काम करता है)। मेटाडेटा के कुछ महत्वपूर्ण उपयोगों में शामिल हैं:
वस्तुतः, मेटाडेटा वह है जो एसएएमएल को काम करता है (या अच्छी तरह से काम करता है)। मेटाडेटा के कुछ महत्वपूर्ण उपयोगों में सम्मिलित हैं:


* एक सेवा प्रदाता एक संचारित करने के लिए तैयार करता है <code><samlp:AuthnRequest></code> ब्राउज़र के माध्यम से एक पहचान प्रदाता के लिए तत्व। सेवा प्रदाता कैसे जानता है कि पहचान प्रदाता प्रामाणिक है न कि कोई दुष्ट पहचान प्रदाता उपयोगकर्ता के पासवर्ड को [[फ़िशिंग]] करने का प्रयास कर रहा है? प्रमाणीकरण अनुरोध जारी करने से पहले सेवा प्रदाता अपने विश्वसनीय पहचान प्रदाताओं की सूची <strong>मेटाडेटा में</strong> से परामर्श करता है।
* एक सेवा प्रदाता एक संचारित करने के लिए तैयार करता है <code><samlp:AuthnRequest></code> ब्राउज़र के माध्यम से एक पहचान प्रदाता के लिए तत्व। सेवा प्रदाता कैसे जानता है कि पहचान प्रदाता प्रामाणिक है न कि कोई दुष्ट पहचान प्रदाता उपयोगकर्ता के पासवर्ड को [[फ़िशिंग]] करने का प्रयास कर रहा है? प्रमाणीकरण अनुरोध जारी करने से पहले सेवा प्रदाता अपने विश्वसनीय पहचान प्रदाताओं की सूची <strong>मेटाडेटा में</strong> से परामर्श करता है।
* पिछले परिदृश्य में, सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण अनुरोध के साथ उपयोगकर्ता को कहाँ भेजा जाए? सेवा प्रदाता <strong>मेटाडेटा में</strong> विश्वसनीय पहचान प्रदाता के पूर्व-व्यवस्थित एंडपॉइंट स्थान की तलाश करता है।
* पिछले परिदृश्य में, सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण अनुरोध के साथ उपयोगकर्ता को कहाँ भेजा जाए? सेवा प्रदाता <strong>मेटाडेटा में</strong> विश्वसनीय पहचान प्रदाता के पूर्व-व्यवस्थित एंडपॉइंट स्थान की तलाश करता है।
* एक पहचान प्रदाता एक प्राप्त करता है <code><samlp:AuthnRequest></code> ब्राउज़र के माध्यम से एक सेवा प्रदाता से तत्व। पहचान प्रदाता कैसे जानता है कि सेवा प्रदाता प्रामाणिक है और उपयोगकर्ता के बारे में व्यक्तिगत रूप से पहचाने जाने योग्य जानकारी की कटाई करने की कोशिश कर रहे कुछ बुरे सेवा प्रदाता नहीं हैं? प्रमाणीकरण प्रतिक्रिया जारी करने से पहले पहचान प्रदाता <strong>मेटाडेटा में</strong> अपने विश्वसनीय सेवा प्रदाताओं की सूची से परामर्श करता है।
* एक पहचान प्रदाता एक प्राप्त करता है <code><samlp:AuthnRequest></code> ब्राउज़र के माध्यम से एक सेवा प्रदाता से तत्व। पहचान प्रदाता कैसे जानता है कि सेवा प्रदाता प्रामाणिक है और उपयोगकर्ता के बारे में व्यक्तिगत रूप से पहचाने जाने योग्य जानकारी की कटाई करने की कोशिश कर रहे कुछ बुरे सेवा प्रदाता नहीं हैं? प्रमाणीकरण प्रतिक्रिया जारी करने से पहले पहचान प्रदाता <strong>मेटाडेटा में</strong> अपने विश्वसनीय सेवा प्रदाताओं की सूची से परामर्श करता है।
* पिछले परिदृश्य में, पहचान प्रदाता SAML अभिकथन को कैसे एन्क्रिप्ट करता है ताकि विश्वसनीय सेवा प्रदाता (और केवल विश्वसनीय सेवा प्रदाता) अभिकथन को डिक्रिप्ट कर सके। पहचान प्रदाता अभिकथन को एन्क्रिप्ट करने के लिए <strong>मेटाडेटा में</strong> सेवा प्रदाता के एन्क्रिप्शन प्रमाणपत्र का उपयोग करता है।
* पिछले परिदृश्य में, पहचान प्रदाता एसएएमएल अभिकथन को कैसे एन्क्रिप्ट करता है ताकि विश्वसनीय सेवा प्रदाता (और केवल विश्वसनीय सेवा प्रदाता) अभिकथन को डिक्रिप्ट कर सके। पहचान प्रदाता अभिकथन को एन्क्रिप्ट करने के लिए <strong>मेटाडेटा में</strong> सेवा प्रदाता के एन्क्रिप्शन प्रमाणपत्र का उपयोग करता है।
* पिछले परिदृश्य को जारी रखते हुए, पहचान प्रदाता कैसे जानता है कि उपयोगकर्ता को प्रमाणीकरण प्रतिक्रिया के साथ कहां भेजा जाए? पहचान प्रदाता <strong>मेटाडेटा में</strong> विश्वसनीय सेवा प्रदाता के पूर्व-व्यवस्थित एंडपॉइंट स्थान की तलाश करता है।
* पिछले परिदृश्य को जारी रखते हुए, पहचान प्रदाता कैसे जानता है कि उपयोगकर्ता को प्रमाणीकरण प्रतिक्रिया के साथ कहां भेजा जाए? पहचान प्रदाता <strong>मेटाडेटा में</strong> विश्वसनीय सेवा प्रदाता के पूर्व-व्यवस्थित एंडपॉइंट स्थान की तलाश करता है।
* सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण प्रतिक्रिया एक विश्वसनीय पहचान प्रदाता से आई है? सेवा प्रदाता <strong>मेटाडेटा से</strong> पहचान प्रदाता की सार्वजनिक कुंजी का उपयोग करके अभिकथन पर हस्ताक्षर की पुष्टि करता है।
* सेवा प्रदाता कैसे जानता है कि प्रमाणीकरण प्रतिक्रिया एक विश्वसनीय पहचान प्रदाता से आई है? सेवा प्रदाता <strong>मेटाडेटा से</strong> पहचान प्रदाता की सार्वजनिक कुंजी का उपयोग करके अभिकथन पर चिन्ह की पुष्टि करता है।
* सेवा प्रदाता को यह कैसे पता चलता है कि विश्वसनीय पहचान प्रदाता से प्राप्त आर्टिफैक्ट का समाधान कहां करना है? सेवा प्रदाता <strong>मेटाडेटा से</strong> पहचान प्रदाता की विरूपण साक्ष्य समाधान सेवा के पूर्व-व्यवस्थित एंडपॉइंट स्थान को देखता है।
* सेवा प्रदाता को यह कैसे पता चलता है कि विश्वसनीय पहचान प्रदाता से प्राप्त अर्टिफैक्ट का समाधान कहां करना है? सेवा प्रदाता <strong>मेटाडेटा से</strong> पहचान प्रदाता की अर्टिफैक्ट साक्ष्य समाधान सेवा के पूर्व-व्यवस्थित एंडपॉइंट स्थान को देखता है।


मेटाडेटा पहचान प्रदाता और सेवा प्रदाता के बीच एक सुरक्षित लेनदेन सुनिश्चित करता है। मेटाडेटा से पहले, ट्रस्ट की जानकारी को मालिकाना तरीके से कार्यान्वयन में एन्कोड किया गया था। अब ट्रस्ट की जानकारी साझा करने की सुविधा मानक मेटाडेटा द्वारा दी जाती है। SAML 2.0 एक अच्छी तरह से परिभाषित, इंटरऑपरेबल मेटाडेटा प्रारूप प्रदान करता है, जिसका उपयोग संस्थाएं विश्वास प्रक्रिया को बूटस्ट्रैप करने के लिए कर सकती हैं।
मेटाडेटा पहचान प्रदाता और सेवा प्रदाता के बीच एक सुरक्षित लेनदेन सुनिश्चित करता है। मेटाडेटा से पहले, ट्रस्ट की जानकारी को मालिकाना तरीके से कार्यान्वयन में एन्कोड किया गया था। अब ट्रस्ट की जानकारी साझा करने की सुविधा मानक मेटाडेटा द्वारा दी जाती है। एसएएमएल 2.0 एक अच्छी तरह से परिभाषित, इंटरऑपरेबल मेटाडेटा प्रारूप प्रदान करता है, जिसका उपयोग संस्थाएं विश्वास प्रक्रिया को बूटस्ट्रैप करने के लिए कर सकती हैं।


=== पहचान प्रदाता मेटाडेटा ===
=== पहचान प्रदाता मेटाडेटा ===
Line 986: Line 984:


* <code>entityID</code> ई> विशेषता इकाई का विशिष्ट पहचानकर्ता है।
* <code>entityID</code> ई> विशेषता इकाई का विशिष्ट पहचानकर्ता है।
* <code>validUntil</code> e> विशेषता मेटाडेटा की समाप्ति तिथि देती है।
* <code>validUntil</code> e> विशेषता मेटाडेटा की अवसान तिथि देती है।
* <code><ds:Signature></code> ई> तत्व (जिसे सादगी के लिए छोड़ दिया गया है) में एक डिजिटल हस्ताक्षर होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।
* <code><ds:Signature></code> ई> तत्व (जिसे सादगी के लिए छोड़ दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।
* संगठन में पहचाना गया <code><md:Organization></code> तत्व इकाई विवरणक द्वारा वर्णित इकाई के लिए जिम्मेदार है (SAMLMeta का खंड 2.3.2<ref name="SAMLMeta"/>).
* संगठन में पहचाना गया <code><md:Organization></code> तत्व इकाई विवरणक द्वारा वर्णित इकाई के लिए जिम्मेदार है (एसएएमएलMeta का खंड 2.3.2<ref name="SAMLMeta"/>).
* में संपर्क जानकारी <code><md:ContactPerson></code> तत्व इकाई के लिए जिम्मेदार एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। SAMLMeta का अनुभाग 2.3.2.2 देखें।<ref name="SAMLMeta"/>
* में संपर्क जानकारी <code><md:ContactPerson></code> तत्व इकाई के लिए जिम्मेदार एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलMeta का अनुभाग 2.3.2.2 देखें।<ref name="SAMLMeta"/>


परिभाषा के अनुसार, एक पहचान प्रदाता एक SSO सेवा का प्रबंधन करता है जो SAMLProf में निर्दिष्ट SAML वेब ब्राउज़र SSO प्रोफ़ाइल का समर्थन करती है।<ref name="SAMLProf"/>उदाहरण के लिए, में वर्णित पहचान प्रदाता देखें <code><md:IDPSSODescriptor></code> तत्व अगले भाग में दिखाया गया है।
परिभाषा के अनुसार, एक पहचान प्रदाता एक एसएसओ सेवा का प्रबंधन करता है जो एसएएमएलProf में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।<ref name="SAMLProf"/>उदाहरण के लिए, में वर्णित पहचान प्रदाता देखें <code><md:IDPएसएसओDescriptor></code> तत्व अगले भाग में दिखाया गया है।


==== एसएसओ सेवा मेटाडेटा ====
==== एसएसओ सेवा मेटाडेटा ====


पहचान प्रदाता पर एसएसओ सेवा का वर्णन एक में किया गया है <code><md:IDPSSODescriptor></code> तत्व:
पहचान प्रदाता पर एसएसओ सेवा का वर्णन एक में किया गया है <code><md:IDPएसएसओDescriptor></code> तत्व:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <md:IDPSSODescriptor
   <md:IDPSSODescriptor
Line 1,028: Line 1,026:
   </md:IDPSSODescriptor>
   </md:IDPSSODescriptor>
</syntaxhighlight>
</syntaxhighlight>
पिछला मेटाडेटा तत्व पहचान प्रदाता पर SSO सेवा का वर्णन करता है। इस तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:
पिछला मेटाडेटा तत्व पहचान प्रदाता पर एसएसओ सेवा का वर्णन करता है। इस तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:


* पहचान प्रदाता सॉफ़्टवेयर को एक निजी SAML हस्ताक्षर कुंजी और/या एक निजी बैक-चैनल TLS कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी इसमें शामिल है <code><md:KeyDescriptor use="signing"></code> IdP मेटाडेटा में तत्व। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य सामग्री को हटा दिया गया है।
* पहचान प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल चिन्ह कुंजी और/या एक निजी बैक-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी इसमें सम्मिलित है <code><md:KeyDescriptor use="signing"></code> IdP मेटाडेटा में तत्व। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य वस्तु को हटा दिया गया है।
* <code>Binding</code> ई> की विशेषता <code><md:ArtifactResolutionService></code> तत्व इंगित करता है कि SAML SOAP बाइंडिंग (SAMLBind<ref name="SAMLBind"/> विरूपण साक्ष्य संकल्प के लिए इस्तेमाल किया जाना चाहिए।
* <code>Binding</code> ई> की विशेषता <code><md:ArtifactResolutionService></code> तत्व इंगित करता है कि एसएएमएल SOAP बाइंडिंग (एसएएमएलBind<ref name="SAMLBind"/> अर्टिफैक्ट साक्ष्य संकल्प के लिए इस्तेमाल किया जाना चाहिए।
* <code>Location</code> ई> की विशेषता <code><md:ArtifactResolutionService></code> #SP रीडायरेक्ट आर्टिफ़ैक्ट के चरण 8 में तत्व का उपयोग किया गया है; IdP रीडायरेक्ट विरूपण साक्ष्य प्रोफ़ाइल।
* <code>Location</code> ई> की विशेषता <code><md:ArtifactResolutionService></code> #SP रीडायरेक्ट आर्टिफ़ैक्ट के चरण 8 में तत्व का उपयोग किया गया है; IdP रीडायरेक्ट अर्टिफैक्ट साक्ष्य प्रोफ़ाइल।
* का मूल्य <code>index</code> की विशेषता <code><md:ArtifactResolutionService></code> तत्व के रूप में प्रयोग किया जाता है <code>EndpointIndex</code> SAML प्रकार 0x0004 विरूपण साक्ष्य के निर्माण में।
* का मूल्य <code>index</code> की विशेषता <code><md:ArtifactResolutionService></code> तत्व के रूप में प्रयोग किया जाता है <code>EndpointIndex</code> एसएएमएल प्रकार 0x0004 अर्टिफैक्ट साक्ष्य के निर्माण में।
* <code><md:NameIDFormat></code> ई> तत्व इंगित करते हैं कि SAML नाम पहचानकर्ता प्रारूप (SAML Core<ref name="SAMLCore"/> एसएसओ सेवा समर्थन करती है।
* <code><md:NameIDFormat></code> ई> तत्व इंगित करते हैं कि एसएएमएल नाम पहचानकर्ता प्रारूप (एसएएमएल Core<ref name="SAMLCore"/> एसएसओ सेवा समर्थन करती है।
* <code>Binding</code> ई> के गुण <code><md:SingleSignOnService></code> तत्व SAML 2.0 बाइंडिंग विनिर्देश (SAMLBind<ref name="SAMLBind"/>).
* <code>Binding</code> ई> के गुण <code><md:SingleSignOnService></code> तत्व एसएएमएल 2.0 बाइंडिंग विनिर्देश (एसएएमएलBind<ref name="SAMLBind"/>).
* <code>Location</code> ई> की विशेषता <code><md:SingleSignOnService></code> तत्व जो HTTP POST बाइंडिंग का समर्थन करता है, #SP POST अनुरोध के चरण 2 में उपयोग किया जाता है; आईडीपी पोस्ट प्रतिक्रिया प्रोफ़ाइल।
* <code>Location</code> ई> की विशेषता <code><md:SingleSignOnService></code> तत्व जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST बाइंडिंग का समर्थन करता है, POST अनुरोध के चरण 2 में उपयोग किया जाता है; आईडीपी पोस्ट प्रतिक्रिया प्रोफ़ाइल।
* <code>Location</code> ई> की विशेषता <code><md:SingleSignOnService></code> तत्व जो HTTP आर्टिफैक्ट बाइंडिंग का समर्थन करता है #SP रीडायरेक्ट आर्टिफैक्ट के चरण 2 में उपयोग किया जाता है; IdP रीडायरेक्ट विरूपण साक्ष्य प्रोफ़ाइल।
* <code>Location</code> ई> की विशेषता <code><md:SingleSignOnService></code> तत्व जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का समर्थन करता है #SP रीडायरेक्ट अर्टिफैक्ट के चरण 2 में उपयोग किया जाता है; IdP रीडायरेक्ट अर्टिफैक्ट साक्ष्य प्रोफ़ाइल।
* <code><saml:Attribute></code> ई> तत्व एक विशेषता का वर्णन करता है कि पहचान प्रदाता दावा करने के लिए तैयार है (नीति के अधीन)। <code><saml:AttributeValue></code> ई> तत्व संभावित मूल्यों की गणना करते हैं जो विशेषता ले सकती है।
* <code><saml:Attribute></code> ई> तत्व एक विशेषता का वर्णन करता है कि पहचान प्रदाता दावा करने के लिए तैयार है (नीति के अधीन)। <code><saml:AttributeValue></code> ई> तत्व संभावित मूल्यों की गणना करते हैं जो विशेषता ले सकती है।


जैसा कि इस खंड की शुरुआत में उल्लेख किया गया है, के मान <code>Location</code> विशेषताएँ SAML संदेशों को रूट करने के लिए एक सेवा प्रदाता द्वारा उपयोग की जाती हैं, जो एक दुष्ट पहचान प्रदाता द्वारा एक मैन-इन-द-मिडल हमले की संभावना को कम करता है।
जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, के मान <code>Location</code> विशेषताएँ एसएएमएल संदेशों को रूट करने के लिए एक सेवा प्रदाता द्वारा उपयोग की जाती हैं, जो एक दुष्ट पहचान प्रदाता द्वारा एक मैन-इन-द-मिडल हमले की संभावना को कम करता है।


=== सेवा प्रदाता मेटाडेटा ===
=== सेवा प्रदाता मेटाडेटा ===
Line 1,067: Line 1,065:


* <code>entityID</code> ई> विशेषता इकाई का विशिष्ट पहचानकर्ता है।
* <code>entityID</code> ई> विशेषता इकाई का विशिष्ट पहचानकर्ता है।
* <code>validUntil</code> e> विशेषता मेटाडेटा की समाप्ति तिथि देती है।
* <code>validUntil</code> e> विशेषता मेटाडेटा की अवसान तिथि देती है।
* <code><ds:Signature></code> ई> तत्व (जिसे सादगी के लिए छोड़ दिया गया है) में एक डिजिटल हस्ताक्षर होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।
* <code><ds:Signature></code> ई> तत्व (जिसे सादगी के लिए छोड़ दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।
* संगठन में पहचाना गया <code><md:Organization></code> तत्व इकाई विवरणक द्वारा वर्णित इकाई के लिए जिम्मेदार है (SAMLMeta का खंड 2.3.2<ref name="SAMLMeta"/>).
* संगठन में पहचाना गया <code><md:Organization></code> तत्व इकाई विवरणक द्वारा वर्णित इकाई के लिए जिम्मेदार है (एसएएमएलMeta का खंड 2.3.2<ref name="SAMLMeta"/>).
* में संपर्क जानकारी <code><md:ContactPerson></code> तत्व इकाई के लिए जिम्मेदार एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। SAMLMeta का अनुभाग 2.3.2.2 देखें।<ref name="SAMLMeta"/>
* में संपर्क जानकारी <code><md:ContactPerson></code> तत्व इकाई के लिए जिम्मेदार एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलMeta का अनुभाग 2.3.2.2 देखें।<ref name="SAMLMeta"/>


परिभाषा के अनुसार, एक सेवा प्रदाता एक अभिकथन उपभोक्ता सेवा का प्रबंधन करता है जो SAMLProf में निर्दिष्ट SAML वेब ब्राउज़र SSO प्रोफ़ाइल का समर्थन करती है।<ref name="SAMLProf"/>उदाहरण के लिए, में वर्णित सेवा प्रदाता देखें <code><md:SPSSODescriptor></code> तत्व अगले भाग में दिखाया गया है।
परिभाषा के अनुसार, एक सेवा प्रदाता एक अभिकथन उपभोक्ता सेवा का प्रबंधन करता है जो एसएएमएलProf में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।<ref name="SAMLProf"/>उदाहरण के लिए, में वर्णित सेवा प्रदाता देखें <code><md:SPSSODescriptor></code> तत्व अगले भाग में दिखाया गया है।


==== दावा उपभोक्ता सेवा मेटाडेटा ====
==== अभिकथन उपभोक्ता सेवा मेटाडेटा ====


अभिकथन उपभोक्ता सेवा एक में निहित है <code><md:SPSSODescriptor></code> तत्व:
अभिकथन उपभोक्ता सेवा मे <code><md:SPSSODescriptor></code> तत्व में समाहित है:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 1,108: Line 1,106:
   </md:SPSSODescriptor>
   </md:SPSSODescriptor>
</syntaxhighlight>
</syntaxhighlight>
के बारे में निम्नलिखित विवरणों पर ध्यान दें <code><md:SPSSODescriptor></code> मेटाडेटा तत्व:
<code><md:SPSSODescriptor></code> मेटाडेटा तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:


* सेवा प्रदाता सॉफ़्टवेयर को एक निजी SAML हस्ताक्षर कुंजी और/या एक निजी बैक-चैनल TLS कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी इसमें शामिल है <code><md:KeyDescriptor use="signing"></code> एसपी मेटाडेटा में तत्व। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य सामग्री को हटा दिया गया है।
* सेवा प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल चिन्ह कुंजी और/या एक निजी बैक-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी एसपी मेटाडेटा में <code><md:KeyDescriptor use="signing"></code> तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य वस्तु को मुख्य विवरणक से हटा दिया गया है।
* इसी तरह सेवा प्रदाता सॉफ्टवेयर को एक निजी SAML डिक्रिप्शन कुंजी के साथ कॉन्फ़िगर किया गया है। एक सार्वजनिक SAML एन्क्रिप्शन कुंजी इसमें शामिल है <code><md:KeyDescriptor use="encryption"></code> एसपी मेटाडेटा में तत्व। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य सामग्री को हटा दिया गया है।
* इसी तरह सेवा प्रदाता सॉफ्टवेयर को एक निजी एसएएमएल डिक्रिप्शन कुंजी के साथ कॉन्फ़िगर किया गया है। एक सार्वजनिक एसएएमएल एन्क्रिप्शन कुंजी <code><md:KeyDescriptor use="encryption"></code> एसपी मेटाडेटा में तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य वस्तु को हटा दिया गया है।
* <code>index</code> ई> एक की विशेषता <code><md:AssertionConsumerService></code> तत्व के मूल्य के रूप में प्रयोग किया जाता है <code>AssertionConsumerServiceIndex</code> में विशेषता <code><samlp:AuthnRequest></code> तत्व।
* <code><md:AssertionConsumerService></code> तत्व की <code>index</code> विशेषता का उपयोग  <code>AssertionConsumerServiceIndex</code> तत्व में <code><samlp:AuthnRequest></code> विशेषता के मान के रूप में किया जाता है।
* <code>Binding</code> ई> के गुण <code><md:AssertionConsumerService></code> तत्व SAML 2.0 बाइंडिंग विनिर्देश (SAMLBind<ref name="SAMLBind"/>).
* <code><md:AssertionConsumerService></code> तत्वों की <code>Binding</code> विशेषताएँ एसएएमएल 2.0 बाइंडिंग विनिर्देश (एसएएमएलबीआईएनडी)<ref name="SAMLBind"/> में निर्दिष्ट मानक यूआरआई हैं।
* <code>Location</code> ई> की विशेषता <code><md:AssertionConsumerService></code> तत्व जो HTTP पोस्ट बाइंडिंग का समर्थन करता है (<code>index="0"</code>) #SP पोस्ट अनुरोध के चरण 4 में उपयोग किया जाता है; आईडीपी पोस्ट प्रतिक्रिया प्रोफ़ाइल।
* <code><md:AssertionConsumerService></code> तत्व की <code>Location</code> की विशेषता  जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पोस्ट बाइंडिंग (<code>index="0"</code>) का समर्थन करती है, जिसका उपयोग "द्विक पीओएसटी" प्रोफ़ाइल के चरण 4 में किया जाता है।
* <code>Location</code> ई> की विशेषता <code><md:AssertionConsumerService></code> तत्व जो HTTP आर्टिफैक्ट बाइंडिंग का समर्थन करता है (<code>index="1"</code>) #SP रीडायरेक्ट आर्टिफ़ैक्ट के चरण 6 में उपयोग किया जाता है; IdP रीडायरेक्ट विरूपण साक्ष्य प्रोफ़ाइल।
* <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>index</code> ई> की विशेषता <code><md:AttributeConsumingService></code> तत्व के मूल्य के रूप में प्रयोग किया जाता है <code>AttributeConsumingServiceIndex</code> में विशेषता <code><samlp:AuthnRequest></code> तत्व।
* <code><md:AssertionConsumerService></code> तत्व की <code>index</code> विशेषता का उपयोग  <code>AttributeConsumingServiceIndex</code> तत्व में <code><samlp:AuthnRequest></code> विशेषता के मान के रूप में किया जाता है।


जैसा कि इस खंड की शुरुआत में उल्लेख किया गया है, के मान <code>Location</code> विशेषताएँ एक पहचान प्रदाता द्वारा SAML संदेशों को रूट करने के लिए उपयोग की जाती हैं, जो एक दुष्ट सेवा प्रदाता द्वारा एक मैन-इन-द-बीच हमले की संभावना को कम करता है।
जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, <code>Location</code> विशेषताओ के मानो का एक पहचान प्रदाता द्वारा एसएएमएल संदेशों को रूट करने के लिए उपयोग की जाती हैं, जो एक दुष्ट सेवा प्रदाता द्वारा एक बीच मे आक्षेप की संभावना को कम करता है।


=== मेटाडेटा समुच्चय ===
=== मेटाडेटा एग्रीगेट ===


पिछले उदाहरणों में, प्रत्येक <code><md:EntityDescriptor></code> तत्व को डिजिटल रूप से हस्ताक्षरित दिखाया गया है। हालाँकि, व्यवहार में, एकाधिक <code><md:EntityDescriptor></code> तत्वों को एक के तहत एक साथ समूहीकृत किया जाता है <code><md:EntitiesDescriptor></code> संपूर्ण समुच्चय पर एकल डिजिटल हस्ताक्षर वाला तत्व:
पिछले उदाहरणों में, प्रत्येक <code><md:EntityDescriptor></code> तत्व को डिजिटल रूप से हस्ताक्षरित दिखाया गया है। हालाँकि, व्यवहार में, एकाधिक <code><md:EntityDescriptor></code> तत्वों को एक <code><md:EntitiesDescriptor></code> तत्व के अंतर्गत संपूर्ण एग्रीगेट पर एकल डिजिटल चिन्ह के साथ एक साथ संग्रहित किया जाता है:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 1,139: Line 1,137:
   </md:EntitiesDescriptor>
   </md:EntitiesDescriptor>
</syntaxhighlight>
</syntaxhighlight>
उपरोक्त के बारे में निम्नलिखित विवरणों पर ध्यान दें <code><md:EntitiesDescriptor></code> तत्व:
उपरोक्त <code><md:EntitiesDescriptor></code> तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:


* डिजिटल हस्ताक्षर (संक्षिप्तता के लिए हटा दिया गया है) संपूर्ण समुच्चय को कवर करता है।
* डिजिटल चिन्ह (संक्षिप्तता के लिए हटा दिया गया है) संपूर्ण एग्रीगेट को सम्मिलित करता है।
* <code>validUntil</code> ई> एक्सएमएल विशेषता को मूल तत्व में ऊपर उठाया गया है, जिसका अर्थ है कि समाप्ति तिथि प्रत्येक बच्चे के तत्व पर लागू होती है।
* <code>validUntil</code> विशेषता को पैरेंट तत्व तक बढ़ा दिया गया है, जिसका अर्थ है कि अवसान तिथि प्रत्येक चाइल्ड तत्व पर प्रयुक्त होती है।
* अनावश्यक नामस्थान घोषणाओं से बचने के लिए एक्सएमएल नेमस्पेस घोषणाओं को मूल तत्व में ऊपर उठाया गया है।
* अनावश्यक नामस्थान घोषणाओं से संरक्षित करने के लिए एक्सएमएल नामस्थान घोषणाओं को पैरेंट तत्व तक बढ़ा दिया गया है।


आमतौर पर मेटाडेटा समुच्चय विश्वसनीय तृतीय पक्षों द्वारा प्रकाशित किए जाते हैं जिन्हें संघ कहा जाता है जो समग्र में सभी मेटाडेटा की अखंडता के लिए ज़मानत देते हैं। ध्यान दें कि मेटाडेटा समुच्चय बहुत बड़ा हो सकता है, प्रति समुच्चय सैकड़ों या हजारों संस्थाओं से बना हो सकता है।
सामान्य रूप से मेटाडेटा एग्रीगेट विश्वसनीय तृतीय पक्षों द्वारा प्रकाशित किए जाते हैं जिन्हें संघ कहा जाता है जो एग्रीगेट में सभी मेटाडेटा की अखंडता की प्रत्याभूति देते हैं। ध्यान दें कि मेटाडेटा एग्रीगेट बहुत बड़ा हो सकता है, जो प्रति एग्रीगेट सैकड़ों या हजारों इकाइयों से बना हो सकता है।


== यह भी देखें ==
== यह भी देखें ==
Line 1,152: Line 1,150:
* एसएएमएल 1.1
* एसएएमएल 1.1
* [[एसएएमएल मेटाडेटा]]
* [[एसएएमएल मेटाडेटा]]
* [[SAML-आधारित उत्पाद और सेवाएँ]]
* [[SAML-आधारित उत्पाद और सेवाएँ|एसएएमएल-आधारित उत्पाद और सेवाएँ]]
* [[ओपनआईडी कनेक्ट]]
* [[ओपनआईडी कनेक्ट|मुक्तआईडी संयोजन]]


==संदर्भ==
==संदर्भ==

Revision as of 09:13, 23 June 2023

Security Assertion Markup Language
AbbreviationSAML
StatusPublished
Year startedNovember 2003
Latest versionV2.0
March 2005
Preview versionV2.0 with Errata
May 2019
OrganizationOrganization for the Advancement of Structured Information Standards (OASIS)
CommitteeOASIS Security Services (SAML) Technical Committee
WebsiteOASIS 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 अभिकथन नामस्थान का प्रतिनिधित्व करता है।

एसएएमएल का उदाहरण EDIT

<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/एसएएमएल2</nowiki) >) विशेष रूप से सेवा प्रदाता (<nowiki>https://sp.example.com/एसएएमएल2) के लिए विषय (3f7b3dcf-1674-4ecd-92c8-1544f346baf8) के संबंध में।

प्रमाणीकरण स्टेटमेंट, विशेष रूप से, निम्नलिखित पर जोर देता है:

प्रिंसिपल की पहचान इसमें की गई है <saml:Subject> सुरक्षित चैनल पर भेजे गए पासवर्ड के माध्यम से तत्व को 2004-12-05T09:22:00Z पर प्रमाणित किया गया था।

इसी प्रकार विशेषता स्टेटमेंट का दावा है कि:

प्रिंसिपल की पहचान इसमें की गई है <saml:Subject> तत्व में इस संस्था के 'कर्मचारी' और 'सदस्य' गुण हैं।

एसएएमएल 2.0 प्रोटोकॉल

एसएएमएल Core में निम्नलिखित प्रोटोकॉल निर्दिष्ट हैं:[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/एसएएमएल2) द्वारा जारी किया गया था और बाद में पहचान प्रदाता (ब्राउज़र के माध्यम से) को प्रस्तुत किया गया था। पहचान प्रदाता प्रिंसिपल (यदि आवश्यक हो) को प्रमाणित करता है और एक प्रमाणीकरण प्रतिक्रिया जारी करता है, जो सेवा प्रदाता (फिर से ब्राउज़र के माध्यम से) को वापस प्रेषित की जाती है।

अर्टिफैक्ट साक्ष्य संकल्प प्रोटोकॉल

एक एसएएमएल संदेश एक इकाई से दूसरे में या तो मूल्य या संदर्भ द्वारा प्रेषित होता है। एसएएमएल संदेश के संदर्भ को अर्टिफैक्ट कहा जाता है। एक अर्टिफैक्ट का रिसीवर एक भेजकर संदर्भ को हल करता है <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 द्वारा समर्थित बाइंडिंग बाइंडिंग विनिर्देश (एसएएमएलBind[2]):

  • एसएएमएल SOAP बाइंडिंग (SOAP 1.1 पर आधारित)
  • रिवर्स SOAP (PAOS) ​​बाइंडिंग
  • #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट बाइंडिंग
  • #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पोस्ट बाइंडिंग
  • #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग
  • एसएएमएल URI बाइंडिंग

वेब ब्राउज़र एसएसओ के लिए, एचटीटीपी रीडायरेक्ट बाइंडिंग और एचटीटीपी पोस्ट बाइंडिंग का सामान्य रूप से इस्तेमाल किया जाता है। उदाहरण के लिए, सेवा प्रदाता अनुरोध भेजने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट का उपयोग कर सकता है, जबकि पहचान प्रदाता प्रतिक्रिया प्रसारित करने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST का उपयोग करता है। इस उदाहरण से पता चलता है कि एक इकाई की बाध्यकारी की पसंद उसके साथी की बाध्यकारी की पसंद से स्वतंत्र है।

हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट बाइंडिंग

एसएएमएल प्रोटोकॉल संदेशों को सीधे हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल GET अनुरोध के URL क्वेरी स्ट्रिंग में ले जाया जा सकता है। व्यवहार में URL की लंबाई सीमित होने के कारण, हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट बाइंडिंग छोटे संदेशों के लिए उपयुक्त है, जैसे कि <samlp:AuthnRequest> संदेश। लंबे संदेश (उदाहरण के लिए हस्ताक्षरित या एन्क्रिप्टेड एसएएमएल अभिकथन वाले, जैसे एसएएमएल प्रतिक्रियाएँ) सामान्य रूप से #हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST बाइंडिंग जैसे अन्य बाइंडिंग के माध्यम से प्रेषित होते हैं।

एचटीटीपी रीडायरेक्ट के ज़रिए ट्रांसमिट किए गए एसएएमएल अनुरोध या जवाबों में a एसएएमएलRequest या एसएएमएलResponse क्वेरी स्ट्रिंग पैरामीटर, क्रमशः। भेजे जाने से पहले, संदेश उस क्रम में DEFLATE (हेडर और चेकसम के बिना), बेस 64-एन्कोडेड और URL-एन्कोडेड है। प्राप्त होने पर, मूल संदेश को पुनर्प्राप्त करने के लिए प्रक्रिया उलट दी जाती है।

उदाहरण के लिए, एन्कोडिंग <samlp:AuthnRequest> उपज के ऊपर संदेश:

 https://idp.example.org/एसएएमएल2/एसएसओ/Redirect?एसएएमएलRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2
 Mabbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdY
 ib%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8s
 BHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1F
 dgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RkydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NK
 UqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C

अतिरिक्त सुरक्षा के लिए उपरोक्त संदेश (पठनीयता के लिए स्वरूपित) पर चिन्ह किए जा सकते हैं। व्यवहार में, एक में निहित सभी डेटा <samlp:AuthnRequest>, जैसे कि Issuer जिसमें एसपी आईडी है, और NameIDPolicy, IdP और SP के बीच पहले ही सहमति हो गई है (मैन्युअल सूचना विनिमय के माध्यम से या #एसएएमएल 2.0 मेटाडेटा के माध्यम से)। उस स्थिति में अनुरोध पर चिन्ह करना सुरक्षा बाधा नहीं है। जब <samlp:AuthnRequest> IdP द्वारा पहले से ज्ञात जानकारी नहीं है, जैसे कि अभिकथन उपभोक्ता सेवा URL, सुरक्षा उद्देश्यों के लिए अनुरोध पर चिन्ह करने की अनुशंसा की जाती है।

हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पोस्ट बाइंडिंग

निम्नलिखित उदाहरण में, सेवा प्रदाता और पहचान प्रदाता दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST बाइंडिंग का उपयोग करते हैं। प्रारंभ में, सेवा प्रदाता एक एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ उपयोगकर्ता एजेंट के अनुरोध का जवाब देता है: <वाक्यविन्यास लैंग = html4सख्त>

 <फॉर्म विधि = पोस्ट एक्शन = https://idp.example.org/एसएएमएल2/एसएसओ/POST ...>
   <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलRequest मान = अनुरोध />
   ... अन्य इनपुट पैरामीटर ....
 </रूप>

</वाक्यविन्यास हाइलाइट> का मूल्य एसएएमएलRequest पैरामीटर a का बेस 64-एन्कोडिंग है <samlp:AuthnRequest> तत्व, जो ब्राउज़र के माध्यम से पहचान प्रदाता को प्रेषित होता है। पहचान प्रदाता पर एसएसओ सेवा अनुरोध को मान्य करती है और एक अन्य एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करती है: <वाक्यविन्यास लैंग = html4सख्त>

 <फॉर्म विधि = पोस्ट कार्रवाई = https://sp.example.com/एसएएमएल2/एसएसओ/POST ...>
   <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलResponse मान = प्रतिक्रिया />
   ...
 </रूप>

</वाक्यविन्यास हाइलाइट> का मूल्य एसएएमएलResponse पैरामीटर a का बेस 64 एन्कोडिंग है <samlp:Response> तत्व, जो इसी तरह सेवा प्रदाता को ब्राउज़र के माध्यम से प्रेषित किया जाता है।

प्रपत्र के सबमिशन को स्वचालित करने के लिए, जावास्क्रिप्ट की निम्न पंक्ति XHTML पृष्ठ पर कहीं भी दिखाई दे सकती है:

  window.onload = function () { document.forms[0].submit(); }

यह निश्चित रूप से मानता है कि पृष्ठ में पहले फॉर्म तत्व में उपरोक्त एसएएमएलResponse सम्मिलित है form तत्व (forms[0]).

हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट साक्ष्य बाइंडिंग

संदर्भ द्वारा एसएएमएल संदेश को हल करने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग #Artifact रिज़ॉल्यूशन प्रोटोकॉल और एसएएमएल SOAP बाइंडिंग (हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल पर) का उपयोग करता है। निम्नलिखित विशिष्ट उदाहरण पर विचार करें। मान लीजिए कि एक सेवा प्रदाता एक भेजना चाहता है <samlp:AuthnRequest> एक पहचान प्रदाता को संदेश। प्रारंभ में, सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल रीडायरेक्ट के माध्यम से पहचान प्रदाता को एक अर्टिफैक्ट भेजता है:

 https://idp.example.org/एसएएमएल2/एसएसओ/Artifact?एसएएमएलart=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>

बेशक प्रवाह दूसरी दिशा में भी जा सकता है, यानी पहचान प्रदाता एक अर्टिफैक्ट जारी कर सकता है, और वास्तव में यह अधिक सामान्य है। उदाहरण के लिए देखें, #SP रीडायरेक्ट अर्टिफैक्ट; इस विषय में बाद में IdP रीडायरेक्ट अर्टिफैक्ट साक्ष्य प्रोफ़ाइल उदाहरण।

अर्टिफैक्ट साक्ष्य प्रारूप

सामान्य तौर पर, एसएएमएल 2.0 अर्टिफैक्ट को इस तरह परिभाषित किया जाता है (एसएएमएलBind[2]):

 एसएएमएल_artifact:= B64 (टाइपकोड एंडपॉइंटइंडेक्स शेष अर्टिफैक्ट)
 टाइपकोड�:= बाइट1बाइट2
 एंडपॉइंट इंडेक्स: = बाइट 1 बाइट 2

इस प्रकार एक एसएएमएल 2.0 अर्टिफैक्ट साक्ष्य में तीन घटक होते हैं: एक दो-बाइट TypeCode, एक दो-बाइट EndpointIndex, और बाइट्स के मनमाने क्रम को कहा जाता है RemainingArtifact. जानकारी के इन तीन टुकड़ों को जोड़ा गया है और पूर्ण अर्टिफैक्ट प्राप्त करने के लिए बेस64-एन्कोडेड हैं। TypeCode e> विशिष्ट रूप से अर्टिफैक्ट साक्ष्य प्रारूप की पहचान करता है। एसएएमएल 2.0 0x0004 प्रकार के केवल एक ऐसे अर्टिफैक्ट को पूर्वनिर्धारित करता है। EndpointIndex e> अर्टिफैक्ट साक्ष्य जारीकर्ता द्वारा प्रबंधित एक विशेष अर्टिफैक्ट साक्ष्य समापन बिंदु का एक संदर्भ है (जो पहले उल्लेखित IdP या SP हो सकता है)। RemainingArtifactडी>, जो कि प्रकार की परिभाषा से निर्धारित होता है, कलाकृतियों का मांस है।

0x0004 अर्टिफैक्ट प्रकार के प्रारूप को आगे निम्नानुसार परिभाषित किया गया है:

 टाइपकोड: = 0x0004
 RemainingArtifact:= SourceId MessageHandle
 स्रोत आईडी: = 20-बाइट_अनुक्रम
 मैसेजहैंडल: = 20-बाइट_अनुक्रम

इस प्रकार एक प्रकार 0x0004 अर्टिफैक्ट आकार 44 बाइट्स (एन्कोडेड) का है। SourceId ई> बाइट्स का एक मनमाना क्रम है, हालांकि व्यवहार में, SourceId जारीकर्ता के entityID का SHA-1 हैश है। MessageHandle ई> बाइट्स का एक यादृच्छिक अनुक्रम है जो एक एसएएमएल संदेश का संदर्भ देता है कि अर्टिफैक्ट जारीकर्ता ऑन-डिमांड उत्पादन करने को तैयार है।

उदाहरण के लिए, इस हेक्स-एन्कोडेड प्रकार 0x0004 अर्टिफैक्ट साक्ष्य पर विचार करें:

 00040000c878f3fd685c833eb03a3b0e1daa329d47338205e436913660e3e917549a59709fd8c91f2120222f

यदि आप बारीकी से देखते हैं, तो आप देख सकते हैं TypeCode (0x0004) और EndpointIndex (0x0000) अर्टिफैक्ट साक्ष्य के सामने। अगले 20 बाइट जारीकर्ता के entityID (https://idp.example.org/एसएएमएल2) के SHA-1 हैश के बाद 20 रैंडम बाइट हैं। इन 44 बाइट्स का बेस64-एन्कोडिंग वही है जो आप ऊपर #ArtifactResolveRequest उदाहरण में देखते हैं।

एसएएमएल 2.0 प्रोफाइल

एसएएमएल 2.0 में, एसएएमएल 1.1 की तरह, प्राथमिक उपयोग मामला अभी भी वेब ब्राउज़र एसएसओ है, लेकिन एसएएमएल 2.0 का दायरा एसएएमएल के पिछले संस्करणों की तुलना में व्यापक है, जैसा कि प्रोफ़ाइल की निम्नलिखित विस्तृत सूची में सुझाया गया है:

  • एसएसओ प्रोफाइल
    • #वेब_ब्राउज़र_एसएसओ_प्रोफाइल
    • उन्नत ग्राहक या प्रॉक्सी (ईसीपी) प्रोफ़ाइल
    • #Identity_Provider_Discovery_Profile
    • एकल लॉगआउट प्रोफाइल
    • नाम पहचानकर्ता प्रबंधन प्रोफ़ाइल
  • अर्टिफैक्ट साक्ष्य संकल्प प्रोफ़ाइल
  • #Assertion_Query/Request_Profile|अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल
  • नाम पहचानकर्ता मानचित्रण प्रोफ़ाइल
  • एसएएमएल विशेषता प्रोफाइल
    • मूल विशेषता प्रोफ़ाइल
    • X.500/LDAP विशेषता प्रोफ़ाइल
    • UUID विशेषता प्रोफ़ाइल
    • डीसीई पीएसी विशेषता प्रोफ़ाइल
    • XACML विशेषता प्रोफ़ाइल

हालाँकि समर्थित प्रोफ़ाइलों की संख्या काफी बड़ी है, प्रोफ़ाइल विनिर्देश (एसएएमएलProf[3] सरलीकृत है क्योंकि प्रत्येक प्रोफ़ाइल के बाध्यकारी स्वरूपों को एक अलग बाइंडिंग विनिर्देश (एसएएमएलBind[2]).

वेब ब्राउजर एसएसओ प्रोफाइल

एसएएमएल 2.0 एक वेब ब्राउज़र एसएसओ प्रोफ़ाइल निर्दिष्ट करता है जिसमें एक पहचान प्रदाता (IdP), एक सेवा प्रदाता (SP) और एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता एजेंट चलाने वाला प्रमुख सम्मिलित होता है। सेवा प्रदाता के पास चुनने के लिए चार बाइंडिंग हैं, जबकि पहचान प्रदाता के पास तीन हैं, जो बारह संभावित परिनियोजन परिदृश्यों की ओर ले जाता है। हम नीचे उन तीन परिनियोजन परिदृश्यों की रूपरेखा प्रस्तुत करते हैं।

एसपी पुनर्निर्देशन अनुरोध; आईडीपी पोस्ट प्रतिक्रिया

यह सबसे आम परिदृश्यों में से एक है। सेवा प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-रीडायरेक्ट बाइंडिंग का उपयोग करके IdP एसएसओ सेवा को एक एसएएमएल अनुरोध भेजता है। पहचान प्रदाता हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल-POST बाइंडिंग का उपयोग करके SP अभिकथन उपभोक्ता सेवा को एसएएमएल प्रतिक्रिया लौटाता है।

एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (एसपी रीडायरेक्ट बाइंड/आईडीपी पोस्ट प्रतिक्रिया)

संदेश प्रवाह सेवा प्रदाता पर एक सुरक्षित संसाधन के अनुरोध के साथ शुरू होता है।

1. एसपी से लक्ष्य संसाधन का अनुरोध करें

प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:

 https://sp.example.com/myresource

सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से मौजूद है, तो चरण 2-7 को छोड़ दें।

सेवा प्रदाता उपयोग किए जाने वाले पहचान प्रदाता की खोज के लिए किसी भी प्रकार के तंत्र का उपयोग कर सकता है, उदाहरण के लिए, उपयोगकर्ता से पूछें, पूर्व-कॉन्फ़िगर IdP का उपयोग करें, आदि।

2. आईडीपी एसएसओ सेवा पर रीडायरेक्ट करें

सेवा प्रदाता एक उपयुक्त एसएएमएलRequest (और RelayState, यदि कोई हो) उत्पन्न करता है, फिर एक मानक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल 302 रीडायरेक्ट का उपयोग करके ब्राउज़र को IdP एसएसओ सेवा पर रीडायरेक्ट करता है।

302 Redirect
Location: https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token
RelayState ई> टोकन सेवा प्रदाता पर रखी गई राज्य सूचना का एक अपारदर्शी संदर्भ है। का मूल्य एसएएमएलRequest पैरामीटर एक डिफ्लेटेड, बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड मान है <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="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>

SP चिन्ह कुंजी का उपयोग करके एसएएमएलRequest पर चिन्ह किए जा सकते हैं। सामान्य रूप से, हालांकि, यह आवश्यक नहीं है।

3. IdP पर एसएसओ सेवा के लिए अनुरोध करें

उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक जीईटी अनुरोध जारी करता है:

<सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6> GET /एसएएमएल2/एसएसओ/रीडायरेक्ट?एसएएमएलRequest=request&RelayState=token हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल/1.1 होस्ट: idp.example.org </वाक्यविन्यास हाइलाइट>

जहां के मूल्य एसएएमएलRequest और RelayState पैरामीटर वही हैं जो रीडायरेक्ट में दिए गए हैं. पहचान प्रदाता पर एसएसओ सेवा प्रक्रिया करती है <samlp:AuthnRequest> तत्व (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता को किसी भी तंत्र (विवरण छोड़े गए) के साथ पहचानता है।

4. एक्सएचटीएमएल फॉर्म के साथ प्रतिक्रिया दें

एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:

<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>

 <फॉर्म विधि = पोस्ट कार्रवाई = https://sp.example.com/एसएएमएल2/एसएसओ/POST ...>
   <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलResponse मान = प्रतिक्रिया />
   <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
   ...
   <इनपुट प्रकार = मूल्य जमा करें = जमा करें />
 </रूप>

</वाक्यविन्यास हाइलाइट>

का मूल्य RelayState पैरामीटर को चरण 3 से संरक्षित किया गया है। का मान एसएएमएलResponse पैरामीटर निम्न का बेस 64 एन्कोडिंग है <samlp:Response> तत्व:

  <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 अनुरोध जारी करता है:

<सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6> पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1 होस्ट: sp.example.com वस्तु-प्रकार: एप्लिकेशन/x-www-form-urlencoded वस्तु-लंबाई: एनएनएन

एसएएमएलResponse=प्रतिक्रिया&RelayState=token </वाक्यविन्यास हाइलाइट>

जहां के मूल्य एसएएमएलResponse और RelayState पैरामीटर चरण 4 पर XHTML फ़ॉर्म से लिए गए हैं।

6. लक्ष्य संसाधन पर पुनर्निर्देशित करें

अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता एजेंट को लक्ष्य संसाधन पर पुनर्निर्देशित करती है।

7. लक्ष्य संसाधन के लिए एसपी से फिर से अनुरोध करें

उपयोगकर्ता एजेंट सेवा प्रदाता (फिर से) पर लक्ष्य संसाधन का अनुरोध करता है:

 https://sp.example.com/myresource

8. अनुरोधित संसाधन के साथ प्रतिक्रिया दें

चूंकि एक सुरक्षा संदर्भ मौजूद है, सेवा प्रदाता संसाधन को उपयोगकर्ता एजेंट को लौटाता है।

सपा पोस्ट अनुरोध; आईडीपी पोस्ट प्रतिक्रिया

यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल (एसएएमएलProf[3] जहाँ सेवा प्रदाता (SP) और पहचान प्रदाता (IdP) दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST बाइंडिंग का उपयोग करते हैं।

एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (पोस्ट)

संदेश प्रवाह एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ शुरू होता है।

1. एसपी से लक्ष्य संसाधन का अनुरोध करें

प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:

 https://sp.example.com/myresource

सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से मौजूद है, तो चरण 2-7 को छोड़ दें।

2. एक्सएचटीएमएल फॉर्म के साथ प्रतिक्रिया दें

सेवा प्रदाता XHTML फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करता है: <वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>

 <फॉर्म विधि = पोस्ट एक्शन = https://idp.example.org/एसएएमएल2/एसएसओ/POST ...>
   <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलRequest मान = अनुरोध />
   <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
   ...
   <इनपुट प्रकार = मूल्य जमा करें = जमा करें />
 </रूप>

</वाक्यविन्यास हाइलाइट> RelayState ई> टोकन सेवा प्रदाता पर रखी गई राज्य सूचना का एक अपारदर्शी संदर्भ है। का मूल्य एसएएमएलRequest पैरामीटर निम्न का बेस 64 एन्कोडिंग है <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="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. IdP पर एसएसओ सेवा के लिए अनुरोध करें

उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक पोस्ट अनुरोध जारी करता है: <सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6> पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1 होस्ट: idp.example.org वस्तु-प्रकार: एप्लिकेशन/x-www-form-urlencoded वस्तु-लंबाई: एनएनएन

एसएएमएलRequest=request&RelayState=token </वाक्यविन्यास हाइलाइट> जहां के मूल्य एसएएमएलRequest और RelayState पैरामीटर चरण 2 पर XHTML प्रपत्र से लिए गए हैं। एसएसओ सेवा प्रक्रिया करती है <samlp:AuthnRequest> तत्व (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता की पहचान करता है (विवरण छोड़ा गया)।

4. एक्सएचटीएमएल फॉर्म के साथ प्रतिक्रिया दें

एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करती है: <वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>

 <फॉर्म विधि = पोस्ट कार्रवाई = https://sp.example.com/एसएएमएल2/एसएसओ/POST ...>
   <इनपुट प्रकार = छिपा हुआ नाम = एसएएमएलResponse मान = प्रतिक्रिया />
   <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
   ...
   <इनपुट प्रकार = मूल्य जमा करें = जमा करें />
 </रूप>

</वाक्यविन्यास हाइलाइट> का मूल्य RelayState पैरामीटर को चरण 3 से संरक्षित किया गया है। का मान एसएएमएलResponse पैरामीटर निम्न का बेस 64 एन्कोडिंग है <samlp:Response> तत्व:

  <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 अनुरोध जारी करता है: <सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6> पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1 होस्ट: sp.example.com वस्तु-प्रकार: एप्लिकेशन/x-www-form-urlencoded वस्तु-लंबाई: एनएनएन

एसएएमएलResponse=प्रतिक्रिया&RelayState=token </वाक्यविन्यास हाइलाइट> जहां के मूल्य एसएएमएलResponse और RelayState पैरामीटर चरण 4 पर XHTML फ़ॉर्म से लिए गए हैं।

6. लक्ष्य संसाधन पर पुनर्निर्देशित करें

अभिकथन उपभोक्ता सेवा प्रतिक्रिया को संसाधित करती है, सेवा प्रदाता पर एक सुरक्षा संदर्भ बनाती है और उपयोगकर्ता एजेंट को लक्ष्य संसाधन पर पुनर्निर्देशित करती है।

7. लक्ष्य संसाधन के लिए एसपी से फिर से अनुरोध करें

उपयोगकर्ता एजेंट सेवा प्रदाता (फिर से) पर लक्ष्य संसाधन का अनुरोध करता है:

 https://sp.example.com/myresource

8. अनुरोधित संसाधन के साथ प्रतिक्रिया दें

चूंकि एक सुरक्षा संदर्भ मौजूद है, सेवा प्रदाता संसाधन को उपयोगकर्ता एजेंट को लौटाता है।

== एसपी रीडायरेक्ट अर्टिफैक्ट; IdP अनुप्रेषित अर्टिफैक्ट साक्ष्य

यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल (एसएएमएलProf[3] जहां सेवा प्रदाता (SP) और पहचान प्रदाता (IdP) दोनों हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का उपयोग करते हैं। दोनों कलाकृतियों को हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल GET के माध्यम से उनके संबंधित समापन बिंदुओं तक पहुँचाया जाता है।

File:Saml2-browser-sso-artifact.gif
एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (अर्टिफैक्ट साक्ष्य)

एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ संदेश प्रवाह शुरू होता है:

1. एसपी से लक्ष्य संसाधन का अनुरोध करें

प्रिंसिपल (एक हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल उपयोगकर्ता एजेंट के माध्यम से) सेवा प्रदाता पर लक्ष्य संसाधन का अनुरोध करता है:

 https://sp.example.com/myresource

सेवा प्रदाता लक्ष्य संसाधन की ओर से सुरक्षा जांच करता है। यदि सेवा प्रदाता के पास एक मान्य सुरक्षा संदर्भ पहले से मौजूद है, तो चरण 2-11 को छोड़ दें।

2. IdP पर एकल साइन-ऑन (एसएसओ) सेवा पर रीडायरेक्ट करें

सेवा प्रदाता पहचान प्रदाता पर उपयोगकर्ता एजेंट को एकल साइन-ऑन (एसएसओ) सेवा पर पुनर्निर्देशित करता है। ए RelayState पैरामीटर और ए एसएएमएलart रीडायरेक्ट URL में पैरामीटर जोड़े जाते हैं।

3. IdP पर एसएसओ सेवा के लिए अनुरोध करें

उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा का अनुरोध करता है:

 https://idp.example.org/एसएएमएल2/एसएसओ/Artifact?एसएएमएलart=artifact_1&RelayState=token

कहाँ token सेवा प्रदाता और पर रखी गई राज्य की जानकारी का एक अपारदर्शी संदर्भ है artifact_1 एक एसएएमएल अर्टिफैक्ट साक्ष्य है, दोनों चरण 2 पर जारी किए गए हैं।

4. एसपी में अर्टिफैक्ट साक्ष्य समाधान सेवा का अनुरोध करें

एसएसओ सेवा एक भेजकर अर्टिफैक्ट को संदर्भित करती है <samlp:ArtifactResolve> सेवा प्रदाता पर अर्टिफैक्ट साक्ष्य समाधान सेवा के लिए एसएएमएल SOAP संदेश के लिए बाध्य तत्व:

  <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> तत्व) पहचान प्रदाता पर एसएसओ सेवा के लिए एक एसएएमएल SOAP संदेश के लिए बाध्य:

  <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 पैरामीटर और एक नया एसएएमएलart रीडायरेक्ट URL में पैरामीटर जोड़े जाते हैं।

7. एसपी में अभिकथन उपभोक्ता सेवा का अनुरोध करें

उपयोगकर्ता एजेंट सेवा प्रदाता पर दावा उपभोक्ता सेवा का अनुरोध करता है:

 https://sp.example.com/एसएएमएल2/एसएसओ/Artifact?एसएएमएलart=artifact_2&RelayState=token

कहाँ token चरण 3 से टोकन मान है और artifact_2 चरण 6 में जारी किया गया एसएएमएल अर्टिफैक्ट साक्ष्य है।

8. IdP पर अर्टिफैक्ट साक्ष्य समाधान सेवा का अनुरोध करें

अभिकथन उपभोक्ता सेवा अर्टिफैक्ट को एक भेजकर डिरेफेरेंस करती है <samlp:ArtifactResolve> पहचान प्रदाता पर अर्टिफैक्ट साक्ष्य समाधान सेवा के लिए एसएएमएल SOAP संदेश के लिए बाध्य तत्व:

  <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> तत्व) सेवा प्रदाता पर दावा उपभोक्ता सेवा के लिए एक एसएएमएल SOAP संदेश के लिए बाध्य है:

  <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) और उदाहरण Deutschland (example.de) आभासी संगठन उदाहरण ग्लोबल एलायंस (example.com) से संबंधित हैं। इस उदाहरण में, 'example.com' डोमेन सामान्य डोमेन है। उदाहरण यूके और उदाहरण Deutschland दोनों की इस डोमेन में मौजूदगी है (uk.example.com और de.example.com, सम्मान)।

सामान्य डोमेन कुकी एक सुरक्षित ब्राउज़र कुकी है जिसका दायरा सामान्य डोमेन तक सीमित है। प्रत्येक ब्राउज़र उपयोगकर्ता के लिए, यह कुकी हाल ही में विज़िट किए गए IdPs की एक इतिहास सूची संग्रहीत करती है। कुकी का नाम और मान IdP डिस्कवरी प्रोफ़ाइल (एसएएमएलProf[3]).

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

अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल

अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल एक सामान्य प्रोफ़ाइल है जो निम्नलिखित एसएएमएल 2.0 तत्वों का उपयोग करके कई प्रकार के तथाकथित प्रश्नों को समायोजित करती है:

  • <samlp:AssertionIDRequest> एलिमेंट, जिसका उपयोग उसके विशिष्ट पहचानकर्ता (ID)
  • <samlp:SubjectQuery> तत्व, जो एक सार विस्तार बिंदु है जो नए विषय-आधारित एसएएमएल प्रश्नों को परिभाषित करने की अनुमति देता है
  • <samlp:AuthnQuery> तत्व, जिसका उपयोग प्रमाणीकरण प्राधिकरण से किसी दिए गए विषय के बारे में मौजूदा प्रमाणीकरण दावे का अनुरोध करने के लिए किया जाता है
  • <samlp:AttributeQuery> तत्व, जिसका उपयोग किसी विशेषता प्राधिकरण से किसी दिए गए विषय के बारे में विशेषताओं का अनुरोध करने के लिए किया जाता है
  • <samlp:AuthzDecisionQuery> तत्व, जिसका उपयोग किसी विश्वसनीय तृतीय पक्ष से प्राधिकरण निर्णय का अनुरोध करने के लिए किया जाता है

एसएएमएल SOAP बाइंडिंग का उपयोग अक्सर प्रश्नों के संयोजन में किया जाता है।

एसएएमएल विशेषता क्वेरी

विशेषता क्वेरी शायद एसएएमएल क्वेरी का सबसे महत्वपूर्ण प्रकार है। अक्सर एक अनुरोधकर्ता, प्रिंसिपल की ओर से कार्य करता है, विशेषताओं के लिए एक पहचान प्रदाता से पूछताछ करता है। नीचे हम एक प्रिंसिपल द्वारा सीधे जारी किए गए प्रश्न का उदाहरण देते हैं:

  <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 e> विशेषता मेटाडेटा की अवसान तिथि देती है।
  • <ds:Signature> ई> तत्व (जिसे सादगी के लिए छोड़ दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।
  • संगठन में पहचाना गया <md:Organization> तत्व इकाई विवरणक द्वारा वर्णित इकाई के लिए जिम्मेदार है (एसएएमएलMeta का खंड 2.3.2[4]).
  • में संपर्क जानकारी <md:ContactPerson> तत्व इकाई के लिए जिम्मेदार एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलMeta का अनुभाग 2.3.2.2 देखें।[4]

परिभाषा के अनुसार, एक पहचान प्रदाता एक एसएसओ सेवा का प्रबंधन करता है जो एसएएमएलProf में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।[3]उदाहरण के लिए, में वर्णित पहचान प्रदाता देखें <md:IDPएसएसओDescriptor> तत्व अगले भाग में दिखाया गया है।

एसएसओ सेवा मेटाडेटा

पहचान प्रदाता पर एसएसओ सेवा का वर्णन एक में किया गया है <md:IDPएसएसओDescriptor> तत्व:

  <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"> IdP मेटाडेटा में तत्व। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य वस्तु को हटा दिया गया है।
  • Binding ई> की विशेषता <md:ArtifactResolutionService> तत्व इंगित करता है कि एसएएमएल SOAP बाइंडिंग (एसएएमएलBind[2] अर्टिफैक्ट साक्ष्य संकल्प के लिए इस्तेमाल किया जाना चाहिए।
  • Location ई> की विशेषता <md:ArtifactResolutionService> #SP रीडायरेक्ट आर्टिफ़ैक्ट के चरण 8 में तत्व का उपयोग किया गया है; IdP रीडायरेक्ट अर्टिफैक्ट साक्ष्य प्रोफ़ाइल।
  • का मूल्य index की विशेषता <md:ArtifactResolutionService> तत्व के रूप में प्रयोग किया जाता है EndpointIndex एसएएमएल प्रकार 0x0004 अर्टिफैक्ट साक्ष्य के निर्माण में।
  • <md:NameIDFormat> ई> तत्व इंगित करते हैं कि एसएएमएल नाम पहचानकर्ता प्रारूप (एसएएमएल Core[1] एसएसओ सेवा समर्थन करती है।
  • Binding ई> के गुण <md:SingleSignOnService> तत्व एसएएमएल 2.0 बाइंडिंग विनिर्देश (एसएएमएलBind[2]).
  • Location ई> की विशेषता <md:SingleSignOnService> तत्व जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल POST बाइंडिंग का समर्थन करता है, POST अनुरोध के चरण 2 में उपयोग किया जाता है; आईडीपी पोस्ट प्रतिक्रिया प्रोफ़ाइल।
  • Location ई> की विशेषता <md:SingleSignOnService> तत्व जो हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का समर्थन करता है #SP रीडायरेक्ट अर्टिफैक्ट के चरण 2 में उपयोग किया जाता है; IdP रीडायरेक्ट अर्टिफैक्ट साक्ष्य प्रोफ़ाइल।
  • <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 e> विशेषता मेटाडेटा की अवसान तिथि देती है।
  • <ds:Signature> ई> तत्व (जिसे सादगी के लिए छोड़ दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।
  • संगठन में पहचाना गया <md:Organization> तत्व इकाई विवरणक द्वारा वर्णित इकाई के लिए जिम्मेदार है (एसएएमएलMeta का खंड 2.3.2[4]).
  • में संपर्क जानकारी <md:ContactPerson> तत्व इकाई के लिए जिम्मेदार एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलMeta का अनुभाग 2.3.2.2 देखें।[4]

परिभाषा के अनुसार, एक सेवा प्रदाता एक अभिकथन उपभोक्ता सेवा का प्रबंधन करता है जो एसएएमएलProf में निर्दिष्ट एसएएमएल वेब ब्राउज़र एसएसओ प्रोफ़ाइल का समर्थन करती है।[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 विशेषता को पैरेंट तत्व तक बढ़ा दिया गया है, जिसका अर्थ है कि अवसान तिथि प्रत्येक चाइल्ड तत्व पर प्रयुक्त होती है।
  • अनावश्यक नामस्थान घोषणाओं से संरक्षित करने के लिए एक्सएमएल नामस्थान घोषणाओं को पैरेंट तत्व तक बढ़ा दिया गया है।

सामान्य रूप से मेटाडेटा एग्रीगेट विश्वसनीय तृतीय पक्षों द्वारा प्रकाशित किए जाते हैं जिन्हें संघ कहा जाता है जो एग्रीगेट में सभी मेटाडेटा की अखंडता की प्रत्याभूति देते हैं। ध्यान दें कि मेटाडेटा एग्रीगेट बहुत बड़ा हो सकता है, जो प्रति एग्रीगेट सैकड़ों या हजारों इकाइयों से बना हो सकता है।

यह भी देखें

संदर्भ

Primary references:

  1. 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. 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. 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. 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:

Deprecated references: