एसएएमएल 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...")
 
No edit summary
 
(8 intermediate revisions by 3 users not shown)
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 का उदाहरण ===
=== एसएएमएल का उदाहरण ===
<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> तत्व, जो उन शर्तों को देता है जिनके अंतर्गत असर्शन को वैध माना जाना है
* <code><saml:AuthnStatement></code> तत्व, जो पहचान प्रदाता पर प्रमाणीकरण के कार्य का वर्णन करता है
* <code><saml:AuthnStatement></code> तत्व, जो पहचान प्रदाता पर प्रमाणीकरण के कार्य का वर्णन करता है
* <code><saml:AttributeStatement></code> तत्व, जो प्रमाणित प्रिंसिपल से जुड़े एक बहु-मूल्यवान विशेषता का दावा करता है
* <code><saml:AttributeStatement></code> तत्व, जो प्रमाणित सिद्धांत से जुड़े एक बहु-मान एट्रिब्यूट का असर्शन करता है


शब्दों में, अभिकथन निम्नलिखित जानकारी को कूटबद्ध करता है:
शब्दों में, असर्शन निम्नलिखित जानकारी को एन्कोड करता है:


<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 समय (https://idp.example.org/SAML2) पर जारी किया गया था विशेष रूप से सेवा प्रदाता (https://sp.example.com/SAML2) के लिए विषय (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"/>
एसएएमएल क्रोड में निम्नलिखित प्रोटोकॉल निर्दिष्ट हैं:<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> तत्व पहचान प्रदाता को प्रेषित किया जाता है:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:AuthnRequest
   <samlp:AuthnRequest
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 प्रमाणीकरण स्टेटमेंट एसरशन का अनुरोध करता है, स्पष्ट रूप से एक सेवा प्रदाता (https://sp.example.com/SAML2) द्वारा जारी किया गया था और बाद में पहचान प्रदाता (ब्राउज़र के माध्यम से) को प्रस्तुत किया गया था। पहचान प्रदाता सिद्धांत (यदि आवश्यक हो) को प्रमाणित करता है और एक प्रमाणीकरण प्रतिक्रिया जारी करता है, जो सेवा प्रदाता (पुनः ब्राउज़र के माध्यम से) को वापस प्रेषित की जाती है।


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


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


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


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


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


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


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


=== HTTP रीडायरेक्ट बाइंडिंग ===
=== हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल पुनर्निर्देशन बाइंडिंग ===


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


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


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


   <nowiki>https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2
   <nowiki>https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=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>, आईडीपी और एसपी के बीच (मैन्युअल सूचना विनिमय के माध्यम से या एसएएमएल 2.0 मेटाडेटा के माध्यम से) पहले ही सहमति हो गई है। उस स्थिति में अनुरोध पर चिन्ह करना सुरक्षा बाधा नहीं है। जब <code><samlp:AuthnRequest></code> आईडीपी द्वारा पहले से ज्ञात जानकारी नहीं है, जैसे कि असर्शन उपभोक्ता सेवा यूआरएल, सुरक्षा उद्देश्यों के लिए अनुरोध पर चिन्ह करने की अनुशंसा की जाती है।


=== HTTP पोस्ट बाइंडिंग ===
=== हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल पीएएसटी बाइंडिंग ===


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


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


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


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


   <nowiki>https://idp.example.org/SAML2/SSO/Artifact</nowiki>?SAMLart=artifact
   <nowiki>https://idp.example.org/SAML2/SSO/Artifact?SAMLart=</nowiki>''artifact''


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


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


सामान्य तौर पर, SAML 2.0 आर्टिफैक्ट को इस तरह परिभाषित किया जाता है (SAMLBind<ref name="SAMLBind"/>):
सामान्य रूप से, एसएएमएल 2.0 अर्टिफैक्ट को (एसएएमएलबाइंड)<ref name="SAMLBind"/> इस तरह परिभाषित किया जाता है:
  SAML_artifact := B64 (TypeCode EndpointIndex RemainingArtifact)
  TypeCode  := Byte1Byte2
  EndpointIndex := Byte1Byte2
इस प्रकार एक एसएएमएल 2.0 अर्टिफैक्ट में तीन घटक होते हैं: एक दो-बाइट <code>TypeCode</code>, एक दो-बाइट <code>EndpointIndex</code>, और बाइट्स के यादृच्छिक अनुक्रम जिसे <code>RemainingArtifact</code>को कहा जाता है जानकारी के इन तीन भागों को जोड़ा गया है और पूर्ण अर्टिफैक्ट प्राप्त करने के लिए बेस64-एन्कोडेड हैं।


  SAML_artifact:= B64 (टाइपकोड एंडपॉइंटइंडेक्स शेष आर्टिफैक्ट)
<code>TypeCode</code> विशिष्ट रूप से अर्टिफैक्ट प्रारूप की पहचान करता है। एसएएमएल 2.0 0x0004 प्रकार के केवल एक ऐसे अर्टिफैक्ट <code>EndpointIndex</code> को पूर्वनिर्धारित करता है। अर्टिफैक्ट निर्गमक द्वारा प्रबंधित एक विशेष अर्टिफैक्ट समापन बिंदु का एक संदर्भ है जो पहले उल्लेखित आईडीपी या एसपी हो सकता है। <code>RemainingArtifact</code> जो कि प्रकार की परिभाषा से निर्धारित होता है, कि वह आर्टिफैक्ट का प्रमुख अंश है।
  टाइपकोड := बाइट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>डी>, जो कि प्रकार की परिभाषा से निर्धारित होता है, कलाकृतियों का मांस है।
टाइप 0x0004 आर्टिफैक्ट का प्रारूप आगे इस प्रकार परिभाषित किया गया है:
TypeCode  := 0x0004
  RemainingArtifact  := SourceId MessageHandle
  SourceId  := 20-byte_sequence
  MessageHandle  := 20-byte_sequence
इस प्रकार एक टाइप 0x0004 अर्टिफैक्ट आकार 44 बाइट्स (एन्कोडेड) का है। <code>SourceId</code> > बाइट्स का एक यादृच्छिक क्रम है, हालांकि व्यवहार में, <code>SourceId</code> निर्गमक के एंटिटीआईडी का एसएचए-1 हैश है। <code>MessageHandle</code> बाइट्स का एक यादृच्छिक अनुक्रम है जो एक एसएएमएल संदेश का संदर्भ देता है कि अर्टिफैक्ट निर्गमक मांग पर उत्पादन करने के लिए तैयार है।


0x0004 आर्टिफैक्ट प्रकार के प्रारूप को आगे निम्नानुसार परिभाषित किया गया है:
उदाहरण के लिए, इस हेक्स-एन्कोडेड टाइप 0x0004 अर्टिफैक्ट पर विचार करें:
 
  टाइपकोड: = 0x0004
  RemainingArtifact:= SourceId MessageHandle
  स्रोत आईडी: = 20-बाइट_अनुक्रम
  मैसेजहैंडल: = 20-बाइट_अनुक्रम
 
इस प्रकार एक प्रकार 0x0004 आर्टिफैक्ट आकार 44 बाइट्स (एन्कोडेड) का है। <code>SourceId</code> ई> बाइट्स का एक मनमाना क्रम है, हालांकि व्यवहार में, <code>SourceId</code> जारीकर्ता के entityID का SHA-1 हैश है। <code>MessageHandle</code> ई> बाइट्स का एक यादृच्छिक अनुक्रम है जो एक एसएएमएल संदेश का संदर्भ देता है कि आर्टिफैक्ट जारीकर्ता ऑन-डिमांड उत्पादन करने को तैयार है।
 
उदाहरण के लिए, इस हेक्स-एन्कोडेड प्रकार 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 बाइट निर्गमक के एंटिटीआईडी (<nowiki>https://idp.example.org/SAML2</nowiki>) के एसएचए-1 हैश के बाद 20 यादृच्छिक बाइट हैं। इन 44 बाइट्स का बेस64-एन्कोडिंग वही है जो आप ऊपर <code>ArtifactResolveRequest</code> उदाहरण में देखते हैं।


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


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


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


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


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


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


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


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


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


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


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


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>


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


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


2. आईडीपी एसएसओ सेवा पर रीडायरेक्ट करें
'''2. आईडीपी एसएसओ सेवा पर पुनर्निर्देशन करें'''


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


<syntaxhighlight lang="http">
<syntaxhighlight lang="http">
302 Redirect
302 Redirect
Location: https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token
Location: https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token
</syntaxhighlight>
</syntaxhighlight><code>RelayState</code> टोकन सेवा प्रदाता पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है। <code>SAMLRequest</code> पैरामीटर का मान एक <code><samlp:AuthnRequest></code> तत्व का डिफ्लेटेड, बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड मान है:<syntaxhighlight lang="xml">
 
<code>RelayState</code> ई> टोकन सेवा प्रदाता पर रखी गई राज्य सूचना का एक अपारदर्शी संदर्भ है। का मूल्य <code>SAMLRequest</code> पैरामीटर एक डिफ्लेटेड, बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड मान है <code><samlp:AuthnRequest></code> तत्व:
 
<syntaxhighlight lang="xml">
   <samlp:AuthnRequest
   <samlp:AuthnRequest
     xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
     xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Line 348: Line 336:
   </samlp:AuthnRequest>
   </samlp:AuthnRequest>
</syntaxhighlight>
</syntaxhighlight>
SP हस्ताक्षर कुंजी का उपयोग करके SAMLRequest पर हस्ताक्षर किए जा सकते हैं। आमतौर पर, हालांकि, यह आवश्यक नहीं है।
एसपी चिन्ह कुंजी का उपयोग करके <code>SAMLRequest</code> पर चिन्ह किए जा सकते हैं। सामान्य रूप से, हालांकि, यह आवश्यक नहीं है।


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


उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक जीईटी अनुरोध जारी करता है:
उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक जीईटी अनुरोध जारी करता है:
GET /SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token HTTP/1.1
Host: idp.example.org
जहां <code>SAMLRequest</code> और <code>RelayState</code> पैरामीटर के मान पुन: निर्देशित में दिए गए मान के समान हैं। पहचान प्रदाता की एसएसओ सेवा <code><samlp:AuthnRequest></code> तत्व को संसाधित करती है (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और अनुरोध को उसी अनुक्रम में बढ़ाकर) और एक सुरक्षा जांच करती है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता किसी भी तंत्र (विवरण हटाे गए) के साथ उपयोगकर्ता की पहचान करता है।


<सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6>
'''4. एक्सएचटीएमएल प्ररूप के साथ प्रतिक्रिया दें'''
GET /SAML2/SSO/रीडायरेक्ट?SAMLRequest=request&RelayState=token HTTP/1.1
होस्ट: idp.example.org
</वाक्यविन्यास हाइलाइट>


जहां के मूल्य <code>SAMLRequest</code> और <code>RelayState</code> पैरामीटर वही हैं जो रीडायरेक्ट में दिए गए हैं. पहचान प्रदाता पर SSO सेवा प्रक्रिया करती है <code><samlp:AuthnRequest></code> तत्व (यूआरएल-डिकोडिंग, बेस 64-डिकोडिंग और उस क्रम में अनुरोध को बढ़ाकर) और सुरक्षा जांच करता है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता को किसी भी तंत्र (विवरण छोड़े गए) के साथ पहचानता है।
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
  <form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...>
  <input type="hidden" name="SAMLResponse" value="response" />
  <input type="hidden" name="RelayState" value="token" />
  ...
  <input type="submit" value="Submit" />
  </form>


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


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


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 431: Line 413:
   </samlp:Response>
   </samlp:Response>
</syntaxhighlight>
</syntaxhighlight>
5. एसपी में दावा उपभोक्ता सेवा का अनुरोध करें
'''5. एसपी में असर्शन उपभोक्ता सेवा का अनुरोध'''
 
उपयोगकर्ता एजेंट सेवा प्रदाता पर अभिकथन उपभोक्ता सेवा के लिए एक POST अनुरोध जारी करता है:
 
<सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6>
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
होस्ट: sp.example.com
सामग्री-प्रकार: एप्लिकेशन/x-www-form-urlencoded
सामग्री-लंबाई: एनएनएन
SAMLResponse=प्रतिक्रिया&RelayState=token
</वाक्यविन्यास हाइलाइट>


जहां के मूल्य <code>SAMLResponse</code> और <code>RelayState</code> पैरामीटर चरण 4 पर XHTML फ़ॉर्म से लिए गए हैं।
उपयोगकर्ता एजेंट सेवा प्रदाता पर असर्शन उपभोक्ता सेवा के लिए एक पीएएसटी अनुरोध जारी करता है:
POST /SAML2/SSO/POST HTTP/1.1
Host: sp.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: nnn
 
SAMLResponse=response&RelayState=token
जहां <code>SAMLResponse</code> और <code>RelayState</code> पैरामीटर के मान चरण 4 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं।


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


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


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


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


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>


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


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


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


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


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


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


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


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>


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


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


सेवा प्रदाता XHTML फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करता है:
सेवा प्रदाता एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करता है:
<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>
<form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...>
  <फॉर्म विधि = पोस्ट एक्शन = https://idp.example.org/SAML2/SSO/POST ...>
  <input type="hidden" name="SAMLRequest" value="request" />
    <इनपुट प्रकार = छिपा हुआ नाम = SAMLRequest मान = अनुरोध />
  <input type="hidden" name="RelayState" value="token" />
    <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
  ...
    ...
  <input type="submit" value="Submit" />
    <इनपुट प्रकार = मूल्य जमा करें = जमा करें />
   </form>
   </रूप>
<code>RelayState</code> टोकन सेवा प्रदाता पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है। <code>SAMLRequest</code> पैरामीटर का मान निम्नलिखित <code><samlp:AuthnRequest></code> तत्व का बेस 64 एन्कोडिंग है:
</वाक्यविन्यास हाइलाइट> <code>RelayState</code> ई> टोकन सेवा प्रदाता पर रखी गई राज्य सूचना का एक अपारदर्शी संदर्भ है। का मूल्य <code>SAMLRequest</code> पैरामीटर निम्न का बेस 64 एन्कोडिंग है <code><samlp:AuthnRequest></code> तत्व:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:AuthnRequest
   <samlp:AuthnRequest
Line 499: Line 476:
   </samlp:AuthnRequest>
   </samlp:AuthnRequest>
</syntaxhighlight>
</syntaxhighlight>
से पहले <code><samlp:AuthnRequest></code> तत्व एक्सएचटीएमएल फॉर्म में डाला गया है, यह पहले बेस 64-एन्कोडेड है।
<code><samlp:AuthnRequest></code> तत्व को एक्सएचटीएमएल प्ररूप में डालने से पहले, इसे पहले बेस64-एन्कोड किया जाता है।


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


उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक पोस्ट अनुरोध जारी करता है:
उपयोगकर्ता एजेंट पहचान प्रदाता पर एसएसओ सेवा के लिए एक पीएएसटी अनुरोध जारी करता है:
<सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6>
POST /SAML2/SSO/POST HTTP/1.1
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
Host: idp.example.org
होस्ट: idp.example.org
Content-Type: application/x-www-form-urlencoded
सामग्री-प्रकार: एप्लिकेशन/x-www-form-urlencoded
Content-Length: nnn
सामग्री-लंबाई: एनएनएन
SAMLRequest=request&RelayState=token
जहां <code>SAMLRequest</code> और <code>RelayState</code> पैरामीटर के मान चरण 2 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं। एसएसओ सेवा <code><samlp:AuthnRequest></code> तत्व को संसाधित करती है (URL-डिकोडिंग, बेस 64-डिकोडिंग और उस अनुक्रम में अनुरोध को बढ़ाकर) और निष्पादित करती है एक सुरक्षा जांच. यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता (विवरण हटा दिया गया है) की पहचान करता है।


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


4. एक्सएचटीएमएल फॉर्म के साथ प्रतिक्रिया दें
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
 
   <form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...>
एसएसओ सेवा अनुरोध को मान्य करती है और एक्सएचटीएमएल फॉर्म वाले दस्तावेज़ के साथ प्रतिक्रिया करती है:
  <input type="hidden" name="SAMLResponse" value="response" />
<वाक्यविन्यास हाइलाइट लैंग = एचटीएमएल हाइलाइट = 2-3>
  <input type="hidden" name="RelayState" value="token" />
   <फॉर्म विधि = पोस्ट कार्रवाई = https://sp.example.com/SAML2/SSO/POST ...>
  ...
    <इनपुट प्रकार = छिपा हुआ नाम = SAMLResponse मान = प्रतिक्रिया />
  <input type="submit" value="Submit" />
    <इनपुट प्रकार = छिपा हुआ नाम = रिलेस्टेट मूल्य = टोकन />
   </form>
    ...
<code>RelayState</code> का मान चरण 3 से संरक्षित किया गया है। <code>SAMLResponse</code> पैरामीटर का मान निम्नलिखित <code><samlp:Response></code> तत्व का बेस64 एन्कोडिंग है:
    <इनपुट प्रकार = मूल्य जमा करें = जमा करें />
   </रूप>
</वाक्यविन्यास हाइलाइट>
का मूल्य <code>RelayState</code> पैरामीटर को चरण 3 से संरक्षित किया गया है। का मान <code>SAMLResponse</code> पैरामीटर निम्न का बेस 64 एन्कोडिंग है <code><samlp:Response></code> तत्व:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:Response
   <samlp:Response
Line 581: Line 554:
   </samlp:Response>
   </samlp:Response>
</syntaxhighlight>
</syntaxhighlight>
5. एसपी में दावा उपभोक्ता सेवा का अनुरोध करें
'''5. एसपी में असर्शन उपभोक्ता सेवा का अनुरोध करें EDIT'''
 
उपयोगकर्ता एजेंट सेवा प्रदाता पर दावा उपभोक्ता सेवा के लिए एक POST अनुरोध जारी करता है:
<सिंटैक्सहाइलाइट लैंग = http हाइलाइट = 6>
पोस्ट/एसएएमएल2/एसएसओ/पोस्ट एचटीटीपी/1.1
होस्ट: sp.example.com
सामग्री-प्रकार: एप्लिकेशन/x-www-form-urlencoded
सामग्री-लंबाई: एनएनएन
SAMLResponse=प्रतिक्रिया&RelayState=token
</वाक्यविन्यास हाइलाइट>
जहां के मूल्य <code>SAMLResponse</code> और <code>RelayState</code> पैरामीटर चरण 4 पर XHTML फ़ॉर्म से लिए गए हैं।


6. लक्ष्य संसाधन पर पुनर्निर्देशित करें
उपयोगकर्ता एजेंट सेवा प्रदाता पर असर्शन उपभोक्ता सेवा के लिए एक पीएएसटी अनुरोध जारी करता है:
POST /SAML2/SSO/POST HTTP/1.1
Host: sp.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: nnn
 
SAMLResponse=response&RelayState=token
जहां <code>SAMLResponse</code> और <code>RelayState</code> पैरामीटर के मान चरण 4 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं।


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


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


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>


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


चूंकि एक सुरक्षा संदर्भ मौजूद है, सेवा प्रदाता संसाधन को उपयोगकर्ता एजेंट को लौटाता है।
=====एसपी पुनर्निर्देशन अर्टिफैक्ट; आईडीपी अनुप्रेषित अर्टिफैक्ट =====


==== एसपी रीडायरेक्ट आर्टिफैक्ट; IdP अनुप्रेषित विरूपण साक्ष्य ==
यह एसएएमएल 2.0 वेब ब्राउज़र एसएसओ प्रोफ़ाइल एसएएमएलप्रॉफ<ref name="SAMLProf" /> जहां सेवा प्रदाता (एसपी) और पहचान प्रदाता (आईडीपी) दोनों हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का उपयोग करते हैं। दोनों आर्टिफैक्ट को हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल जीईटी के माध्यम से उनके संबंधित समापन बिंदुओं तक पहुँचाया जाता है।


यह SAML 2.0 वेब ब्राउज़र SSO प्रोफ़ाइल (SAMLProf<ref name="SAMLProf"/> जहां सेवा प्रदाता (SP) और पहचान प्रदाता (IdP) दोनों HTTP आर्टिफैक्ट बाइंडिंग का उपयोग करते हैं। दोनों कलाकृतियों को HTTP GET के माध्यम से उनके संबंधित समापन बिंदुओं तक पहुँचाया जाता है।
[[File:Saml2-browser-sso-artifact.gif|frame|center|एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (अर्टिफैक्ट )]]एसपी में एक सुरक्षित संसाधन के अनुरोध के साथ संदेश संचार प्रारंभ होता है:


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


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


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>


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


2. IdP पर सिंगल साइन-ऑन (SSO) सेवा पर रीडायरेक्ट करें
'''2. आईडीपी पर एकल सांकेतिक चिन्ह (एसएसओ) सेवा पर पुनर्निर्देशन करें'''


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


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


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


   <nowiki>https://idp.example.org/SAML2/SSO/Artifact</nowiki>?SAMLart=''artifact_1''&RelayState=''token''
   <nowiki>https://idp.example.org/SAML2/SSO/Artifact?SAMLart=</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> तत्व प्रेषित करके आर्टिफैक्ट को असंदर्भित करती है:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:ArtifactResolve
   <samlp:ArtifactResolve
Line 652: Line 620:
   </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> तत्व होता है) वापस होता है:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:ArtifactResponse
   <samlp:ArtifactResponse
Line 687: Line 655:
   </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>SAMLart</code> पुनर्निर्देशन यूआरएल में पैरामीटर जोड़े जाते हैं।


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


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


   <nowiki>https://sp.example.com/SAML2/SSO/Artifact</nowiki>?SAMLart=''artifact_2''&RelayState=''token''
   https://sp.example.com/SAML2/SSO<nowiki/>/Artifact?SAMLart=''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. आईडीपी पर अर्टिफैक्ट समाधान सेवा का अनुरोध करें'''


अभिकथन उपभोक्ता सेवा आर्टिफैक्ट को एक भेजकर डिरेफेरेंस करती है <code><samlp:ArtifactResolve></code> पहचान प्रदाता पर विरूपण साक्ष्य समाधान सेवा के लिए SAML SOAP संदेश के लिए बाध्य तत्व:
असर्शन उपभोक्ता सेवा पहचान प्रदाता पर आर्टिफैक्ट वियोजन सेवा के लिए एसएएमएल एसओएपी संदेश के लिए बाध्य <code><samlp:ArtifactResolve></code>तत्व को प्रेषित करके आर्टिफैक्ट को असंदर्भित करती है:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:ArtifactResolve
   <samlp:ArtifactResolve
Line 719: Line 687:
   </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> तत्व युक्त) को एसएएमएल एसओएपी संदेश से जोड़कर सेवा प्रदाता पर असर्शन उपभोक्ता सेवा को वापस करती है:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
   <samlp:ArtifactResponse
   <samlp:ArtifactResponse
Line 793: Line 761:
   </samlp:ArtifactResponse>
   </samlp:ArtifactResponse>
</syntaxhighlight>
</syntaxhighlight>
10. लक्ष्य संसाधन पर पुनर्निर्देशित करें
'''10. लक्ष्य संसाधन पर पुनर्निर्देशित करें'''


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


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


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


   <nowiki>https://sp.example.com/myresource</nowiki>
   <nowiki>https://sp.example.com/myresource</nowiki>


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


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


=== पहचान प्रदाता डिस्कवरी प्रोफ़ाइल ===
=== पहचान प्रदाता खोज प्रोफ़ाइल ===


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


* 'आम डोमेन'
* '''<nowiki/>'सामान्य डोमेन''''
* 'कॉमन डोमेन कुकी'
* '''<nowiki/>'सामान्य डोमेन कुकी''''
* 'सामान्य डोमेन कुकी लेखन सेवा'
* '''<nowiki/>'सामान्य डोमेन कुकी लेखन सेवा''''
* 'कॉमन डोमेन कुकी रीडिंग सर्विस'
* '''<nowiki/>'सामान्य डोमेन कुकी पठन सेवा''''


सामान्य डोमेन के एक काल्पनिक उदाहरण के रूप में, मान लें कि उदाहरण यूके (example.co.uk) और उदाहरण Deutschland (example.de) आभासी संगठन उदाहरण ग्लोबल एलायंस (example.com) से संबंधित हैं। इस उदाहरण में, 'example.com' डोमेन सामान्य डोमेन है। उदाहरण यूके और उदाहरण Deutschland दोनों की इस डोमेन में मौजूदगी है (uk.example.com और de.example.com, सम्मान)
सामान्य डोमेन के एक काल्पनिक उदाहरण के रूप में, मान लें कि उदाहरण यूके (example.co.uk) और उदाहरण डॉयचलैंड (example.de) वर्चुअल संगठन उदाहरण वैश्विक गठबंधन (example.com) से संबंधित हैं। इस उदाहरण में, डोमेन '''example.com''' सामान्य डोमेन है। उदाहरण यूके और उदाहरण डॉयचलैंड दोनों की इस डोमेन (uk.example.com और de.example.com, क्रमशः) में उपस्थिति है।


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


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


=== अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल ===
=== असर्शन जांच/अनुरोध प्रोफ़ाइल ===


अभिकथन क्वेरी/अनुरोध प्रोफ़ाइल एक सामान्य प्रोफ़ाइल है जो निम्नलिखित 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 बाइंडिंग का उपयोग अक्सर प्रश्नों के संयोजन में किया जाता है।
एसएएमएल एसओएपी बाइंडिंग का उपयोग प्रायः प्रश्नों के संयोजन में किया जाता है।


==== SAML विशेषता क्वेरी ====
==== एसएएमएल एट्रिब्यूट जांच ====


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


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


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


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


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


=== पहचान प्रदाता मेटाडेटा ===
=== पहचान प्रदाता मेटाडेटा ===


एक पहचान प्रदाता एक में अपने बारे में डेटा प्रकाशित करता है <code><md:EntityDescriptor></code> तत्व:
<code><md:EntityDescriptor></code> तत्व एक पहचान प्रदाता एक में अपने बारे में डेटा प्रकाशित करता है:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 985: Line 953:
इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें:
इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें:


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


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


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


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


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


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


=== सेवा प्रदाता मेटाडेटा ===
=== सेवा प्रदाता मेटाडेटा ===


पहचान प्रदाता की तरह, एक सेवा प्रदाता अपने बारे में डेटा को एक में प्रकाशित करता है <code><md:EntityDescriptor></code> तत्व:
<code><md:EntityDescriptor></code> तत्व पहचान प्रदाता की तरह, एक सेवा प्रदाता अपने बारे में डेटा को एक में प्रकाशित करता है :


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 1,066: Line 1,034:
इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें:
इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें:


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


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


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


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


== यह भी देखें ==
== यह भी देखें ==


* सुरक्षा अभिकथन मार्कअप भाषा
* सुरक्षा असर्शन मार्कअप भाषा
* एसएएमएल 1.1
* एसएएमएल 1.1
* [[एसएएमएल मेटाडेटा]]
* [[एसएएमएल मेटाडेटा]]
* [[SAML-आधारित उत्पाद और सेवाएँ]]
* [[SAML-आधारित उत्पाद और सेवाएँ|एसएएमएल-आधारित उत्पाद और सेवाएँ]]
* [[ओपनआईडी कनेक्ट]]
* [[ओपनआईडी कनेक्ट|मुक्तआईडी संयोजन]]


==संदर्भ==
==संदर्भ==
Line 1,200: Line 1,168:


{{OASIS Standards}}
{{OASIS Standards}}
[[Category: XML- आधारित मानक]] [[Category: कंप्यूटर अभिगम नियंत्रण]] [[Category: पहचान प्रबंधन]] [[Category: संघीय पहचान]] [[Category: पहचान प्रबंधन प्रणाली]] [[Category: मेटाडेटा मानक]] [[Category: कंप्यूटर सुरक्षा सॉफ्टवेयर]]


[[Category: Machine Translated Page]]
[[Category:Collapse templates]]
[[Category:Created On 18/06/2023]]
[[Category:Created On 18/06/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:XML- आधारित मानक]]
[[Category:कंप्यूटर अभिगम नियंत्रण]]
[[Category:कंप्यूटर सुरक्षा सॉफ्टवेयर]]
[[Category:पहचान प्रबंधन]]
[[Category:पहचान प्रबंधन प्रणाली]]
[[Category:मेटाडेटा मानक]]
[[Category:संघीय पहचान]]

Latest revision as of 09:30, 30 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 असर्शन नाम का प्रतिनिधित्व करता है।

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

<saml:Assertion
   xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   ID="_d71a3a8e9fcc45c9e9d248ef7049393fc8f04e5f75"
   Version="2.0"
   IssueInstant="2004-12-05T09:22:05Z">
   <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
   <ds:Signature
     xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
   <saml:Subject>
     <saml:NameID
       Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
       3f7b3dcf-1674-4ecd-92c8-1544f346baf8
     </saml:NameID>
     <saml:SubjectConfirmation
       Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
       <saml:SubjectConfirmationData
         InResponseTo="aaf23196-1773-2113-474a-fe114412ab72"
         Recipient="https://sp.example.com/SAML2/SSO/POST"
         NotOnOrAfter="2004-12-05T09:27:05Z"/>
     </saml:SubjectConfirmation>
   </saml:Subject>
   <saml:Conditions
     NotBefore="2004-12-05T09:17:05Z"
     NotOnOrAfter="2004-12-05T09:27:05Z">
     <saml:AudienceRestriction>
       <saml:Audience>https://sp.example.com/SAML2</saml:Audience>
     </saml:AudienceRestriction>
   </saml:Conditions>
   <saml:AuthnStatement
     AuthnInstant="2004-12-05T09:22:00Z"
     SessionIndex="b07b804c-7c29-ea16-7300-4f3d6f7928ac">
     <saml:AuthnContext>
       <saml:AuthnContextClassRef>
         urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
       </saml:AuthnContextClassRef>
     </saml:AuthnContext>
   </saml:AuthnStatement>
   <saml:AttributeStatement>
     <saml:Attribute
       xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
       x500:Encoding="LDAP"
       NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
       Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"
       FriendlyName="eduPersonAffiliation">
       <saml:AttributeValue
         xsi:type="xs:string">member</saml:AttributeValue>
       <saml:AttributeValue
         xsi:type="xs:string">staff</saml:AttributeValue>
     </saml:Attribute>
   </saml:AttributeStatement>
 </saml:Assertion>

ध्यान दें कि उपरोक्त उदाहरण में <saml:Assertion> तत्व में निम्नलिखित चाइल्ड तत्व सम्मिलित हैं:

  • <saml:Issuer> तत्व, जिसमें पहचान प्रदाता का विशिष्ट पहचानकर्ता होता है
  • <ds:Signature> तत्व, जिसमें <saml:Assertion> तत्व एक अखंडता-संरक्षित डिजिटल चिन्ह (दिखाया नहीं गया) होता है
  • <saml:Subject> तत्व, जो प्रमाणित सिद्धांत की पहचान करता है लेकिन इस स्थितियों में सिद्धांत की पहचान गोपनीयता के कारणों के लिए एक ओपेक अस्थायी पहचानकर्ता के पीछे छिपी हुई है
  • <saml:Conditions> तत्व, जो उन शर्तों को देता है जिनके अंतर्गत असर्शन को वैध माना जाना है
  • <saml:AuthnStatement> तत्व, जो पहचान प्रदाता पर प्रमाणीकरण के कार्य का वर्णन करता है
  • <saml:AttributeStatement> तत्व, जो प्रमाणित सिद्धांत से जुड़े एक बहु-मान एट्रिब्यूट का असर्शन करता है

शब्दों में, असर्शन निम्नलिखित जानकारी को एन्कोड करता है:

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

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

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

इसी प्रकार एट्रिब्यूट स्टेटमेंट का असर्शन होता है कि:

<saml:Subject> तत्व में पहचाने गए सिद्धांत के पास इस संस्थान में 'कर्मचारी' और 'सदस्य' एट्रिब्यूट हैं।

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

एसएएमएल क्रोड में निम्नलिखित प्रोटोकॉल निर्दिष्ट हैं:[1]

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

इन प्रोटोकॉलों में सबसे महत्वपूर्ण-प्रमाणीकरण अनुरोध प्रोटोकॉल-नीचे विस्तार से चर्चा की गई है।

प्रमाणीकरण अनुरोध प्रोटोकॉल

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

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

जब कोई सिद्धांत (या सिद्धांत की ओर से कार्य करने वाली एंटिटी) एक प्रमाणीकरण कथन युक्त असर्शन प्राप्त करना चाहता है, तो एक <samlp:AuthnRequest> तत्व पहचान प्रदाता को प्रेषित किया जाता है:

  <samlp:AuthnRequest
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="aaf23196-1773-2113-474a-fe114412ab72"
    Version="2.0"
    IssueInstant="2004-12-05T09:21:59Z"
    AssertionConsumerServiceIndex="0"
    AttributeConsumingServiceIndex="0">
    <saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
    <samlp:NameIDPolicy
      AllowCreate="true"
      Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
  </samlp:AuthnRequest>

उपरोक्त <samlp:AuthnRequest> तत्व, जो स्पष्ट रूप से एसएएमएल_2.0 प्रमाणीकरण स्टेटमेंट एसरशन का अनुरोध करता है, स्पष्ट रूप से एक सेवा प्रदाता (https://sp.example.com/SAML2) द्वारा जारी किया गया था और बाद में पहचान प्रदाता (ब्राउज़र के माध्यम से) को प्रस्तुत किया गया था। पहचान प्रदाता सिद्धांत (यदि आवश्यक हो) को प्रमाणित करता है और एक प्रमाणीकरण प्रतिक्रिया जारी करता है, जो सेवा प्रदाता (पुनः ब्राउज़र के माध्यम से) को वापस प्रेषित की जाती है।

अर्टिफैक्ट (विरूपण प्रमाण) वियोजन प्रोटोकॉल

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

मान लीजिए, उदाहरण के लिए, एक पहचान प्रदाता निम्नलिखित <samlp:ArtifactResolve> अनुरोध प्रत्यक्ष सेवा प्रदाता से (पूर्व चैनल के माध्यम से) प्रेषित करता है:

  <samlp:ArtifactResolve
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="_cce4ee769ed970b501d680f697989d14"
    Version="2.0"
    IssueInstant="2004-12-05T09:21:58Z">
    <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
    <!-- an ArtifactResolve message SHOULD be signed -->
    <ds:Signature
      xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
    <samlp:Artifact>AAQAAMh48/1oXIM+sDo7Dh2qMp1HM4IF5DaRNmDj6RdUmllwn9jJHyEgIi8=</samlp:Artifact>
  </samlp:ArtifactResolve>

प्रतिक्रिया में, सेवा प्रदाता संलग्न अर्टिफैक्ट द्वारा संदर्भित एसएएमएल तत्व वापस करता है। यह प्रोटोकॉल हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल (एचटीटीपी) अर्टिफैक्ट बाइंडिंग का आधार बनाता है।

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

एसएएमएल 2.0 द्वारा समर्थित बाइंडिंग विनिर्देश (एसएएमएलबाइंड)[2] में उल्लिखित किया गया है:

  • एसएएमएल एसओएपी बाइंडिंग एसओएपी 1.1 पर आधारित
  • वापस एसओएपी (पीएओएस) ​​बाइंडिंग
  • हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल पुनर्निर्देशन बाइंडिंग
  • हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल पीएएसटी बाइंडिंग
  • हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल अर्टिफैक्ट बाइंडिंग
  • एसएएमएल यूआरआई बाइंडिंग

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

हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल पुनर्निर्देशन बाइंडिंग

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

एचटीटीपी पुनर्निर्देशन के माध्यम से प्रेषित एसएएमएल अनुरोधों या प्रतिक्रियाओं में क्रमशः SAMLRequest या SAMLResponse जांच स्ट्रिंग पैरामीटर होता है। प्रेषित किए जाने से पहले, संदेश को उस क्रम में (हेडर और चेकसम के बिना) बेस 64-एन्कोडेड और यूआरएल-एन्कोडेड डिफ्लेट किया जाता है। प्राप्त होने पर, मूल संदेश को पुनर्प्राप्त करने के लिए प्रक्रिया सुरक्षित कर दी जाती है।

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

 https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2
 Mabbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdY
 ib%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8s
 BHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1F
 dgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RkydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NK
 UqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C

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

हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल पीएएसटी बाइंडिंग

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

 <form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...>
  <input type="hidden" name="SAMLRequest" value="''request''" />
 ... other input parameter....
 </form>

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

 <form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...>
  <input type="hidden" name="SAMLResponse" value="''response''" />
 ...
 </form>

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

प्रपत्र के प्रस्तुतीकरण को स्वचालित करने के लिए, जावास्क्रिप्ट की निम्न पंक्ति एक्सएचटीएमएल पेज पर कहीं भी दर्शाया जा सकता है:

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

यह निश्चित रूप से मानता है कि पेज में पहले प्ररूप तत्व में उपरोक्त SAMLResponse सम्मिलित है, जिसमे form तत्व (forms[0]) सम्मिलित है

हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल अर्टिफैक्ट बाइंडिंग

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

 https://idp.example.org/SAML2/SSO/Artifact?SAMLart=artifact

इसके बाद पहचान प्रदाता एक <samlp:ArtifactResolve> अनुरोध (जैसे कि पहले दिखाया गया ArtifactResolveRequest ) प्रत्यक्ष सेवा प्रदाता को पूर्व चैनल के माध्यम से प्रेषित करता है। अंत में, सेवा प्रदाता एक <samlp:ArtifactResponse> तत्व वापस करता है, जिसमें संदर्भित <samlp:AuthnRequest> संदेश है:

  <samlp:ArtifactResponse
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    ID="_d84a49e5958803dedcff4c984c2b0d95"
    InResponseTo="_cce4ee769ed970b501d680f697989d14"
    Version="2.0"
    IssueInstant="2004-12-05T09:21:59Z">
    <!-- an ArtifactResponse message SHOULD be signed -->
    <ds:Signature
      xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
    <samlp:Status>
      <samlp:StatusCode
        Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <samlp:AuthnRequest
      xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
      xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
      ID="_306f8ec5b618f361c70b6ffb1480eade"
      Version="2.0"
      IssueInstant="2004-12-05T09:21:59Z"
      Destination="https://idp.example.org/SAML2/SSO/Artifact"
      ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
      AssertionConsumerServiceURL="https://sp.example.com/SAML2/SSO/Artifact">
      <saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
      <samlp:NameIDPolicy
        AllowCreate="false"
        Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"/>
    </samlp:AuthnRequest>
  </samlp:ArtifactResponse>

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

अर्टिफैक्ट प्रारूप

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

 SAML_artifact := B64 (TypeCode EndpointIndex RemainingArtifact)
 TypeCode  := Byte1Byte2
 EndpointIndex := Byte1Byte2

इस प्रकार एक एसएएमएल 2.0 अर्टिफैक्ट में तीन घटक होते हैं: एक दो-बाइट TypeCode, एक दो-बाइट EndpointIndex, और बाइट्स के यादृच्छिक अनुक्रम जिसे RemainingArtifactको कहा जाता है जानकारी के इन तीन भागों को जोड़ा गया है और पूर्ण अर्टिफैक्ट प्राप्त करने के लिए बेस64-एन्कोडेड हैं।

TypeCode विशिष्ट रूप से अर्टिफैक्ट प्रारूप की पहचान करता है। एसएएमएल 2.0 0x0004 प्रकार के केवल एक ऐसे अर्टिफैक्ट EndpointIndex को पूर्वनिर्धारित करता है। अर्टिफैक्ट निर्गमक द्वारा प्रबंधित एक विशेष अर्टिफैक्ट समापन बिंदु का एक संदर्भ है जो पहले उल्लेखित आईडीपी या एसपी हो सकता है। RemainingArtifact जो कि प्रकार की परिभाषा से निर्धारित होता है, कि वह आर्टिफैक्ट का प्रमुख अंश है।

टाइप 0x0004 आर्टिफैक्ट का प्रारूप आगे इस प्रकार परिभाषित किया गया है:

TypeCode  := 0x0004
 RemainingArtifact  := SourceId MessageHandle
 SourceId  := 20-byte_sequence
 MessageHandle  := 20-byte_sequence

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

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

 00040000c878f3fd685c833eb03a3b0e1daa329d47338205e436913660e3e917549a59709fd8c91f2120222f

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

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

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

  • एसएसओ प्रोफाइल
    • वेब ब्राउज़र एसएसओ प्रोफाइल
    • उन्नत ग्राहक या प्रॉक्सी (ईसीपी) प्रोफ़ाइल
    • पहचान प्रदाता खोज प्रोफ़ाइल
    • एकल लॉगआउट प्रोफाइल
    • नाम पहचानकर्ता प्रबंधन प्रोफ़ाइल
  • अर्टिफैक्ट वियोजन प्रोफ़ाइल
  • असर्शन जांच/अनुरोध प्रोफ़ाइल
  • नाम पहचानकर्ता मानचित्रण प्रोफ़ाइल
  • एसएएमएल एट्रिब्यूट प्रोफाइल
    • मूल एट्रिब्यूट प्रोफ़ाइल
    • एक्स.500/एलडीएपी एट्रिब्यूट प्रोफ़ाइल
    • यूयूआईडी एट्रिब्यूट प्रोफ़ाइल
    • डीसीई पीएसी एट्रिब्यूट प्रोफ़ाइल
    • एक्सएसीएमएल एट्रिब्यूट प्रोफ़ाइल

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

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

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

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

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

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

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

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

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

 https://sp.example.com/myresource

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

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

2. आईडीपी एसएसओ सेवा पर पुनर्निर्देशन करें

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

302 Redirect
Location: https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token

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

  <samlp:AuthnRequest
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="identifier_1"
    Version="2.0"
    IssueInstant="2004-12-05T09:21:59Z"
    AssertionConsumerServiceIndex="0">
    <saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
    <samlp:NameIDPolicy
      AllowCreate="true"
      Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
  </samlp:AuthnRequest>

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

3. आईडीपी पर एसएसओ सेवा के लिए अनुरोध करें

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

GET /SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token HTTP/1.1
Host: idp.example.org

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

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

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

 <form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...>
 <input type="hidden" name="SAMLResponse" value="response" />
 <input type="hidden" name="RelayState" value="token" />
 ...
 <input type="submit" value="Submit" />
 </form>


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

  <samlp:Response
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="identifier_2"
    InResponseTo="identifier_1"
    Version="2.0"
    IssueInstant="2004-12-05T09:22:05Z"
    Destination="https://sp.example.com/SAML2/SSO/POST">
    <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
    <samlp:Status>
      <samlp:StatusCode
        Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion
      xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
      ID="identifier_3"
      Version="2.0"
      IssueInstant="2004-12-05T09:22:05Z">
      <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
      <!-- a POSTed assertion MUST be signed -->
      <ds:Signature
        xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
      <saml:Subject>
        <saml:NameID
          Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
          3f7b3dcf-1674-4ecd-92c8-1544f346baf8
        </saml:NameID>
        <saml:SubjectConfirmation
          Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
          <saml:SubjectConfirmationData
            InResponseTo="identifier_1"
            Recipient="https://sp.example.com/SAML2/SSO/POST"
            NotOnOrAfter="2004-12-05T09:27:05Z"/>
        </saml:SubjectConfirmation>
      </saml:Subject>
      <saml:Conditions
        NotBefore="2004-12-05T09:17:05Z"
        NotOnOrAfter="2004-12-05T09:27:05Z">
        <saml:AudienceRestriction>
          <saml:Audience>https://sp.example.com/SAML2</saml:Audience>
        </saml:AudienceRestriction>
      </saml:Conditions>
      <saml:AuthnStatement
        AuthnInstant="2004-12-05T09:22:00Z"
        SessionIndex="identifier_3">
        <saml:AuthnContext>
          <saml:AuthnContextClassRef>
            urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
         </saml:AuthnContextClassRef>
        </saml:AuthnContext>
      </saml:AuthnStatement>
    </saml:Assertion>
  </samlp:Response>

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

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

POST /SAML2/SSO/POST HTTP/1.1
Host: sp.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: nnn
 
SAMLResponse=response&RelayState=token

जहां SAMLResponse और RelayState पैरामीटर के मान चरण 4 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं।

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

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

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

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

 https://sp.example.com/myresource

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

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

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

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

File:Saml2-browser-sso-post.gif
एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (पीएएसटी)

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

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

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

 https://sp.example.com/myresource

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

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

सेवा प्रदाता एक्सएचटीएमएल प्ररूप वाले दस्तावेज़ के साथ प्रतिक्रिया करता है:

<form method="post" action="https://idp.example.org/SAML2/SSO/POST" ...>
 <input type="hidden" name="SAMLRequest" value="request" />
 <input type="hidden" name="RelayState" value="token" />
 ...
 <input type="submit" value="Submit" />
 </form>

RelayState टोकन सेवा प्रदाता पर रखी गई स्थिति की सूचना का एक ओपेक संदर्भ है। SAMLRequest पैरामीटर का मान निम्नलिखित <samlp:AuthnRequest> तत्व का बेस 64 एन्कोडिंग है:

  <samlp:AuthnRequest
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="identifier_1"
    Version="2.0"
    IssueInstant="2004-12-05T09:21:59Z"
    AssertionConsumerServiceIndex="0">
    <saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
    <samlp:NameIDPolicy
      AllowCreate="true"
      Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
  </samlp:AuthnRequest>

<samlp:AuthnRequest> तत्व को एक्सएचटीएमएल प्ररूप में डालने से पहले, इसे पहले बेस64-एन्कोड किया जाता है।

3. आईडीपी पर एसएसओ सेवा के लिए अनुरोध करें

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

POST /SAML2/SSO/POST HTTP/1.1
Host: idp.example.org
Content-Type: application/x-www-form-urlencoded
Content-Length: nnn

SAMLRequest=request&RelayState=token

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

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

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

 <form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...>
 <input type="hidden" name="SAMLResponse" value="response" />
 <input type="hidden" name="RelayState" value="token" />
 ...
 <input type="submit" value="Submit" />
 </form>

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

  <samlp:Response
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="identifier_2"
    InResponseTo="identifier_1"
    Version="2.0"
    IssueInstant="2004-12-05T09:22:05Z"
    Destination="https://sp.example.com/SAML2/SSO/POST">
    <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
    <samlp:Status>
      <samlp:StatusCode
        Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion
      xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
      ID="identifier_3"
      Version="2.0"
      IssueInstant="2004-12-05T09:22:05Z">
      <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
      <!-- a POSTed assertion MUST be signed -->
      <ds:Signature
        xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
      <saml:Subject>
        <saml:NameID
          Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
          3f7b3dcf-1674-4ecd-92c8-1544f346baf8
        </saml:NameID>
        <saml:SubjectConfirmation
          Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
          <saml:SubjectConfirmationData
            InResponseTo="identifier_1"
            Recipient="https://sp.example.com/SAML2/SSO/POST"
            NotOnOrAfter="2004-12-05T09:27:05Z"/>
        </saml:SubjectConfirmation>
      </saml:Subject>
      <saml:Conditions
        NotBefore="2004-12-05T09:17:05Z"
        NotOnOrAfter="2004-12-05T09:27:05Z">
        <saml:AudienceRestriction>
          <saml:Audience>https://sp.example.com/SAML2</saml:Audience>
        </saml:AudienceRestriction>
      </saml:Conditions>
      <saml:AuthnStatement
        AuthnInstant="2004-12-05T09:22:00Z"
        SessionIndex="identifier_3">
        <saml:AuthnContext>
          <saml:AuthnContextClassRef>
            urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
         </saml:AuthnContextClassRef>
        </saml:AuthnContext>
      </saml:AuthnStatement>
    </saml:Assertion>
  </samlp:Response>

5. एसपी में असर्शन उपभोक्ता सेवा का अनुरोध करें EDIT

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

POST /SAML2/SSO/POST HTTP/1.1
Host: sp.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: nnn
 
SAMLResponse=response&RelayState=token

जहां SAMLResponse और RelayState पैरामीटर के मान चरण 4 पर एक्सएचटीएमएल प्ररूप से लिए गए हैं।

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

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

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

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

 https://sp.example.com/myresource
8. अनुरोधित संसाधन के साथ प्रतिक्रिया दें

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

एसपी पुनर्निर्देशन अर्टिफैक्ट; आईडीपी अनुप्रेषित अर्टिफैक्ट

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

एसएएमएल 2.0 वेब ब्राउज़र एसएसओ (अर्टिफैक्ट )

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

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

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

 https://sp.example.com/myresource

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

2. आईडीपी पर एकल सांकेतिक चिन्ह (एसएसओ) सेवा पर पुनर्निर्देशन करें

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

3. आईडीपी पर एसएसओ सेवा के लिए अनुरोध करें

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

 https://idp.example.org/SAML2/SSO/Artifact?SAMLart=artifact_1&RelayState=token

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

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

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

  <samlp:ArtifactResolve
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="identifier_1"
    Version="2.0"
    IssueInstant="2004-12-05T09:21:58Z"
    Destination="https://sp.example.com/SAML2/ArtifactResolution">
    <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
    <!-- an ArtifactResolve message SHOULD be signed -->
    <ds:Signature
      xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
    <samlp:Artifact>''artifact_1''</samlp:Artifact>
  </samlp:ArtifactResolve>

जहां <samlp:Artifact> तत्व का मान चरण 3 में प्रेषित एसएएमएल अर्टिफैक्ट है।

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

सेवा प्रदाता पर आर्टिफैक्ट वियोजन सेवा पहचान प्रदाता पर एसएसओ सेवा को एक एसएएमएल एसओएपी संदेश से जुड़ा एक <samlp:ArtifactResponse> तत्व (जिसमें एक <samlp:AuthnRequest> तत्व होता है) वापस होता है:

  <samlp:ArtifactResponse
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    ID="identifier_2"
    InResponseTo="identifier_1"
    Version="2.0"
    IssueInstant="2004-12-05T09:21:59Z">
    <!-- an ArtifactResponse message SHOULD be signed -->
    <ds:Signature
      xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
    <samlp:Status>
      <samlp:StatusCode
        Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <samlp:AuthnRequest
      xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
      xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
      ID="identifier_3"
      Version="2.0"
      IssueInstant="2004-12-05T09:21:59Z"
      Destination="https://idp.example.org/SAML2/SSO/Artifact"
      ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
      AssertionConsumerServiceURL="https://sp.example.com/SAML2/SSO/Artifact">
      <saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
      <samlp:NameIDPolicy
        AllowCreate="false"
        Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"/>
    </samlp:AuthnRequest>
  </samlp:ArtifactResponse>

एसएसओ सेवा <samlp:AuthnRequest> तत्व को संसाधित करती है और सुरक्षा जांच करती है। यदि उपयोगकर्ता के पास वैध सुरक्षा संदर्भ नहीं है, तो पहचान प्रदाता उपयोगकर्ता की पहचान करता है (विवरण छोड़ दिया गया है)।

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

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

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

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

 https://sp.example.com/SAML2/SSO/Artifact?SAMLart=artifact_2&RelayState=token

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

8. आईडीपी पर अर्टिफैक्ट समाधान सेवा का अनुरोध करें

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

  <samlp:ArtifactResolve
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="identifier_4"
    Version="2.0"
    IssueInstant="2004-12-05T09:22:04Z"
    Destination="https://idp.example.org/SAML2/ArtifactResolution">
    <saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
    <!-- an ArtifactResolve message SHOULD be signed -->
    <ds:Signature
      xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
    <samlp:Artifact>''artifact_2''</samlp:Artifact>
  </samlp:ArtifactResolve>

जहां <samlp:Artifact> तत्व का मान चरण 7 पर प्रेषित एसएएमएल अर्टिफैक्ट है।

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

पहचान प्रदाता पर आर्टिफैक्ट वियोजन सेवा एक <samlp:ArtifactResponse> तत्व (एक <samlp:Response> तत्व युक्त) को एसएएमएल एसओएपी संदेश से जोड़कर सेवा प्रदाता पर असर्शन उपभोक्ता सेवा को वापस करती है:

  <samlp:ArtifactResponse
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    ID="identifier_5"
    InResponseTo="identifier_4"
    Version="2.0"
    IssueInstant="2004-12-05T09:22:05Z">
    <!-- an ArtifactResponse message SHOULD be signed -->
    <ds:Signature
      xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
    <samlp:Status>
      <samlp:StatusCode
        Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <samlp:Response
      xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
      xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
      ID="identifier_6"
      InResponseTo="identifier_3"
      Version="2.0"
      IssueInstant="2004-12-05T09:22:05Z"
      Destination="https://sp.example.com/SAML2/SSO/Artifact">
      <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
      <ds:Signature
        xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
      <samlp:Status>
        <samlp:StatusCode
          Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
      </samlp:Status>
      <saml:Assertion
        xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
        ID="identifier_7"
        Version="2.0"
        IssueInstant="2004-12-05T09:22:05Z">
        <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
        <!-- a Subject element is required -->
        <saml:Subject>
          <saml:NameID
            Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
            user@mail.example.org
          </saml:NameID>
          <saml:SubjectConfirmation
            Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
            <saml:SubjectConfirmationData
              InResponseTo="identifier_3"
              Recipient="https://sp.example.com/SAML2/SSO/Artifact"
              NotOnOrAfter="2004-12-05T09:27:05Z"/>
          </saml:SubjectConfirmation>
        </saml:Subject>
        <saml:Conditions
          NotBefore="2004-12-05T09:17:05Z"
          NotOnOrAfter="2004-12-05T09:27:05Z">
          <saml:AudienceRestriction>
            <saml:Audience>https://sp.example.com/SAML2</saml:Audience>
          </saml:AudienceRestriction>
        </saml:Conditions>
        <saml:AuthnStatement
          AuthnInstant="2004-12-05T09:22:00Z"
          SessionIndex="identifier_7">
          <saml:AuthnContext>
            <saml:AuthnContextClassRef>
              urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
           </saml:AuthnContextClassRef>
          </saml:AuthnContext>
        </saml:AuthnStatement>
      </saml:Assertion>
    </samlp:Response>
  </samlp:ArtifactResponse>

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

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

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

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

 https://sp.example.com/myresource

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

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

पहचान प्रदाता खोज प्रोफ़ाइल

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

  • 'सामान्य डोमेन'
  • 'सामान्य डोमेन कुकी'
  • 'सामान्य डोमेन कुकी लेखन सेवा'
  • 'सामान्य डोमेन कुकी पठन सेवा'

सामान्य डोमेन के एक काल्पनिक उदाहरण के रूप में, मान लें कि उदाहरण यूके (example.co.uk) और उदाहरण डॉयचलैंड (example.de) वर्चुअल संगठन उदाहरण वैश्विक गठबंधन (example.com) से संबंधित हैं। इस उदाहरण में, डोमेन example.com सामान्य डोमेन है। उदाहरण यूके और उदाहरण डॉयचलैंड दोनों की इस डोमेन (uk.example.com और de.example.com, क्रमशः) में उपस्थिति है।

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

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

असर्शन जांच/अनुरोध प्रोफ़ाइल

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

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

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

एसएएमएल एट्रिब्यूट जांच

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

  <samlp:AttributeQuery
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    ID="aaf23196-1773-2113-474a-fe114412ab72"
    Version="2.0"
    IssueInstant="2006-07-17T20:31:40Z">
    <saml:Issuer
      Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">
      CN=trscavo@uiuc.edu,OU=User,O=NCSA-TEST,C=US
    </saml:Issuer>
    <saml:Subject>
      <saml:NameID
        Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">
        CN=trscavo@uiuc.edu,OU=User,O=NCSA-TEST,C=US
      </saml:NameID>
    </saml:Subject>
    <saml:Attribute
      NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
      Name="urn:oid:2.5.4.42"
      FriendlyName="givenName">
    </saml:Attribute>
    <saml:Attribute
      NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
      Name="urn:oid:1.3.6.1.4.1.1466.115.121.1.26"
      FriendlyName="mail">
    </saml:Attribute>
  </samlp:AttributeQuery>

ध्यान दें कि इस स्थिति में Issuer ही Subject है । इसे कभी-कभी एट्रिब्यूट स्व-जांच कहा जाता है। एक पहचान प्रदाता निम्नलिखित असर्शन को <samlp:Response> तत्व में व्रेप (दिखाया नहीं गया) किया जा सकता है:

  <saml:Assertion
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    ID="_33776a319493ad607b7ab3e689482e45"
    Version="2.0"
    IssueInstant="2006-07-17T20:31:41Z">
    <saml:Issuer>https://idp.example.org/SAML2</saml:Issuer>
    <ds:Signature>...</ds:Signature>
    <saml:Subject>
      <saml:NameID
        Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">
        CN=trscavo@uiuc.edu,OU=User,O=NCSA-TEST,C=US
      </saml:NameID>
      <saml:SubjectConfirmation
        Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
        <saml:SubjectConfirmationData>
          <ds:KeyInfo>
            <ds:X509Data>
              <!-- principal's X.509 cert -->
              <ds:X509Certificate>
  MIICiDCCAXACCQDE+9eiWrm62jANBgkqhkiG9w0BAQQFADBFMQswCQYDVQQGEwJV
  UzESMBAGA1UEChMJTkNTQS1URVNUMQ0wCwYDVQQLEwRVc2VyMRMwEQYDVQQDEwpT
  UC1TZXJ2aWNlMB4XDTA2MDcxNzIwMjE0MVoXDTA2MDcxODIwMjE0MVowSzELMAkG
  A1UEBhMCVVMxEjAQBgNVBAoTCU5DU0EtVEVTVDENMAsGA1UECxMEVXNlcjEZMBcG
  A1UEAwwQdHJzY2F2b0B1aXVjLmVkdTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
  gYEAv9QMe4lRl3XbWPcflbCjGK9gty6zBJmp+tsaJINM0VaBaZ3t+tSXknelYife
  nCc2O3yaX76aq53QMXy+5wKQYe8Rzdw28Nv3a73wfjXJXoUhGkvERcscs9EfIWcC
  g2bHOg8uSh+Fbv3lHih4lBJ5MCS2buJfsR7dlr/xsadU2RcCAwEAATANBgkqhkiG
  9w0BAQQFAAOCAQEAdyIcMTob7TVkelfJ7+I1j0LO24UlKvbLzd2OPvcFTCv6fVHx
  Ejk0QxaZXJhreZ6+rIdiMXrEzlRdJEsNMxtDW8++sVp6avoB5EX1y3ez+CEAIL4g
  cjvKZUR4dMryWshWIBHKFFul+r7urUgvWI12KbMeE9KP+kiiiiTskLcKgFzngw1J
  selmHhTcTCrcDocn5yO2+d3dog52vSOtVFDBsBuvDixO2hv679JR6Hlqjtk4GExp
  E9iVI0wdPE038uQIJJTXlhsMMLvUGVh/c0ReJBn92Vj4dI/yy6PtY/8ncYLYNkjg
  oVN0J/ymOktn9lTlFyTiuY4OuJsZRO1+zWLy9g==
              </ds:X509Certificate>
            </ds:X509Data>
          </ds:KeyInfo>
        </saml:SubjectConfirmationData>
      </saml:SubjectConfirmation>
    </saml:Subject>
    <!-- assertion lifetime constrained by principal's X.509 cert -->
    <saml:Conditions
      NotBefore="2006-07-17T20:31:41Z"
      NotOnOrAfter="2006-07-18T20:21:41Z">
    </saml:Conditions>
    <saml:AuthnStatement
      AuthnInstant="2006-07-17T20:31:41Z">
      <saml:AuthnContext>
        <saml:AuthnContextClassRef>
            urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient
        </saml:AuthnContextClassRef>
      </saml:AuthnContext>
    </saml:AuthnStatement>
    <saml:AttributeStatement>
      <saml:Attribute
        xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
        x500:Encoding="LDAP"
        NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
        Name="urn:oid:2.5.4.42"
        FriendlyName="givenName">
        <saml:AttributeValue
          xsi:type="xs:string">Tom</saml:AttributeValue>
      </saml:Attribute>
      <saml:Attribute
        xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
        x500:Encoding="LDAP"
        NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
        Name="urn:oid:1.3.6.1.4.1.1466.115.121.1.26"
        FriendlyName="mail">
        <saml:AttributeValue
          xsi:type="xs:string">trscavo@gmail.com</saml:AttributeValue>
      </saml:Attribute>
    </saml:AttributeStatement>
  </saml:Assertion>

पहले दिखाए गए BearerAssertion के विपरीत, इस असर्शन का जीवनकाल X.509 प्रमाणपत्र के जीवनकाल के अनुरूप है, जिसका उपयोग सिद्धांत पहचान प्रदाता को प्रमाणित करने के लिए करता था। इसके अतिरक्त, चूंकि असर्शन पर हस्ताक्षर किए गए हैं, उपयोगकर्ता इस असर्शन को एक विश्वसनीय पक्ष को भेज सकता है, और जब तक उपयोगकर्ता संबंधित निजी कुंजी (इसलिए नाम "धारक-कुंजी") का अधिकार प्रमाणित कर सकता है, तब तक विश्वसनीय पक्ष ऐसा कर सकती है आश्वस्त रहें कि असर्शन प्रामाणिक है।

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

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

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

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

पहचान प्रदाता मेटाडेटा

<md:EntityDescriptor> तत्व एक पहचान प्रदाता एक में अपने बारे में डेटा प्रकाशित करता है:

  <md:EntityDescriptor entityID="https://idp.example.org/SAML2" validUntil="2013-03-22T23:00:00Z"
    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <!-- insert ds:Signature element (omitted) -->
    <!-- insert md:IDPSSODescriptor element (below) -->
    <md:Organization>
      <md:OrganizationName xml:lang="en">Some Non-profit Organization of New York</md:OrganizationName>
      <md:OrganizationDisplayName xml:lang="en">Some Non-profit Organization</md:OrganizationDisplayName>
      <md:OrganizationURL xml:lang="en">https://www.example.org/</md:OrganizationURL>
    </md:Organization>
    <md:ContactPerson contactType="technical">
      <md:SurName>SAML Technical Support</md:SurName>
      <md:EmailAddress>mailto:saml-support@example.org</md:EmailAddress>
    </md:ContactPerson>
  </md:EntityDescriptor>

इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें:

  • entityID एट्रिब्यूट एंटिटी का विशिष्ट पहचानकर्ता है।
  • validUntil एट्रिब्यूट मेटाडेटा की अवसान तिथि देती है।
  • <ds:Signature> तत्व (जिसे सरलता के लिए हटा दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।
  • संगठन में पहचाना गया <md:Organization> तत्व एंटिटी विवरण द्वारा वर्णित एंटिटी (एसएएमएलमेटा का खंड 2.3.2)[4] के लिए अधीन है
  • <md:ContactPerson> तत्व में संपर्क जानकारी एंटिटी के लिए अधीन एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलमेटा का अनुभाग 2.3.2.2 देखें।[4]

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

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

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

  <md:IDPSSODescriptor
    protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <md:KeyDescriptor use="signing">
      <ds:KeyInfo>...</ds:KeyInfo>
    </md:KeyDescriptor>
    <md:ArtifactResolutionService isDefault="true" index="0"
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
      Location="https://idp.example.org/SAML2/ArtifactResolution"/>
    <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
    <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
    <md:SingleSignOnService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
      Location="https://idp.example.org/SAML2/SSO/Redirect"/>
    <md:SingleSignOnService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://idp.example.org/SAML2/SSO/POST"/>
    <md:SingleSignOnService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
      Location="https://idp.example.org/SAML2/Artifact"/>
    <saml:Attribute
      NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
      Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"
      FriendlyName="eduPersonAffiliation">
      <saml:AttributeValue>member</saml:AttributeValue>
      <saml:AttributeValue>student</saml:AttributeValue>
      <saml:AttributeValue>faculty</saml:AttributeValue>
      <saml:AttributeValue>employee</saml:AttributeValue>
      <saml:AttributeValue>staff</saml:AttributeValue>
    </saml:Attribute>
  </md:IDPSSODescriptor>

पिछला मेटाडेटा तत्व पहचान प्रदाता पर एसएसओ सेवा का वर्णन करता है। इस तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:

  • पहचान प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल हस्ताक्षर कुंजी और/या एक निजी पूर्व-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी आईडीपी मेटाडेटा में <md:KeyDescriptor use="signing"> तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य सामग्री को मुख्य विवरणक से हटा दिया गया है।
  • <md:ArtifactResolutionService> तत्व BINDING का एट्रिब्यूट प्रदर्शित करता है कि एसएएमएल एसओएपी बाइंडिंग एसएएमएलबाइंड[2] अर्टिफैक्ट वियोजन के लिए उपयोग किया जाना चाहिए।
  • <md:ArtifactResolutionService> तत्व की Location का एट्रिब्यूट का उपयोग "द्विक आर्टिफैक्ट" प्रोफ़ाइल के चरण 8 में किया जाता है।
  • <md:ArtifactResolutionService> तत्व का index का एट्रिब्यूट का मान एसएएमएल प्ररूप 0x0004 अर्टिफैक्ट के संरचना में EndpointIndex के रूप में प्रयोग किया जाता है।
  • <md:NameIDFormat> तत्व प्रदर्शित करते हैं कि एसएएमएल नाम पहचानकर्ता प्रारूप एसएएमएल क्रोड[1] एसएसओ सेवा समर्थन करती है।
  • <md:SingleSignOnService> तत्व की BINDING के एट्रिब्यूट एसएएमएल 2.0 बाइंडिंग विनिर्देश एसएएमएलबाइंड[2] में निर्दिष्ट मानक यूआरआई हैं।
  • <md:SingleSignOnService> तत्व Location का एट्रिब्यूट जो हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल पीएएसटी बाइंडिंग का समर्थन करता है, जिसका पीएएसटी अनुरोध के चरण 2 में उपयोग किया जाता है;
  • <md:SingleSignOnService> तत्व Location का एट्रिब्यूट जो हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल अर्टिफैक्ट बाइंडिंग का समर्थन करता है जिसका एसपी पुनर्निर्देशन अर्टिफैक्ट के चरण 2 में उपयोग किया जाता है;
  • <saml:Attribute> तत्व एक एट्रिब्यूट का वर्णन करता है कि पहचान प्रदाता असर्शन (नीति के अधीन) करने के लिए तैयार किया गया है। <saml:AttributeValue> तत्व उन संभावित मानों की गणना करते हैं जिन पर एट्रिब्यूट प्रयुक्त हो सकती है

जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, Location एट्रिब्यूटएँ के मानो का उपयोग एसएएमएल संदेशों को रूट करने के लिए एक सेवा प्रदाता द्वारा उपयोग की जाती हैं, जो एक विकृत पहचान प्रदाता द्वारा एक मध्य मे आक्षेप की संभावना को कम करता है।

सेवा प्रदाता मेटाडेटा

<md:EntityDescriptor> तत्व पहचान प्रदाता की तरह, एक सेवा प्रदाता अपने बारे में डेटा को एक में प्रकाशित करता है :

  <md:EntityDescriptor entityID="https://sp.example.com/SAML2" validUntil="2013-03-22T23:00:00Z"
    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <!-- insert ds:Signature element (omitted) -->
    <!-- insert md:SPSSODescriptor element (see below) -->
    <md:Organization>
      <md:OrganizationName xml:lang="en">Some Commercial Vendor of California</md:OrganizationName>
      <md:OrganizationDisplayName xml:lang="en">Some Commercial Vendor</md:OrganizationDisplayName>
      <md:OrganizationURL xml:lang="en">https://www.example.com/</md:OrganizationURL>
    </md:Organization>
    <md:ContactPerson contactType="technical">
      <md:SurName>SAML Technical Support</md:SurName>
      <md:EmailAddress>mailto:saml-support@example.com</md:EmailAddress>
    </md:ContactPerson>
  </md:EntityDescriptor>

इस एंटिटी डिस्क्रिप्टर के बारे में निम्नलिखित विवरणों पर ध्यान दें:

  • entityID एट्रिब्यूट एंटिटी का विशिष्ट पहचानकर्ता है।
  • validUntil एट्रिब्यूट मेटाडेटा की अवसान तिथि देती है।
  • <ds:Signature> तत्व (जिसे सरलता के लिए हटा दिया गया है) में एक डिजिटल चिन्ह होता है जो मेटाडेटा की प्रामाणिकता और अखंडता सुनिश्चित करता है।
  • संगठन में पहचाना गया <md:Organization> तत्व एंटिटी विवरणक द्वारा वर्णित एंटिटी एसएएमएलमेटा का खंड 2.3.2[4] के लिए अधीन है
  • <md:ContactPerson> तत्व में संपर्क जानकारी एंटिटी के लिए अधीन एक तकनीकी संपर्क की पहचान करता है। एकाधिक संपर्क और संपर्क प्रकार संभव हैं। एसएएमएलमेटा का अनुभाग 2.3.2.2 देखें।[4]

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

असर्शन उपभोक्ता सेवा मेटाडेटा

असर्शन उपभोक्ता सेवा मे <md:SPSSODescriptor> तत्व में समाहित है:

  <md:SPSSODescriptor
    protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <md:KeyDescriptor use="signing">
      <ds:KeyInfo>...</ds:KeyInfo>
    </md:KeyDescriptor>
    <md:KeyDescriptor use="encryption">
      <ds:KeyInfo>...</ds:KeyInfo>
    </md:KeyDescriptor>
    <md:ArtifactResolutionService isDefault="true" index="0"
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
      Location="https://sp.example.com/SAML2/ArtifactResolution"/>
    <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
    <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
    <md:AssertionConsumerService isDefault="true" index="0"
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://sp.example.com/SAML2/SSO/POST"/>
    <md:AssertionConsumerService index="1"
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
      Location="https://sp.example.com/SAML2/Artifact"/>
    <md:AttributeConsumingService isDefault="true" index="1">
      <md:ServiceName xml:lang="en">Service Provider Portal</md:ServiceName>
      <md:RequestedAttribute
        NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
        Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"
        FriendlyName="eduPersonAffiliation">
      </md:RequestedAttribute>
    </md:AttributeConsumingService>
  </md:SPSSODescriptor>

<md:SPSSODescriptor> मेटाडेटा तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:

  • सेवा प्रदाता सॉफ़्टवेयर को एक निजी एसएएमएल चिन्ह कुंजी और/या एक निजी पूर्व-चैनल टीएलएस कुंजी के साथ कॉन्फ़िगर किया गया है। संबंधित सार्वजनिक कुंजी एसपी मेटाडेटा में <md:KeyDescriptor use="signing"> तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य वस्तु को मुख्य विवरणक से हटा दिया गया है।
  • इसी तरह सेवा प्रदाता सॉफ्टवेयर को एक निजी एसएएमएल डिक्रिप्शन कुंजी के साथ कॉन्फ़िगर किया गया है। एक सार्वजनिक एसएएमएल एन्क्रिप्शन कुंजी <md:KeyDescriptor use="encryption"> एसपी मेटाडेटा में तत्व में सम्मिलित है। संक्षिप्तता के लिए मुख्य विवरणक से मुख्य वस्तु को हटा दिया गया है।
  • <md:AssertionConsumerService> तत्व की index एट्रिब्यूट का उपयोग AssertionConsumerServiceIndex तत्व में <samlp:AuthnRequest> एट्रिब्यूट के मान के रूप में किया जाता है।
  • <md:AssertionConsumerService> तत्वों की BINDING एट्रिब्यूटएँ एसएएमएल 2.0 बाइंडिंग विनिर्देश (एसएएमएलबीआईएनडी)[2] में निर्दिष्ट मानक यूआरआई हैं।
  • <md:AssertionConsumerService> तत्व की Location की एट्रिब्यूट जो हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल पीएएसटी बाइंडिंग (index="0") का समर्थन करती है, जिसका उपयोग "द्विक पीओएसटी" प्रोफ़ाइल के चरण 4 में किया जाता है।
  • <md:AssertionConsumerService> तत्व की Location की एट्रिब्यूट जो हाइपर टेक्स्ट स्थानांतरण प्रोटोकॉल अर्टिफैक्ट बाइंडिंग (index="1") का समर्थन करती है, जिसका उपयोग "द्विक आर्टिफैक्ट" प्रोफ़ाइल के चरण 6 में किया जाता है।
  • <md:AttributeConsumingService> तत्व का उपयोग पहचान प्रदाता द्वारा एक <saml:AttributeStatement> तत्व तैयार करने के लिए किया जाता है जिसे वेब ब्राउज़र एसएसओ के साथ सेवा प्रदाता को भेजा जाता है।
  • <md:AssertionConsumerService> तत्व की index एट्रिब्यूट का उपयोग AttributeConsumingServiceIndex तत्व में <samlp:AuthnRequest> एट्रिब्यूट के मान के रूप में किया जाता है।

जैसा कि इस खंड के प्रारंभ में उल्लेख किया गया है, Location एट्रिब्यूट के मानो का एक पहचान प्रदाता द्वारा एसएएमएल संदेशों को रूट करने के लिए उपयोग की जाती हैं, जो एक विकृत सेवा प्रदाता द्वारा एक बीच मे आक्षेप की संभावना को कम करता है।

मेटाडेटा एग्रीगेट

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

  <md:EntitiesDescriptor validUntil="2013-03-22T23:00:00Z"
    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <!-- insert ds:Signature element (omitted) -->
    <md:EntityDescriptor entityID="https://idp.example.org/SAML2">
      ...
    </md:EntityDescriptor>
    <md:EntityDescriptor entityID="https://sp.example.com/SAML2">
      ...
    </md:EntityDescriptor>
  </md:EntitiesDescriptor>

उपरोक्त <md:EntitiesDescriptor> तत्व के बारे में निम्नलिखित विवरणों पर ध्यान दें:

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

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

यह भी देखें

संदर्भ

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: