SAML Onaylama politikası dağıtımı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

SourceNotConfigured

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek hata ekran görüntüsü

Neden

Validate SAML Assertion politikasının aşağıdaki öğelerinden biri veya daha fazlası tanımlanmamış ya da boşsa API proxy'sinin dağıtımı bu hatayla başarısız olur: <Source>, <XPath>, <Namespaces>, <Namespace>.

Örneğin, <XPath> öğesini atlar veya <Source> öğesini ya da öğenin varlıklarını boş bırakırsanız API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hata mesajından başarısız olan SAML Onayını Doğrula politika adını belirleyin. Örneğin, aşağıdaki hatada Validate SAML Assertion politika adı Validate-SAML-Assertion-1'dır.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. Başarısız olan SAML Onayını Doğrula politikası XML'sini inceleyin. Politikanın aşağıdaki öğelerinden bir veya daha fazlasının eksik ya da boş olup olmadığını kontrol edin: <Source>, <XPath>, <Namespaces>, <Namespace>. Bu durumda, hatanın nedeni bu olabilir.

    Örneğin, aşağıdaki politikada <Source> öğesinin altında boş bir <Namespaces> öğesi var:

    <?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. Yukarıdaki örnekte <Namespaces> öğesi boş olduğundan şu hatayı alırsınız:

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

Çözünürlük

<Source> öğesinin değerlerinin, <Namespaces> öğesi ve alt öğesi <Namespace> ile birlikte doğru şekilde yapılandırıldığından emin olun. Ayrıca <XPath> öğesinin tanımlandığından ve boş olmadığından da emin olmanız gerekir.

Yukarıda gösterilen Validate SAML Assertion (SAML Onayını Doğrula) politikasındaki örneği düzeltmek için <Namespace> öğelerinin yanı sıra <XPath> öğelerini de ekleyebilirsiniz:

<?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

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek hata ekran görüntüsü

Neden

<TrustStore> öğesi boşsa veya ValidateSAMLAssertion politikasında belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir güvenilir mağaza gereklidir.

Teşhis

  1. Hatayı içeren API proxy'sindeki tüm Validate SAML Assertion (SAML Onayını Doğrula) politikalarını inceleyin. <TrustStore> öğesinin boş olduğu veya belirtilmediği bir Validate SAML Assertion politikası varsa hatanın nedeni budur.

    <?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>
    

Çözünürlük

Validate SAML Assertion (SAML Onaylama İşlemini Doğrula) politikasında <TrustStore> öğesinin her zaman belirtildiğinden ve boş olmadığından emin olun. <TrustStore> Ad, bir proxy dağıtmaya çalıştığınız tüm ortamlarda bulunan geçerli bir TrustStore'un adıyla eşleşmelidir.

Yukarıdaki örneği düzeltmek için <TrustStore> öğesini geçerli bir değerle belirtebilirsiniz.

<?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>

Güvenilir sertifika deposunu kullanma hakkında daha fazla bilgi için Güvenilir sertifika depoları ve anahtar depoları başlıklı makaleyi inceleyin.

NullKeyStore

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek hata ekran görüntüsü

Neden

GenerateSAMLAssertion politikasının <Keystore> öğesinde alt öğe <Name> boşsa veya belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir Keystore adı gereklidir.

Teşhis

  1. Hatayı içeren API proxy'sindeki tüm SAML Onayı Oluşturma politikalarını inceleyin. Alt öğe <Name>'nın boş olduğu veya <Keystore> öğesinde belirtilmediği bir Generate SAML Assertion politikası varsa hatanın nedeni budur.

    Aşağıdaki SAML Onayı Oluşturma politikasının <Name> öğesinde boş bir alt öğe <Keystore> var:

    <?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>
    

Çözünürlük

SAML Onaylama İşlemi Oluşturma politikasının <Keystore> öğesinde alt öğe <Name>'nın her zaman belirtildiğinden ve boş olmadığından emin olun.

Yukarıdaki örneği düzeltmek için <Name> öğesini doğru şekilde belirtebilir ve <Alias> öğesine geçerli bir değerin belirtildiğinden emin olabilirsiniz.

<?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 Politikası Referans Makalesindeki Kod Örnekleri bölümündeki örneklere bakın.

NullKeyStoreAlias

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek hata ekran görüntüsü

Neden

Generate SAML Assertion politikasının <Keystore> öğesinde alt öğe <Alias> boşsa veya belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir Keystore takma adı gereklidir.

Teşhis

  1. Hatayı içeren API proxy'sindeki tüm SAML Assertion oluşturma politikalarını inceleyin. Alt öğe <Alias>'nın boş olduğu veya <Keystore> öğesinde belirtilmediği bir Generate SAML Assertion politikası varsa hatanın nedeni budur.

    Aşağıdaki SAML Onayı Oluşturma politikasının <Alias> öğesinde boş bir alt öğe <Keystore> var:

    <?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>
    

Çözünürlük

Generate SAML Assertion (SAML Onayı Oluştur) politikasının <Keystore> öğesinde alt öğe <Name>'nın her zaman belirtildiğinden ve boş olmadığından emin olun.

Yukarıdaki örneği düzeltmek için <Alias> öğesini doğru şekilde belirtebilir ve <Name> öğesine geçerli bir değerin belirtildiğinden emin olabilirsiniz.

<?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 Politikası Referans Makalesindeki Kod Örnekleri bölümündeki örneklere bakın.

NullIssuer

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek hata ekran görüntüsü

Neden

<Issuer> öğesi boşsa veya Generate SAML Assertion politikasında belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir <Issuer> değeri gereklidir.

Teşhis

  1. Hatayı içeren API Proxy'sindeki tüm SAML Onayı Oluşturma politikalarını inceleyin. <Issuer> öğesinin boş olduğu veya belirtilmediği bir Generate SAML Assertion politikası varsa hatanın nedeni budur.

    Aşağıdaki SAML Onayı Oluşturma politikasında boş bir <Issuer> öğesi var:

    <?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>
    

Çözünürlük

Generate SAML Assertion (SAML Onayı Oluştur) politikasında <Issuer> öğesinin her zaman belirtildiğinden ve boş olmadığından emin olun.

Yukarıdaki örneği düzeltmek için <Issuer> öğesini doğru şekilde belirtin:

<?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 Politikası Referans Makalesindeki Kod Örnekleri bölümündeki örneklere bakın.