एसएएमएल असर की नीतियां

Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं Apigee X दस्तावेज़.
info

क्या

  • इनबाउंड ऑथेंटिकेशन और ऑथराइज़ेशन: एसएएमएल असर्शन की पुष्टि करने वाली नीति
    एसएएमएल नीति के टाइप की मदद से, एपीआई प्रॉक्सी, एसएएमएल असर्शन की पुष्टि कर सकती हैं. ये असर्शन, इनबाउंड एसओएपी अनुरोधों से जुड़े होते हैं. एसएएमएल नीति, आने वाले उन मैसेज की पुष्टि करती है जिनमें डिजिटल तौर पर साइन किया गया एसएएमएल असर्शन शामिल होता है. अगर ये अमान्य होते हैं, तो उन्हें अस्वीकार कर दिया जाता है. साथ ही, ऐसे वैरिएबल सेट किए जाते हैं जिनसे अन्य नीतियां या बैकएंड सेवाएं, असर्शन में मौजूद जानकारी की पुष्टि कर सकती हैं.
  • आउटबाउंड टोकन जनरेट करना: एसएएमएल असर्शन जनरेट करने वाली नीति
    एसएएमएल नीति के टाइप की मदद से, एपीआई प्रॉक्सी, आउटबाउंड एक्सएमएल अनुरोधों में एसएएमएल असर्शन जोड़ सकती हैं. इसके बाद, इन असर्शन का इस्तेमाल करके, बैकएंड सेवाएं, ऑथेंटिकेशन और ऑथराइज़ेशन के लिए सुरक्षा से जुड़ी अन्य प्रोसेस लागू कर सकती हैं.

सैंपल

एसएएमएल असर्शन जनरेट करना

<GenerateSAMLAssertion name="SAML" ignoreContentType="false">
  <CanonicalizationAlgorithm />
  <Issuer ref="reference">Issuer name</Issuer>
  <KeyStore>
    <Name ref="reference">keystorename</Name>
    <Alias ref="reference">alias</Alias>
  </KeyStore>
  <OutputVariable>
    <FlowVariable>assertion.content</FlowVariable>
    <Message name="request">
      <Namespaces>
        <Namespace prefix="test">http://www.example.com/test</Namespace>
      </Namespaces>
      <XPath>/envelope/header</XPath>
    </Message>
  </OutputVariable>
  <SignatureAlgorithm />
  <Subject ref="reference">Subject name</Subject>
  <Template ignoreUnresolvedVariables="false">
    <!-- A lot of XML goes here, in CDATA, with {} around
         each variable -->
  </Template>
</GenerateSAMLAssertion>

एसएएमएल असर्शन जनरेट करना

एसएएमएल असर्शन की पुष्टि करना

<ValidateSAMLAssertion name="SAML" ignoreContentType="false">
  <Source name="request">
    <Namespaces>
      <Namespace prefix='soap'>http://schemas.xmlsoap.org/soap/envelope/</Namespace>
      <Namespace prefix='wsse'>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd</Namespace>
      <Namespace prefix='saml'>urn:oasis:names:tc:SAML:2.0:assertion</Namespace>
    </Namespaces>
    <AssertionXPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</AssertionXPath>
    <SignedElementXPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</SignedElementXPath>
  </Source>
  <TrustStore>TrustStoreName</TrustStore>
  <RemoveAssertion>false</RemoveAssertion>
</ValidateSAMLAssertion>

एसएएमएल असर्शन की पुष्टि करना


एलिमेंट रेफ़रंस

एसएएमएल असर्शन जनरेट करना

फ़ील्ड का नाम ब्यौरा
name एट्रिब्यूट नीति के इंस्टेंस का नाम. संगठन में यह नाम यूनीक होना चाहिए. नाम में सिर्फ़ इन वर्णों का इस्तेमाल किया जा सकता है: A-Z0-9._\-$ %. हालांकि, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में अतिरिक्त पाबंदियां लागू होती हैं. जैसे, ऐसे वर्णों को अपने-आप हटाना जो अल्फ़ान्यूमेरिक नहीं हैं.
ignoreContentType एट्रिब्यूट यह बूलियन है, जिसे true या false पर सेट किया जा सकता है. डिफ़ॉल्ट रूप से, अगर मैसेज का कॉन्टेंट टाइप, एक्सएमएल कॉन्टेंट-टाइप नहीं है, तो असर्शन जनरेट नहीं होगा. अगर इसे true पर सेट किया जाता है, तो कॉन्टेंट-टाइप के बावजूद, मैसेज को एक्सएमएल माना जाएगा.
Issuer
पहचान देने वाली सेवा का यूनीक आइडेंटिफ़ायर. अगर वैकल्पिक ref एट्रिब्यूट मौजूद है, तो रनटाइम के दौरान, बताए गए वैरिएबल के आधार पर, Issuer की वैल्यू असाइन की जाएगी. अगर ज़रूरी नहीं है कि ref एट्रिब्यूट मौजूद हो, तो Issuer की वैल्यू का इस्तेमाल किया जाएगा.
KeyStore
उस KeyStore का नाम जिसमें निजी कुंजी और एसएएमएल असर्शन को डिजिटल तौर पर साइन करने के लिए इस्तेमाल की गई निजी कुंजी का एलियास शामिल है.
OutputVariable
FlowVariable
Message नीति का टारगेट. मान्य वैल्यू, message, request, और response हैं. जब message पर सेट किया जाता है, तो नीति, नीति के अटैचमेंट पॉइंट के आधार पर, मैसेज ऑब्जेक्ट को शर्तों के हिसाब से वापस लाती है. अनुरोध फ़्लो से अटैच होने पर नीति, message को अनुरोध में बदल देती है. वहीं, जवाब फ़्लो से अटैच होने पर नीति, message को जवाब में बदल देती है.
XPath यह एक XPath एक्सप्रेशन है, जो आउटबाउंड एक्सएमएल दस्तावेज़ में उस एलिमेंट की ओर इशारा करता है जिससे नीति, एसएएमएल असर्शन को अटैच करेगी.
SignatureAlgorithm SHA1 या SHA256
Subject
एसएएमएल असर्शन के विषय का यूनीक आइडेंटिफ़ायर. अगर वैकल्पिक ref एट्रिब्यूट मौजूद है, तो रनटाइम के दौरान, बताए गए वैरिएबल के आधार पर, Subject की वैल्यू असाइन की जाएगी. अगर ज़रूरी न होने वाला ref एट्रिब्यूट मौजूद है, तो Subject की वैल्यू का इस्तेमाल किया जाएगा.
Template
अगर यह मौजूद है, तो इस टेंप्लेट को चलाकर असर्शन जनरेट किया जाएगा. इसमें {} से दिखाए गए हर एलिमेंट को, उससे जुड़े वैरिएबल से बदला जाएगा. इसके बाद, नतीजे को डिजिटल तौर पर साइन किया जाएगा. टेंप्लेट को, AssignMessage नीति के नियमों के मुताबिक प्रोसेस किया जाता है. Assign Message policy देखें.

एसएएमएल असर्शन की पुष्टि करना

फ़ील्ड का नाम ब्यौरा
name एट्रिब्यूट
नीति के इंस्टेंस का नाम. संगठन में यह नाम यूनीक होना चाहिए. नाम में सिर्फ़ इन वर्णों का इस्तेमाल किया जा सकता है: A-Z0-9._\-$ %. हालांकि, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में अतिरिक्त पाबंदियां लागू होती हैं. जैसे, ऐसे वर्णों को अपने-आप हटाना जो अल्फ़ान्यूमेरिक नहीं हैं.
ignoreContentType एट्रिब्यूट यह बूलियन है, जिसे true या false पर सेट किया जा सकता है. डिफ़ॉल्ट रूप से, अगर मैसेज का कॉन्टेंट टाइप, एक्सएमएल कॉन्टेंट-टाइप नहीं है, तो असर्शन जनरेट नहीं होगा. अगर इसे true पर सेट किया जाता है, तो कॉन्टेंट-टाइप के बावजूद, मैसेज को एक्सएमएल माना जाएगा.
Source नीति का टारगेट. मान्य वैल्यू, message, request, और response हैं. जब message पर सेट किया जाता है, तो नीति, नीति के अटैचमेंट पॉइंट के आधार पर, मैसेज ऑब्जेक्ट को शर्तों के हिसाब से वापस लाती है. अनुरोध फ़्लो से अटैच होने पर नीति, message को अनुरोध में बदल देती है. वहीं, जवाब फ़्लो से अटैच होने पर नीति, message को जवाब में बदल देती है.
XPath
अब सेवा में नहीं है. Source का चाइल्ड. Use AssertionXPath और SignedElementXPath का इस्तेमाल करें.
AssertionXPath
Source का चाइल्ड. यह एक XPath एक्सप्रेशन है, जो इनबाउंड एक्सएमएल दस्तावेज़ में उस एलिमेंट की ओर इशारा करता है जिससे नीति, एसएएमएल असर्शन को एक्सट्रैक्ट कर सकती है.
SignedElementXPath
Source का चाइल्ड. यह एक XPath एक्सप्रेशन है, जो इनबाउंड एक्सएमएल दस्तावेज़ में उस एलिमेंट की ओर इशारा करता है जिससे नीति, साइन किए गए एलिमेंट को एक्सट्रैक्ट कर सकती है. यह `AssertionXPath` के XPath से अलग हो सकता है या एक ही हो सकता है.AssertionXPath
TrustStore
उस TrustStore का नाम जिसमें भरोसेमंद X.509 सर्टिफ़िकेट शामिल हैं. इनका इस्तेमाल, एसएएमएल असर्शन पर डिजिटल सिग्नेचर की पुष्टि करने के लिए किया जाता है.
RemoveAssertion
यह बूलियन है, जिसे true या false पर सेट किया जा सकता है. जब true, मैसेज को बैकएंड सेवा को फ़ॉरवर्ड करने से पहले, अनुरोध मैसेज से एसएएमएल असर्शन हटा दिया जाएगा.

इस्तेमाल की जानकारी

सिक्योरिटी असर्शन मार्कअप लैंग्वेज (एसएएमएल) की खास जानकारी में, ऐसे फ़ॉर्मैट और प्रोटोकॉल तय किए गए हैं जिनकी मदद से ऐप्लिकेशन, ऑथेंटिकेशन और ऑथराइज़ेशन के लिए, एक्सएमएल फ़ॉर्मैट में जानकारी का आदान-प्रदान कर सकते हैं.

"सुरक्षा असर्शन" एक भरोसेमंद टोकन होता है. इसमें किसी ऐप्लिकेशन, ऐप्लिकेशन के उपयोगकर्ता, या लेन-देन में शामिल किसी अन्य व्यक्ति या इकाई के एट्रिब्यूट की जानकारी होती है. सुरक्षा असर्शन को दो तरह की इकाइयां मैनेज और इस्तेमाल करती हैं:

  • पहचान देने वाली सेवाएं: लोगों या इकाइयों की ओर से सुरक्षा असर्शन जनरेट करती हैं
  • सेवा देने वाली कंपनियां: पहचान देने वाली सेवाओं के साथ भरोसेमंद रिलेशनशिप के ज़रिए, सुरक्षा असर्शन की पुष्टि करती हैं

एपीआई प्लैटफ़ॉर्म, पहचान देने वाली सेवा और सेवा देने वाली कंपनी, दोनों के तौर पर काम कर सकता है. यह असर्शन जनरेट करके और उन्हें अनुरोध मैसेज से अटैच करके, पहचान देने वाली सेवा के तौर पर काम करता है. इससे, बैकएंड सेवाओं के लिए ये असर्शन प्रोसेस किए जा सकते हैं. यह इनबाउंड अनुरोध मैसेज पर असर्शन की पुष्टि करके, सेवा देने वाली कंपनी के तौर पर काम करता है.

एसएएमएल नीति का टाइप, एसएएमएल असर्शन के साथ काम करता है. ये असर्शन, एसएएमएल कोर स्पेसिफ़िकेशन के वर्शन 2.0 और WS-Security SAML टोकन प्रोफ़ाइल स्पेसिफ़िकेशन के वर्शन 1.0 के मुताबिक होते हैं.

एसएएमएल असर्शन जनरेट करना

नीति को प्रोसेस करना:

  1. अगर मैसेज एक्सएमएल में नहीं है और IgnoreContentType को true पर सेट नहीं किया गया है, तो गड़बड़ी की सूचना दें.
  2. अगर "Template" सेट है, तो AssignMessage नीति के लिए बताए गए तरीके से टेंप्लेट को प्रोसेस करें. अगर कोई वैरिएबल मौजूद नहीं है और IgnoreUnresolvedVariables सेट नहीं है, तो गड़बड़ी की सूचना दें.
  3. अगर "Template" सेट नहीं है, तो एक असर्शन बनाएं. इसमें Subject और Issuer पैरामीटर या उनके रेफ़रंस की वैल्यू शामिल करें.
  4. बताई गई कुंजी का इस्तेमाल करके, असर्शन को साइन करें.
  5. बताए गए XPath पर, मैसेज में असर्शन जोड़ें.

एसएएमएल असर्शन की पुष्टि करना

नीति को प्रोसेस करना:

  1. नीति, इनबाउंड मैसेज की जांच करके यह पुष्टि करती है कि अनुरोध का मीडिया टाइप एक्सएमएल है या नहीं. इसके लिए, यह जांच करती है कि कॉन्टेंट टाइप, text/(.*+)?xml या application/(.*+)?xml फ़ॉर्मैट से मेल खाता है या नहीं. अगर मीडिया टाइप एक्सएमएल नहीं है और <IgnoreContentType> सेट नहीं है, तो नीति, गड़बड़ी की सूचना देगी.
  2. नीति, एक्सएमएल को पार्स करेगी. अगर पार्सिंग में गड़बड़ी होती है, तो नीति, गड़बड़ी की सूचना देगी.
  3. नीति, बताए गए XPath का इस्तेमाल करके, साइन किए गए एलिमेंट और असर्शन को एक्सट्रैक्ट करेगी (<SignedElementXPath> और <AssertionXPath>). अगर इनमें से कोई भी पाथ, एलिमेंट को वापस नहीं लाता है, तो नीति, गड़बड़ी की सूचना देगी.
  4. नीति, यह पुष्टि करेगी कि असर्शन, साइन किए गए एलिमेंट के जैसा है या साइन किए गए एलिमेंट का चाइल्ड है. अगर ऐसा नहीं है, तो नीति, गड़बड़ी की सूचना देगी.
  5. अगर असर्शन में <NotBefore> या <NotOnOrAfter> एलिमेंट मौजूद हैं, तो नीति, मौजूदा टाइमस्टैंप की तुलना इन वैल्यू से करेगी. इसके बारे में, एसएएमएल कोर के सेक्शन 2.5.1 में बताया गया है.
  6. नीति, "Conditions" को प्रोसेस करने के लिए, एसएएमएल कोर के सेक्शन 2.5.1.1 में बताए गए अन्य नियमों को लागू करेगी.
  7. नीति, ऊपर बताए गए ट्रस्ट स्टोर वैल्यू (<TrustStore>) का इस्तेमाल करके, एक्सएमएल डिजिटल सिग्नेचर की पुष्टि करती है. अगर पुष्टि नहीं हो पाती है, तो नीति गड़बड़ी की सूचना देती है.

नीति के पूरी होने और गड़बड़ी की सूचना न मिलने पर, प्रॉक्सी का डेवलपर इन बातों के बारे में पक्का हो सकता है:

  • असर्शन पर मौजूद डिजिटल सिग्नेचर मान्य है और इसे किसी भरोसेमंद सीए ने साइन किया है
  • असर्शन, मौजूदा समयावधि के लिए मान्य है
  • असर्शन के विषय और जारी करने वाले की जानकारी को एक्सट्रैक्ट करके, फ़्लो वैरिएबल में सेट किया जाएगा. अन्य नीतियों की ज़िम्मेदारी है कि वे इन वैल्यू का इस्तेमाल, अतिरिक्त ऑथेंटिकेशन के लिए करें. जैसे, यह जांचना कि विषय का नाम मान्य है या नहीं या पुष्टि के लिए इसे टारगेट सिस्टम को पास करना.

असर्शन के रॉ एक्सएमएल को पार्स करने के लिए, ExtractVariables जैसी अन्य नीतियों का इस्तेमाल किया जा सकता है. इससे, ज़्यादा जटिल पुष्टि की जा सकती है.


फ़्लो वैरिएबल

एसएएमएल असर्शन में कई तरह की जानकारी दी जा सकती है. एसएएमएल असर्शन, एक्सएमएल में होता है. इसे ExtractVariables नीति और अन्य तरीकों से पार्स किया जा सकता है, ताकि ज़्यादा जटिल पुष्टि की जा सके.

वैरिएबल ब्यौरा
saml.id एसएएमएल असर्शन का आईडी
saml.issuer असर्शन का "Issuer", जिसे उसके नेटिव एक्सएमएल टाइप से स्ट्रिंग में बदला गया है
saml.subject असर्शन का "Subject", जिसे उसके नेटिव एक्सएमएल टाइप से स्ट्रिंग में बदला गया है
saml.valid वैलिडिटी की जांच के नतीजे के आधार पर, 'सही' या 'गलत' दिखाता है
saml.issueInstant IssueInstant
saml.subjectFormat विषय का फ़ॉर्मैट
saml.scmethod विषय की पुष्टि करने का तरीका
saml.scdaddress विषय की पुष्टि करने के डेटा का पता
saml.scdinresponse जवाब में विषय की पुष्टि करने का डेटा
saml.scdrcpt विषय की पुष्टि करने के डेटा का पाने वाला
saml.authnSnooa AuthnStatement SessionNotOnOrAfter
saml.authnContextClassRef AuthnStatement AuthnContextClassRef
saml.authnInstant AuthnStatement AuthInstant
saml.authnSessionIndex AuthnStatement Session Index

गड़बड़ी की जानकारी

इस सेक्शन में, गड़बड़ी के कोड और गड़बड़ी के मैसेज के बारे में बताया गया है और गड़बड़ी वाले ऐसे वैरिएबल होते हैं जिन्हें Edge की मदद से सेट किया जाता है. ऐसा तब होता है, जब इस नीति के तहत कोई गड़बड़ी होती है. यह जानकारी जानना ज़रूरी है कि क्या आप गड़बड़ियों को ठीक करता है. ज़्यादा जानने के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों और हैंडलिंग के बारे में जानकारी गलतियां.

डिप्लॉयमेंट से जुड़ी गड़बड़ियां

ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाली प्रॉक्सी को डिप्लॉय किया जाता है.

गड़बड़ी का नाम वजह ठीक करें
SourceNotConfigured एसएएमएल के दावे की पुष्टि करने के लिए, इनमें से एक या एक से ज़्यादा एलिमेंट इस नीति की जानकारी नहीं है या इसमें कोई जानकारी नहीं है: <Source>, <XPath>, <Namespaces>, <Namespace>.
TrustStoreNotConfigured अगर <TrustStore> एलिमेंट खाली है या VerifySAMLAssertion नीति की पुष्टि होने के बाद, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता. एक मान्य ट्रस्ट स्टोर का होना ज़रूरी है.
NullKeyStoreAlias अगर चाइल्ड एलिमेंट <Alias> खाली है या <Keystore> में इसकी जानकारी नहीं दी गई है एसएएमएल असर नीति जनरेट करने की नीति का एलिमेंट और इसके बाद एपीआई के डिप्लॉयमेंट प्रॉक्सी विफल. मान्य कीस्टोर उपनाम ज़रूरी है.
NullKeyStore अगर चाइल्ड एलिमेंट <Name> खाली है या <Keystore> में इसकी जानकारी नहीं दी गई है generateSAMLAssertion नीति का एलिमेंट है. इसके बाद, एपीआई को डिप्लॉय किया जा सकता है प्रॉक्सी विफल. मान्य कीस्टोर नाम डालना ज़रूरी है.
NullIssuer अगर <Issuer> एलिमेंट खाली है या एसएएमएल जनरेट करें में इसकी जानकारी नहीं दी गई है दावा करने की नीति सेट करने के बाद, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता. ऐप्लिकेशन <Issuer> की मान्य वैल्यू डालना ज़रूरी है.

गड़बड़ी के वैरिएबल

रनटाइम की गड़बड़ी होने पर ये वैरिएबल सेट किए जाते हैं. ज़्यादा जानकारी के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों के बारे में जानकारी.

वैरिएबल कहां उदाहरण
fault.name="fault_name" fault_name, गड़बड़ी का नाम है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. fault.name = "InvalidMediaTpe"
GenerateSAMLAssertion.failed एसएएमएल दावे की नीति के कॉन्फ़िगरेशन की पुष्टि करने के लिए, गड़बड़ी का प्रीफ़िक्स यह है ValidateSAMLAssertion. GenerateSAMLAssertion.failed = true

गड़बड़ी के रिस्पॉन्स का उदाहरण

{
  "fault": {
    "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type",
    "detail": {
      "errorcode": "steps.saml.generate.InvalidMediaTpe"
    }
  }
}

गड़बड़ी के नियम का उदाहरण

<FaultRules>
    <FaultRule name="invalid_saml_rule">
        <Step>
            <Name>invalid-saml</Name>
        </Step>
        <Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
    </FaultRule>
</FaultRules>

मिलते-जुलते विषय

वैरिएबल एक्सट्रैक्ट करना: Extract Variables नीति