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

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

SourceNotConfigured

Hata Mesajı

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

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

SAML Onaylama politikasının şu öğelerinden biri veya daha fazlası tanımlanmamış veya boş değilse API Proxy'sinin dağıtımı bu hatayı vererek başarısız olur: <Source>, <XPath>, <Namespaces>, <Namespace>.

Örneğin, <XPath> öğesini atlar veya <Source> öğesini ya da 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 Beyanını Doğrula politikasının adını belirleyin. Örneğin, aşağıdaki hatada ValidateSAMLAssertion politikasının adı Validate-SAML-Assertion-1'tür.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. SAML Beyanlarını Doğrula politikasının XML'ini inceleyin. Politikanın şu öğelerinden birinin veya daha fazlasının eksik ya da boş olup olmadığını kontrol edin: <Source>, <XPath>, <Namespaces>, <Namespace>. Varsa hatanın nedeni bu olabilir.

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

    <?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 aşağıdaki 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 doğru şekilde yapılandırıldığından emin olun. Ayrıca <XPath> öğesinin tanımlandığından ve boş olmadığından emin olmanız gerekir.

Yukarıda gösterilen SAML Beyanlarını Doğrula politikası örneğini düzeltmek için <XPath> öğelerinin yanı sıra <Namespace> öğ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 yönetim API'si üzerinden dağıtımı şu hata mesajıyla başarısız olur:

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üven Merkezi gereklidir.

Teşhis

  1. Hatanın oluştuğu belirli API proxy'sinde tüm SAML Beyanlarını Doğrula politikalarını inceleyin. <TrustStore> öğesinin boş 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

SAML Beyanlarını Doğrulama politikasında <TrustStore> öğesinin her zaman belirtildiğinden ve boş olmadığından emin olun. <TrustStore> adının, proxy dağıtmaya çalıştığınız tüm ortamlarda bulunan geçerli bir TrustStore adıyla eşleşmesi gerekir.

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>

Truststore'un nasıl kullanılacağı hakkında daha fazla bilgi için Truststore ve Keystore başlıklı makaleyi inceleyin.

NullKeyStore

Hata Mesajı

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

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

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

Teşhis

  1. Hatanın oluştuğu belirli API proxy'sinde tüm SAML Beyan Oluşturma politikalarını inceleyin. <Name> alt öğesinin boş olduğu veya <Keystore> öğesinde belirtilmediği bir SAML Beyan Oluşturma politikası varsa hatanın nedeni budur.

    Aşağıdaki SAML Beyan Oluşturma politikasında, <Keystore> öğesinde boş bir alt öğe <Name> vardır:

    <?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 Beyan Oluşturma politikasının <Keystore> öğesinde <Name> alt öğesinin 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> öğesi için geçerli bir değer belirttiğinizden 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'ne bakın.

NullKeyStoreAlias

Hata Mesajı

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

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

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

Teşhis

  1. Hatanın oluştuğu ilgili API Proxy'sinde tüm SAML Onaylama politikalarını inceleyin. <Alias> alt öğesinin boş olduğu veya <Keystore> öğesinde belirtilmediği bir SAML Beyan Oluşturma politikası varsa hatanın nedeni budur.

    Aşağıdaki SAML Beyan Oluşturma politikasında, <Keystore> öğesinde boş bir alt öğe <Alias> vardır:

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

SAML Beyan Oluşturma politikasının <Keystore> öğesinde <Name> alt öğesinin 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> öğesi için geçerli bir değer belirttiğinizden 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 Policy Referans Makalesindeki Kod Örnekleri başlıklı örneklere bakın.

NullIssuer

Hata Mesajı

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

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 SAML Beyan Oluşturma 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. Hatanın oluştuğu ilgili API Proxy'sinde tüm SAML Onaylama politikalarını inceleyin. <Issuer> öğesinin boş olduğu veya belirtilmediği bir SAML Beyan Oluşturma politikası varsa hatanın nedeni budur.

    Aşağıdaki SAML Beyan Oluşturma politikasında boş bir <Issuer> öğesi vardır:

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

SAML Beyan Oluşturma 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 Policy Referans Makalesindeki Kod Örnekleri başlıklı örneklere bakın.