Pemecahan masalah error deployment kebijakan Pernyataan SAML

Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Lihat Dokumentasi Apigee Edge.

SourceNotConfigured

Pesan Error

Deployment proxy API melalui UI Apigee atau Apigee API gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Terjadi error saat men-deploy revisi 2 yang akan diuji.

Penyebab

Deployment proxy API gagal dengan error ini jika satu atau beberapa elemen kebijakan ValidateSAMLAssertion berikut tidak ditentukan atau kosong: <Source>, <XPath>, <Namespaces>, <Namespace>.

Misalnya, jika Anda melewatkan elemen <XPath> atau keluar dari <Source> atau entitasnya kosong, maka deployment proxy API akan gagal.

Diagnosis

  1. Identifikasi nama kebijakan ValidateSAMLAssertion yang gagal dari pesan error. Misalnya, dalam error berikut Nama kebijakan ValidateSAMLAssertion adalah Validate-SAML-Assertion-1.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. Periksa XML kebijakan ValidateSAMLAssertion yang gagal. Periksa apakah ada atau beberapa elemen kebijakan berikut tidak ada atau kosong: <Source>, <XPath>, <Namespaces>, <Namespace>. Jika ya, dapat menjadi penyebab error.

    Misalnya, kebijakan berikut memiliki elemen <Namespaces> yang kosong di bawah elemen <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. Dalam contoh di atas, elemen <Namespaces> kosong, sehingga Anda mendapatkan error:

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

Resolusi

Pastikan nilai elemen <Source> dikonfigurasi dengan benar dengan elemen <Namespaces> dan elemen turunannya <Namespace>. Anda juga harus memastikan bahwa elemen <XPath> ditentukan dan tidak kosong.

Untuk memperbaiki contoh kebijakan ValidateSAMLAssertion yang ditampilkan di atas, Anda dapat menambahkan elemen <Namespace> serta <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

Pesan Error

Deployment proxy API melalui UI Apigee atau Apigee API gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Terjadi error saat men-deploy revisi 2 yang akan diuji.

Penyebab

Jika elemen <TrustStore> kosong atau tidak ditentukan dalam kebijakan ValidateSAMLAssertion, lalu deployment API proxy gagal. Trust Store yang valid wajib diisi.

Diagnosis

  1. Periksa semua kebijakan Validate SAML Assertion dengan Proxy API tempat kegagalan terjadi. Jika ada opsi Validasi Kebijakan Pernyataan SAML tempat elemen <TrustStore> kosong atau tidak ditentukan, maka itulah penyebab error.

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

Resolusi

Pastikan elemen <TrustStore> selalu ditentukan dan tidak kosong dalam kebijakan SAMLAssertion. <TrustStore> nama harus cocok dengan nama TrustStore yang valid yang ada di semua lingkungan tempat Anda mencoba men-deploy {i>proxy<i}.

Untuk memperbaiki contoh di atas, Anda dapat menentukan <TrustStore> dengan nilai yang valid.

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

NullKeyStore

Pesan Error

Deployment proxy API melalui Apigee UI atau API gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Terjadi error saat men-deploy revisi 4 yang akan diuji.

Penyebab

Jika elemen turunan <Name> kosong atau tidak ditentukan dalam <Keystore> dari kebijakan GenerateSAMLAssertion, maka deployment proxy API gagal. Nama Keystore yang valid wajib diisi.

Diagnosis

  1. Pelajari semua kebijakan GenerateSAMLAssertion secara Proxy API tempat kegagalan terjadi. Jika ada Kebijakan GenerateSAMLAssertion tempat elemen turunan <Name> berada kosong atau tidak ditentukan dalam elemen <Keystore>, maka itulah penyebab error.

    Kebijakan GenerateSAMLAssertion berikut memiliki turunan yang kosong elemen <Name> dalam elemen <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>
    

Resolusi

Pastikan elemen turunan <Name> selalu ditentukan dan tidak kosong di dalam elemen <Keystore> dari GenerateSAMLAssertion lebih lanjut.

Untuk memperbaiki contoh di atas, Anda dapat menentukan elemen <Name> dengan benar serta memastikan bahwa nilai yang valid ditentukan untuk elemen <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>

Lihat contoh dari Kebijakan SAMLAssertion.

NullKeyStoreAlias

Pesan Error

Deployment proxy API melalui UI Apigee atau Apigee API gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Terjadi error saat men-deploy revisi 4 yang akan diuji.

Penyebab

Jika elemen turunan <Alias> kosong atau tidak ditentukan dalam <Keystore> dari kebijakan GenerateSAMLAssertion, maka deployment proxy API gagal. Alias Keystore yang valid wajib diisi.

Diagnosis

  1. Pelajari semua kebijakan GenerateSAMLAssertion secara Proxy API tempat kegagalan terjadi. Jika ada Kebijakan GenerateSAMLAssertion tempat elemen turunan <Alias> berada kosong atau tidak ditentukan dalam elemen <Keystore>, maka itulah penyebab error.

    GenerateSAMLAssertion berikut memiliki turunan yang kosong elemen <Alias> dalam elemen <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>
    

Resolusi

Memastikan elemen turunan <Name> selalu ditentukan dan tidak kosong dalam elemen <Keystore> dari kebijakan GenerateSAMLAssertion.

Untuk memperbaiki contoh di atas, Anda dapat menentukan elemen <Alias> dengan benar serta memastikan bahwa nilai yang valid telah ditentukan elemen <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>

Lihat contoh dari Kebijakan SAMLAssertion.

NullIssuer

Pesan Error

Deployment proxy API melalui UI Apigee atau Apigee API gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Terjadi error saat men-deploy revisi 4 yang akan diuji.

Penyebab

Jika elemen <Issuer> kosong atau tidak ditentukan dalam GenerateSAMLAssertion, deployment proxy API akan gagal. Valid Nilai <Issuer> wajib diisi.

Diagnosis

  1. Periksa semua kebijakan GenerateSAMLAssertion di API tertentu Proxy tempat kegagalan terjadi. Jika ada Kebijakan GenerateSAMLAssertion yang membuat elemen <Issuer> kosong atau tidak maka hal itulah yang menyebabkan kesalahan.

    Kebijakan GenerateSAMLAssertion berikut memiliki elemen <Issuer> yang kosong:

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

Resolusi

Pastikan bahwa elemen <Issuer> selalu ditentukan dan tidak kosong di kebijakan GenerateSAMLAssertion.

Untuk memperbaiki contoh di atas, tentukan elemen <Issuer> dengan benar:

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

Lihat contoh dari Kebijakan SAMLAssertion.