Risoluzione dei problemi di errore di deployment dei criteri di asserzione SAML

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

SourceNotConfigured

Messaggio di errore

Deployment del proxy API tramite la UI o la gestione perimetrale L'API presenta errori e restituisce questo messaggio di errore:

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

Messaggio di errore di esempio

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

Screenshot di errore di esempio

Causa

Il deployment del proxy API non va a buon fine e viene restituito questo errore se una o più i seguenti elementi del criterio Convalida asserzione SAML non sono definita o vuota: <Source>, <XPath>, <Namespaces>, <Namespace>.

Ad esempio, se ti manca l'elemento <XPath> o lasci <Source> o le relative entità vuote, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il nome del criterio di asserzione SAML non riuscito dal . Ad esempio, nell'errore seguente la convalida Il nome del criterio di asserzione SAML è Validate-SAML-Assertion-1.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. Esamina il file XML del criterio di asserzione SAML non riuscito. Controlla se presente o più dei seguenti elementi del criterio risultano mancanti o vuoti: <Source>, <XPath>, <Namespaces> e <Namespace>. Se sì, potrebbe essere la causa dell'errore.

    Ad esempio, il seguente criterio ha un elemento <Namespaces> vuoto sotto l'elemento <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. Nell'esempio precedente, l'elemento <Namespaces> è vuoto, pertanto viene visualizzato l'errore:

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

Risoluzione

Assicurati che i valori dell'elemento <Source> siano configurati correttamente con l'elemento <Namespaces> e il relativo elemento secondario <Namespace>. Devi anche assicurarti che l'elemento <XPath> sia definito e non vuoto.

Per correggere l'esempio del criterio Convalida asserzione SAML mostrato sopra, potresti aggiungere gli elementi <Namespace> e <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

Messaggio di errore

Deployment del proxy API tramite la UI o la gestione perimetrale L'API presenta errori e restituisce questo messaggio di errore:

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

Messaggio di errore di esempio

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

Screenshot di errore di esempio

Causa

Se l'elemento <TrustStore> è vuoto o non specificato nel Convalida il criterio SAMLAssertion, quindi sul deployment dell'API un errore del proxy. È richiesto un archivio di attendibilità valido.

Diagnosi

  1. Esamina tutti i criteri di convalida dell'asserzione SAML nella specifica Proxy API in cui si è verificato l'errore. Se esiste un pulsante Criterio di asserzione SAML in cui l'elemento <TrustStore> è vuoto o se non è stato specificato, questa è la causa dell'errore.

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

Risoluzione

Assicurati che l'elemento <TrustStore> sia sempre specificato e non vuoto all'interno del criterio Convalida asserzione SAML. <TrustStore> deve corrispondere a quello di un TrustStore valido esistente in tutti gli ambienti in cui si sta tentando di eseguire il deployment un proxy.

Per correggere l'esempio precedente, puoi specificare <TrustStore> con un valore valido.

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

Per ulteriori informazioni su come utilizzare l'archivio di attendibilità, consulta Archiviatori di attendibilità e archivi chiavi.

NullKeyStore

Messaggio di errore

Deployment del proxy API tramite l'interfaccia utente di Edge o Edge l'API di gestione ha esito negativo e restituisce questo messaggio di errore:

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

Messaggio di errore di esempio

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

Screenshot di errore di esempio

Causa

Se l'elemento secondario <Name> è vuoto o non specificato nel <Keystore> del criterio Genera SAMLAssertion, che il deployment del proxy API non va a buon fine. È richiesto un nome dell'archivio chiavi valido.

Diagnosi

  1. Esamina tutti i criteri di generazione dell'asserzione SAML nella specifica Proxy API in cui si è verificato l'errore. Se è presente un elemento Genera Criterio di asserzione SAML in cui l'elemento secondario <Name> è vuoto o non specificato nell'elemento <Keystore>, viene la causa dell'errore.

    Il seguente criterio Genera asserzione SAML ha un elemento figlio vuoto elemento <Name> nell'elemento <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>
    

Risoluzione

Assicurati che l'elemento secondario <Name> sia sempre specificato e non vuoto all'interno dell'elemento <Keystore> di Genera asserzione SAML .

Per correggere l'esempio precedente, puoi specificare correttamente l'elemento <Name> e assicurati che venga specificato un valore valido per l'elemento <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>

Consulta gli esempi tratti dall'esempio di codice nell'articolo di riferimento sui criteri di asserzione SAML.

NullKeyStoreAlias

Messaggio di errore

Deployment del proxy API tramite la UI o la gestione perimetrale L'API presenta errori e restituisce questo messaggio di errore:

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

Messaggio di errore di esempio

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

Screenshot di errore di esempio

Causa

Se l'elemento secondario <Alias> è vuoto o non specificato nel <Keystore> del criterio Genera asserzione SAML, quindi che il deployment del proxy API non va a buon fine. È richiesto un alias valido dell'archivio chiavi.

Diagnosi

  1. Esamina tutti i criteri di generazione dell'asserzione SAML nella specifica Proxy API in cui si è verificato l'errore. Se è presente un elemento Genera Criterio di asserzione SAML in cui l'elemento secondario <Alias> è vuoto o non specificato nell'elemento <Keystore>, viene la causa dell'errore.

    Il seguente criterio Genera asserzione SAML ha un elemento figlio vuoto elemento <Alias> nell'elemento <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>
    

Risoluzione

Assicurati che l'elemento secondario <Name> sia sempre specificato e non vuoto all'interno dell'elemento <Keystore> del criterio Genera asserzione SAML.

Per correggere l'esempio precedente, puoi specificare l'elemento <Alias> correttamente e verificare che sia stato specificato un valore valido per Elemento <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>

Consulta gli esempi tratti dall'esempio di codice nell'articolo di riferimento sui criteri di asserzione SAML.

NullIssuer

Messaggio di errore

Deployment del proxy API tramite la UI o la gestione perimetrale L'API presenta errori e restituisce questo messaggio di errore:

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

Messaggio di errore di esempio

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

Screenshot di errore di esempio

Causa

Se l'elemento <Issuer> è vuoto o non è specificato nel campo Genera SAML Criterio di asserzione, il deployment del proxy API non va a buon fine. Un codice valido Il valore <Issuer> è obbligatorio.

Diagnosi

  1. Esamina tutti i criteri di generazione dell'asserzione SAML nell'API specifica Proxy in cui si è verificato l'errore. Se è presente un valore Genera SAML Criterio di asserzione in cui l'elemento <Issuer> è vuoto o meno questa è la causa dell'errore.

    Il seguente criterio Genera asserzione SAML ha un elemento <Issuer> vuoto:

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

Risoluzione

Assicurati che l'elemento <Issuer> sia sempre specificato e non vuoto in il criterio Genera asserzione SAML.

Per correggere l'esempio precedente, specifica correttamente l'elemento <Issuer>:

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

Consulta gli esempi tratti dall'esempio di codice nell'articolo di riferimento sui criteri di asserzione SAML.