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 yönetim API'si üzerinden dağıtılması ş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ışsa veya 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 varlıklarını boş bırakırsanız API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hata mesajında başarısız olan Validate SAML Assertion politikası adını belirleyin. Örneğin, aşağıdaki hatada SAML Onaylama Politikası'nın adı Validate-SAML-Assertion-1 şeklindedir.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. Başarısız olan "SAML Onaylama Politikası" XML'ini inceleyin. Politikadaki şu öğelerden en az birinin eksik ya da boş olup olmadığını kontrol edin: <Source>, <XPath>, <Namespaces>, <Namespace>. Öyleyse hatanın nedeni bu olabilir.

    Örneğin, aşağıdaki politikada <Source> öğesi 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ğu için şu hatayı alırsınız:

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

Çözünürlük

<Source> öğesi değerlerinin, <Namespaces> öğesi ve <Namespace> alt öğesi ile 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 SAML Onayı politikasını doğrulama örneğini 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 yönetim API'si üzerinden dağıtılması ş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 veyaValidateSAMLAssertion politikasında belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir Trust Store gereklidir.

Teşhis

  1. Hatanın oluştuğu API Proxy'sinde bulunan tüm SAML Onaylama Politikası'nı doğrulama 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

SAML Onaylama Politikası'nda <TrustStore> öğesinin her zaman belirtildiğinden ve boş olmadığından emin olun. <TrustStore> adı, proxy dağıtmaya çalıştığınız tüm ortamlarda mevcut olan 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>

Truststore'un nasıl kullanılacağı hakkında daha fazla bilgi için Truststore'lar ve anahtar depoları'na bakın.

NullKeyStore

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edgemanagement API ü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 deposu adı gerekli.

Teşhis

  1. Hatanın oluştuğu API Proxy'sinde oluşturma SAML Onaylama politikalarını inceleyin. <Name> alt öğesinin boş olduğu veya <Keystore> öğesinde belirtilmemiş bir Generate SAML Assertion politikası varsa hatanın nedeni budur.

    Aşağıdaki "SAML Onayı Oluştur" politikasının <Keystore> öğesinde boş bir alt öğesi (<Name>) 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

<Name> alt öğesinin, SAML Onayı Oluşturma politikasının <Keystore> öğesinde 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>

SAML Assertion Policy Reference Article'daki (SAML Onaylama Politikası) Kod Örnekleri ile ilgili örnekleri inceleyin.

NullKeyStoreAlias

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtılması ş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ı gereklidir.

Teşhis

  1. Hatanın oluştuğu API Proxy'sinde oluşturma SAML Onaylama politikalarını inceleyin. <Alias> alt öğesinin boş olduğu veya <Keystore> öğesinde belirtilmemiş bir Generate SAML Assertion politikası varsa hatanın nedeni budur.

    Aşağıdaki "SAML Onayı Oluştur" politikasının <Keystore> öğesinde boş bir alt öğesi (<Alias>) 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

<Name> alt öğesinin, SAML Onayı Oluşturma politikasının <Keystore> öğesinde 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>

SAML Assertion Policy Reference Article'daki (SAML Onaylama Politikası) Kod Örnekleri ile ilgili örnekleri inceleyin.

NullIssuer

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtılması ş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 Onayı 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 belirli API Proxy'sinde bulunan tüm SAML Onaylama Politikalarını oluşturma politikalarını inceleyin. <Issuer> öğesinin boş olduğu veya belirtilmediği bir SAML Onayı Oluşturma politikası varsa hatanın nedeni budur.

    Aşağıdaki "SAML Onaylama Oluştur" 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 "SAML Assertion Oluştur" politikasında 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>

SAML Assertion Policy Reference Article'daki (SAML Onaylama Politikası) Kod Örnekleri ile ilgili örnekleri inceleyin.