تحديد المشاكل وحلّها في ما يتعلّق بنشر سياسة تأكيد SAML

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

SourceNotConfigured

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة التطبيقات لإدارة Edge وظهور رسالة الخطأ هذه:

Error Deploying Revision revision_number to environment
ValidateSAMLAssertion[policy_name]: Source is not correctly configured.

مثال على رسالة الخطأ

Error Deploying Revision 2 to test
ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.

لقطة شاشة لمثال على الخطأ

السبب

تعذَّر نشر الخادم الوكيل لواجهة برمجة التطبيقات مع ظهور هذا الخطأ إذا كان هناك عنصر واحد أو أكثر من العناصر التالية في سياسة "التحقق من تأكيد SAML" غير معرَّف أو فارغًا: <Source> أو <XPath> أو <Namespaces> أو <Namespace>.

على سبيل المثال، إذا لم تعثر على العنصر <XPath> أو تركت العنصر <Source> أو كياناته فارغة، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. تحديد اسم سياسة تأكيد SAML الذي تعذّر التحقق من صحته من رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم سياسة التحقق من تأكيد SAML هو Validate-SAML-Assertion-1.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. افحص ملف XML الذي تعذّر إثبات صحته لسياسة تأكيد SAML. تحقَّق مما إذا كان عنصر واحد أو أكثر من العناصر التالية للسياسة غير متوفّر أو فارغًا: <Source> أو <XPath> أو <Namespaces> أو <Namespace>. إذا كان الأمر كذلك، فقد يكون هذا هو سبب الخطأ.

    على سبيل المثال، تحتوي السياسة التالية على عنصر <Namespaces> فارغ ضمن العنصر <Source>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ValidateSAMLAssertion name="SAML" ignoreContentType="false">
      <Source name="request">
        <Namespaces></Namespaces>
       </Source>
       <Description/>
     <TrustStore>ref://TrustStoreName</Truststore>
     <RemoveAssertion>false</RemoveAssertion>
    </ValidateSAMLAssertion>
    
  3. في المثال أعلاه، العنصر <Namespaces> فارغ، لذلك يظهر لك الخطأ:

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    

درجة الدقّة

احرص على ضبط قيم العنصر <Source> بشكل صحيح باستخدام العنصر <Namespaces> والعنصر الفرعي <Namespace> التابع له. عليك أيضًا التأكّد من أنّ العنصر <XPath> محدّد وأنّه غير فارغ.

لتصحيح مثال "التحقق من سياسة تأكيد SAML" الموضحة أعلاه، يمكنك إضافة عناصر <Namespace> بالإضافة إلى <XPath>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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>
    <XPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</XPath>
  </Source>
   <Description/>
<TrustStore>ref://TrustStoreName</Truststore>
<RemoveAssertion>false</RemoveAssertion>
</ValidateSAMLAssertion>

TrustStoreNotConfigured

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة التطبيقات لإدارة Edge وظهور رسالة الخطأ هذه:

Error Deploying Revision revision_number to environment
ValidateSAMLAssertion[[Ljava.lang.Object;@object]: Trust store is not correctly configured.

مثال على رسالة الخطأ

Error Deploying Revision 2 to test
ValidateSAMLAssertion[[Ljava.lang.Object;@39537262]: Trust store is not correctly configured.

لقطة شاشة لمثال على الخطأ

السبب

إذا كان العنصر <TrustStore> فارغًا أو غير محدَّد في سياسة التحقّق من صحة SAMLAssertion، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. يجب توفُّر متجر موثوق به صالح.

التشخيص

  1. افحص جميع سياسات "التحقق من تأكيد SAML" في الخادم الوكيل لواجهة برمجة التطبيقات المحدد الذي حدث فيه الخطأ. إذا كانت هناك أي سياسة من سياسات "التحقق من تأكيد SAML" يكون فيها العنصر <TrustStore> فارغًا أو لم يتم تحديده، يكون هذا هو سبب الخطأ.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <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>
        <XPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</XPath>
      </Source>
        <Description/>
        <TrustStore/>
      <RemoveAssertion>false</RemoveAssertion>
    </ValidateSAMLAssertion>
    

درجة الدقّة

تأكَّد من أنّ العنصر <TrustStore> محدد دائمًا وغير فارغ ضمن سياسة "التحقّق من صحة SAML". يجب أن يتطابق اسم <TrustStore> مع اسم TrustStore صالحًا لدى جميع البيئات التي تحاول نشر خادم وكيل بها.

لتصحيح المثال أعلاه، يمكنك تحديد عنصر <TrustStore> بقيمة صالحة.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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>
    <XPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</XPath>
  </Source>
  <TrustStore>TrustStoreName</TrustStore>
  <RemoveAssertion>false</RemoveAssertion>
</ValidateSAMLAssertion>

يُرجى الرجوع إلى مخازن Truststore وتخزين المفاتيح لمزيد من المعلومات عن كيفية استخدام Truststore.

NullKeyStore

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة التطبيقات Edge Management API مع ظهور رسالة الخطأ التالية:

Error Deploying Revision revision_number to environment
Assertion KeyStore name cannot be null.

مثال على رسالة الخطأ

Error Deploying Revision 4 to test
Assertion KeyStore name cannot be null.

لقطة شاشة لمثال على الخطأ

السبب

إذا كان العنصر الفرعي <Name> فارغًا أو غير محدّد في العنصر <Keystore> ضِمن سياسة GenerateSAMLAssertion، لن تنجح عملية نشر الخادم الوكيل لواجهة برمجة التطبيقات. يجب إدخال اسم صالح لملف تخزين المفاتيح.

التشخيص

  1. افحص جميع سياسات إنشاء تأكيد SAML في الخادم الوكيل لواجهة برمجة التطبيقات المحدد الذي حدث فيه الخطأ. إذا كان هناك أي سياسة لإنشاء تأكيد SAML يكون فيها العنصر الفرعي <Name> فارغًا أو غير محدّد في العنصر <Keystore>، يكون سبب الخطأ هو سبب ذلك.

    تتضمن سياسة إنشاء تأكيد SAML التالية عنصرًا ثانويًا فارغًا <Name> في العنصر <Keystore>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <GenerateSAMLAssertion name="SAML" ignoreContentType="false">`
      <CanonicalizationAlgorithm />
      <Issuer ref="reference">Issuer name</Issuer>
      <KeyStore>
        <Name></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>
    

درجة الدقّة

تأكَّد من أنّ العنصر الفرعي <Name> محدد دائمًا وغير فارغ داخل العنصر <Keystore> في سياسة تأكيد SAML.

لتصحيح المثال أعلاه، يمكنك تحديد العنصر <Name> بشكل صحيح والتأكّد من تحديد قيمة صالحة للعنصر <Alias>.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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>

يمكنك الرجوع إلى أمثلة من نماذج التعليمات البرمجية في المقالة المرجعية لسياسة SAMLAssertion.

NullKeyStoreAlias

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة التطبيقات لإدارة Edge وظهور رسالة الخطأ هذه:

Error Deploying Revision revision_number to environment
Assertion KeyStore alias cannot be null.

مثال على رسالة الخطأ

Error Deploying Revision 4 to test
Assertion KeyStore alias cannot be null.

لقطة شاشة لمثال على الخطأ

السبب

إذا كان العنصر الفرعي <Alias> فارغًا أو غير محدّد في العنصر <Keystore> ضِمن سياسة إنشاء SAML، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. يجب إدخال اسم مستعار صالح لملف تخزين المفاتيح.

التشخيص

  1. افحص جميع سياسات إنشاء تأكيد SAML في الخادم الوكيل لواجهة برمجة التطبيقات المحدد الذي حدث فيه الخطأ. إذا كان هناك أي سياسة لإنشاء تأكيد SAML يكون فيها العنصر الفرعي <Alias> فارغًا أو غير محدّد في العنصر <Keystore>، يكون سبب الخطأ هو سبب ذلك.

    تتضمن سياسة إنشاء تأكيد SAML التالية عنصرًا ثانويًا فارغًا <Alias> في العنصر <Keystore>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <GenerateSAMLAssertion name="SAML" ignoreContentType="false">`
      <CanonicalizationAlgorithm />
      <Issuer ref="reference">Issuer name</Issuer>
      <KeyStore>
        <Name ref="reference">keystorename</Name>
        <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>
    

درجة الدقّة

تأكَّد من أنّ العنصر الفرعي <Name> محدَّد دائمًا وغير فارغ ضمن العنصر <Keystore> في سياسة تأكيد SAML.

لتصحيح المثال أعلاه، يمكنك تحديد العنصر <Alias> بشكل صحيح والتأكد من تحديد قيمة صالحة للعنصر <Name>.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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>

يمكنك الرجوع إلى أمثلة من نماذج التعليمات البرمجية في المقالة المرجعية لسياسة SAMLAssertion.

NullIssuer

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة التطبيقات لإدارة Edge وظهور رسالة الخطأ هذه:

Error Deploying Revision revision_number to environment
Assertion Issuer cannot be null.

مثال على رسالة الخطأ

Error Deploying Revision 4 to test
Assertion Issuer cannot be null.

لقطة شاشة لمثال على الخطأ

السبب

إذا كان العنصر <Issuer> فارغًا أو لم يتم تحديده في سياسة تأكيد SAML ، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. يجب إدخال قيمة <Issuer> صالحة.

التشخيص

  1. افحص جميع سياسات إنشاء تأكيد SAML في الخادم الوكيل لواجهة برمجة التطبيقات المحدد الذي حدث فيه الخطأ. إذا كانت هناك أي سياسة تأكيد SAML حيث يكون العنصر <Issuer> فارغًا أو غير محدَّد، هذا هو سبب الخطأ.

    تحتوي سياسة إنشاء تأكيد SAML التالية على عنصر <Issuer> فارغ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <GenerateSAMLAssertion name="SAML" ignoreContentType="false">`
      <CanonicalizationAlgorithm />
      <Issuer></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>
    

درجة الدقّة

تأكَّد من أنّ العنصر <Issuer> محدَّد دائمًا وغير فارغ في سياسة إنشاء تأكيد SAML.

لتصحيح المثال أعلاه، حدِّد العنصر <Issuer> بشكل صحيح:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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>

يمكنك الرجوع إلى أمثلة من نماذج التعليمات البرمجية في المقالة المرجعية لسياسة SAMLAssertion.