Risoluzione degli errori di deployment del criterio di asserzione SAML

Stai visualizzando la documentazione relativa a Apigee e Apigee ibrido.
Visualizza la documentazione di Apigee Edge.

SourceNotConfigured

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente di Apigee o l'API Apigee non riesce con 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

Errore durante il deployment della revisione 2 da testare.

Causa

Il deployment del proxy API non riesce e restituisce questo errore se uno o più dei seguenti elementi del criterio ValidateSAMLAssertion non sono definiti o vuoti: <Source>, <XPath>, <Namespaces>, <Namespace>.

Ad esempio, se manchi l'elemento <XPath> o lasci vuoti l'elemento <Source> o le sue entità, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il nome del criterio ValidateSAMLAssertion con errori dal messaggio di errore. Ad esempio, nell'errore seguente il nome del criterio ValidateSAMLAssertion è Validate-SAML-Assertion-1.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. Esamina il file XML del criterio ValidateSAMLAssertion non riuscito. Controlla se uno o più dei seguenti elementi del criterio mancano o sono vuoti: <Source>, <XPath>, <Namespaces>, <Namespace>. Se è così, potrebbe essere questa 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 riportato sopra, l'elemento <Namespaces> è vuoto, perciò 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 la norma ValidateSAMLAssertion di esempio mostrata sopra, puoi 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

Il deployment del proxy API tramite l'interfaccia utente Apigee o l'API Apigee non riesce con 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

Errore durante il deployment della revisione 2 da testare.

Causa

Se l'elemento <TrustStore> è vuoto o non specificato nel criterio ConvalidaAsserzione SAML, il deployment del proxy API non va a buon fine. È richiesto un archivio di attendibilità valido.

Diagnosi

  1. Esamina tutti i criteri di convalida dell'asserzione SAML nel proxy API specifico in cui si è verificato l'errore. Se è presente un criterio di convalida dell'asserzione SAML in cui l'elemento <TrustStore> è vuoto o non specificato, questo è 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 di asserzione SAML. Il nome <TrustStore> deve corrispondere al nome di un TrustStore valido esistente in tutti gli ambienti in cui stai tentando di eseguire il deployment di un proxy.

Per correggere l'esempio precedente, puoi specificare l'elemento <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>

NullKeyStore

Messaggio di errore

Il deployment del proxy API tramite l'UI di Apigee o l'API non va a buon fine con 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

Errore durante il deployment della revisione 4 da testare.

Causa

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

Diagnosi

  1. Esamina tutti i criteri GenerateSAMLAssertion nel proxy API specifico in cui si è verificato l'errore. Se è presente un criterio GenerateSAMLAssertion in cui l'elemento secondario <Name> è vuoto o non specificato nell'elemento <Keystore>, questo è la causa dell'errore.

    Il seguente criterio GenerateSAMLAssertion ha un elemento secondario vuoto <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> del criterio GenerateSAMLAssertion.

Per correggere l'esempio precedente, puoi specificare correttamente l'elemento <Name> e assicurarti che sia 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>

Fai riferimento agli esempi tratti da Criterio di asserzione SAML.

NullKeyStoreAlias

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente di Apigee o l'API Apigee non riesce con 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

Errore durante il deployment della revisione 4 da testare.

Causa

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

Diagnosi

  1. Esamina tutti i criteri GenerateSAMLAssertion nel proxy API specifico in cui si è verificato l'errore. Se è presente un criterio GenerateSAMLAssertion in cui l'elemento secondario <Alias> è vuoto o non specificato nell'elemento <Keystore>, questo è la causa dell'errore.

    Il seguente GenerateSAMLAssertion ha un elemento secondario vuoto <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 GenerateSAMLAssertion.

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

Fai riferimento agli esempi tratti da Criterio di asserzione SAML.

NullIssuer

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente Apigee o l'API Apigee non riesce con 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

Errore durante il deployment della revisione 4 da testare.

Causa

Se l'elemento <Issuer> è vuoto o non specificato nel criterio GenerateSAMLAssertion, il deployment del proxy API non va a buon fine. È obbligatorio un valore <Issuer> valido.

Diagnosi

  1. Esamina tutti i criteri GenerateSAMLAssertion nel proxy API specifico in cui si è verificato l'errore. Se è presente un criterio GenerateSAMLAssertion in cui l'elemento <Issuer> è vuoto o non specificato, questo è la causa dell'errore.

    Il seguente criterio GenerateSAMLAssertion 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 nel criterio GenerateSAMLAssertion.

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>

Fai riferimento agli esempi tratti da Criterio di asserzione SAML.