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

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

SourceNotConfigured

Hata Mesajı

Uç kullanıcı arayüzü veya Uç yönetimi aracılığıyla API proxy'sinin dağıtılması API şu hata mesajını vererek 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

API Proxy'sinin dağıtımı, SAML Onaylama Politikası'nın aşağıdaki öğeleri tanımlanmış veya boş: <Source>, <XPath>, <Namespaces>, <Namespace>.

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

Teşhis

  1. Başarısız olan SAML Onaylama politikasının adını mesajının gösterilmesini sağlar. Örneğin, aşağıdaki hatada Validate SAML Onaylama Politikası adı: Validate-SAML-Assertion-1.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. Başarısız olan SAML Onaylama Politikası XML dosyasını inceleyin. Biri olup olmadığını kontrol edin aşağıdaki politika öğelerinden daha fazlası eksik veya boş: <Source>, <XPath>, <Namespaces>, <Namespace>. Varsa bu hatanın nedeni olabilir.

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

    <?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ştur, bu nedenle şu hatayı alırsınız:

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

Çözünürlük

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

Yukarıda gösterilen SAML Onaylama Politikası örneğini düzeltmek için <XPath> öğesinin yanı sıra <Namespace> öğelerini de ekleyebilir:

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

Uç kullanıcı arayüzü veya Uç yönetimi aracılığıyla API proxy'sinin dağıtılması API şu hata mesajını vererek 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 policy, ardından da API'nin dağıtımını yapma proxy başarısız olur. Geçerli bir Trust Store gerekli.

Teşhis

  1. Bu sertifikadaki tüm SAML Onaylama politikalarını Hatanın oluştuğu API Proxy'si. Herhangi bir Doğrula <TrustStore> öğesinin boş olduğu SAML Onaylama politikası veya belirtilmemişse 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

<TrustStore> öğesinin her zaman belirtildiğinden ve onay kutusunu işaretleyin. <TrustStore> ad, geçerli bir TrustStore'un adıyla eşleşmelidir dağıtmaya çalıştığınız tüm ortamlarda mevcut olan olabilir.

Yukarıdaki örneği düzeltmek için <TrustStore> değerini belirtebilirsiniz. öğesi geçerli bir değere sahip olmalıdır.

<?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'lar ve Anahtar Depoları konusuna bakın.

NullKeyStore

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge üzerinden dağıtılması management API şu hata mesajını vererek 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

<Name> alt öğesi boşsa veya <Keystore> öğesi oluşturun, ardından dağıtımı başarısız olur. Geçerli bir Anahtar Deposu adı gerekli.

Teşhis

  1. Belirli Hatanın oluştuğu API Proxy'si. Herhangi bir Oluşturulan <Name> alt öğesinin bulunduğu SAML Onay Politikası <Keystore> öğesinde belirtilmemişse yardımcı olur.

    Aşağıdaki Generate SAML Assertion (SAML Onaylama işlemi oluşturma) politikasının alt öğesi boş <Keystore> öğesinde <Name> öğesi:

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

<Name> alt öğesinin her zaman belirtildiğinden emin olun ve Generate SAML Assertion (SAML Onayı Oluştur) öğesinin <Keystore> öğesi içinde boş olmayan politikası.

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

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

NullKeyStoreAlias

Hata Mesajı

Uç kullanıcı arayüzü veya Uç yönetimi aracılığıyla API proxy'sinin dağıtılması API şu hata mesajını vererek 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

<Alias> alt öğesi boşsa veya SAML Onay Oluşturma politikasının <Keystore> öğesi, ardından dağıtımı başarısız olur. Geçerli bir Anahtar Deposu takma adı gerekir.

Teşhis

  1. Belirli Hatanın oluştuğu API Proxy'si. Herhangi bir Oluşturulan <Alias> alt öğesinin bulunduğu SAML Onay Politikası <Keystore> öğesinde belirtilmemişse yardımcı olur.

    Aşağıdaki Generate SAML Assertion (SAML Onaylama işlemi oluşturma) politikasının alt öğesi boş <Keystore> öğesinde <Alias> öğesi:

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

<Name> alt öğesinin her zaman belirtildiğinden ve boş olmadığından emin olun "SAML Assertion" (SAML Onay Oluşturma) politikasının <Keystore> öğesi içinde bulunur.

Yukarıdaki örneği düzeltmek için <Alias> öğesini belirtebilirsiniz. doğru şekilde sunmanın yanı sıra <Name> öğesi.

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

Uç kullanıcı arayüzü veya Uç yönetimi aracılığıyla API proxy'sinin dağıtılması API şu hata mesajını vererek 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 SAML Oluştur bölümünde belirtilmemişse Onay politikası yoksa API proxy'sinin dağıtımı başarısız olur. Geçerli <Issuer> değeri gereklidir.

Teşhis

  1. İlgili API'deki tüm SAML Onaylama politikalarını inceleme Hatanın oluştuğu proxy. SAML Oluştur seçeneği varsa <Issuer> öğesinin boş olduğu veya olmadığı onaylama politikası belirtilmişse hatanın nedeni budur.

    Aşağıdaki Generate SAML Assertion 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

<Issuer> öğesinin her zaman belirtildiğinden ve SAML Assertion (SAML Onaylama) politikası.

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.