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

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

यह क्या है

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

सैंपल

एसएएमएल दावा जनरेट करें

<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 एट्रिब्यूट मौजूद है, तो जारी करने वाले की वैल्यू, तय किए गए वैरिएबल के आधार पर रनटाइम के दौरान असाइन की जाएगी. अगर वैकल्पिक ref एट्रिब्यूट मौजूद नहीं है, तो जारी करने वाले की वैल्यू का इस्तेमाल किया जाएगा.
KeyStore
उस KeyStore का नाम जिसमें निजी कुंजी और एसएएमएल के दावों पर डिजिटल तरीके से हस्ताक्षर करने के लिए इस्तेमाल किए जाने वाले निजी पासकोड का उपनाम शामिल है.
OutputVariable
FlowVariable
Message नीति का टारगेट. मान्य वैल्यू message, request, और response हैं. अगर नीति को message पर सेट किया जाता है, तो नीति के अटैचमेंट पॉइंट के आधार पर कुछ शर्तों के साथ मैसेज ऑब्जेक्ट को वापस लाया जाता है. अनुरोध के फ़्लो के साथ अटैच किए जाने पर, इस नीति के तहत, अनुरोध करने के लिए message का समाधान किया जाता है. साथ ही, रिस्पॉन्स फ़्लो के साथ अटैच किए जाने पर, यह नीति रिस्पॉन्स के लिए message का समाधान करती है.
XPath एक XPath एक्सप्रेशन जो आउटबाउंड एक्सएमएल दस्तावेज़ पर एलिमेंट को दिखाता है, जिसमें नीति एसएएमएल दावे को अटैच करेगी.
SignatureAlgorithm SHA1 या SHA256
Subject
एसएएमएल दावे के विषय का यूनीक आइडेंटिफ़ायर. अगर वैकल्पिक ref एट्रिब्यूट मौजूद है, तो Subject की वैल्यू तय किए गए वैरिएबल के आधार पर रनटाइम पर असाइन की जाएगी. अगर वैकल्पिक ref एट्रिब्यूट मौजूद है, तो Subject की वैल्यू का इस्तेमाल किया जाएगा.
Template
अगर यह मौजूद है, तो इस टेंप्लेट को चलाकर दावा जनरेट किया जाएगा. इसके लिए, {} के बारे में बताने वाले सभी वैरिएबल को इससे जुड़े वैरिएबल से बदला जाएगा. इसके बाद, नतीजे पर डिजिटल तरीके से हस्ताक्षर किया जाएगा. टेंप्लेट को AssignmentsMessage नीति के नियमों के मुताबिक प्रोसेस किया जाता है. मैसेज की नीति असाइन करें देखें.

एसएएमएल दावे की पुष्टि करें

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

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

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

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

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

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

एसएएमएल की नीति का टाइप ऐसे एसएएमएल के दावे के साथ काम करता है जो एसएएमएल कोर की विशेषताओं के वर्शन 2.0 और WS-सुरक्षा एसएएमएल टोकन प्रोफ़ाइल की खास बातों के वर्शन 1.0 से मेल खाते हैं.

एसएएमएल पर असर के बारे में जानकारी जनरेट करें

नीति प्रोसेसिंग:

  1. अगर मैसेज एक्सएमएल नहीं है और ignoreContentType true पर सेट नहीं है, तो गड़बड़ी बढ़ाएं.
  2. अगर "टेंप्लेट" सेट है, तो Assignments को Assignments मैसेज नीति के मुताबिक बताए गए तरीके के हिसाब से प्रोसेस करें. अगर कोई वैरिएबल मौजूद नहीं है और ignoreUnresolvedVariables सेट नहीं किया गया है, तो गड़बड़ी बढ़ाएं.
  3. अगर "टेंप्लेट" सेट नहीं है, तो ऐसा दावा करें जिसमें विषय और जारी करने वाले के पैरामीटर की वैल्यू या उनके रेफ़रंस शामिल हों.
  4. बताई गई कुंजी का इस्तेमाल करके दावे पर हस्ताक्षर करें.
  5. दिए गए XPath पर मैसेज में दावा जोड़ें.

एसएएमएल दावे की पुष्टि करें

नीति प्रोसेसिंग:

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

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

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

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


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

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

वैरिएबल ब्यौरा
saml.id एसएएमएल दावे का आईडी
saml.issuer दावे का "जारी करने वाला", जिसे अपने नेटिव एक्सएमएल टाइप से स्ट्रिंग में बदला गया है
saml.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 Authइंस्टैंट
saml.authnSessionIndex AuthnStatement सेशन इंडेक्स

गड़बड़ी का रेफ़रंस

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

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

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

गड़बड़ी का नाम वजह समाधान
SourceNotConfigured एसएएमएल के दावे की पुष्टि करने की नीति के तहत, इनमें से एक या एक से ज़्यादा एलिमेंट तय नहीं किया गया है या खाली नहीं है: <Source>, <XPath>, <Namespaces>, <Namespace>.
TrustStoreNotConfigured अगर <TrustStore> एलिमेंट खाली है या ValidateSAMLAssertion की नीति में इसके बारे में नहीं बताया गया है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता. एक मान्य ट्रस्ट स्टोर होना ज़रूरी है.
NullKeyStoreAlias अगर चाइल्ड एलिमेंट <Alias> खाली है या एसएएमएल के असर की नीति जनरेट करने के <Keystore> एलिमेंट में इसकी जानकारी नहीं दी गई है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता. एक मान्य कीस्टोर उपनाम ज़रूरी है.
NullKeyStore अगर चाइल्ड एलिमेंट <Name> खाली है या generateSAMLAssertion की नीति के <Keystore> एलिमेंट में नहीं दिया गया है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता. एक मान्य कीस्टोर नाम आवश्यक है.
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>

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

वैरिएबल निकालना: वैरिएबल एक्सट्रैक्ट करने से जुड़ी नीति