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

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
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.

Esempio di messaggio di errore

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 per il test.

Causa

Il deployment del proxy API non va a buon fine con 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 vuoto l'elemento <Source> o le relative entità, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il nome del criterio ValidateSAMLAssertion non riuscito dal messaggio di errore. Ad esempio, nell'errore riportato di seguito il nome della norma ValidateSAMLAssertion è Validate-SAML-Assertion-1.

    ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
    
  2. Esamina il file XML delle norme ValidateSAMLAssertion non riuscito. Verifica se uno o più dei seguenti elementi del criterio sono mancanti o vuoti: <Source>, <XPath>, <Namespaces>, <Namespace>. Se è così, 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 il criterio ValidateSAMLAssertion di esempio mostrato 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 di Apigee o l'API Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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 per il test.

Causa

Se l'elemento <TrustStore> è vuoto o non specificato nel criterio ValidateSAMLAssertion, il deployment del proxy API non va a buon fine. È necessario un elenco attendibile valido.

Diagnosi

  1. Esamina tutti i criteri di convalida dell'affermazione SAML nel proxy API specifico in cui si è verificato l'errore. Se esiste un criterio di convalida della dichiarazione SAML in cui l'elemento <TrustStore> è vuoto o non 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 nel criterio SAMLAssertion. Il nome <TrustStore> debe corrispondere al nome di un TrustStore valido esistente in tutti gli ambienti in cui stai tentando di implementare un proxy.

Per correggere l'esempio riportato sopra, 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'interfaccia utente 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.

Esempio di messaggio di errore

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

Screenshot di errore di esempio

Errore durante il deployment della revisione 4 per il test.

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. È necessario un nome del keystore 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>, è la causa dell'errore.

    Il seguente criterio GenerateSAMLAssertion ha un elemento secondario <Name> vuoto 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 riportato sopra, puoi specificare correttamente l'elemento <Name> e assicurarti che per l'elemento <Alias> sia specificato un valore valido.

<?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 nella sezione Criterio SAMLAssertion.

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.

Esempio di messaggio di errore

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

Screenshot di errore di esempio

Errore durante il deployment della revisione 4 per il test.

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. È necessario un alias del Keystore 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 <Alias> è vuoto o non specificato nell'elemento <Keystore>, è la causa dell'errore.

    Il seguente GenerateSAMLAssertion ha un elemento secondario <Alias> vuoto 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 riportato sopra, puoi specificare correttamente l'elemento <Alias> e assicurarti che per l'elemento <Name> sia specificato un valore valido.

<?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 nella sezione Criterio SAMLAssertion.

NullIssuer

Messaggio di errore

Il deployment del proxy API tramite l'interfaccia utente di Apigee o l'API Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di errore di esempio

Errore durante il deployment della revisione 4 per il test.

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 nell'API Proxy specifico in cui si è verificato l'errore. Se è presente un criterio GenerateSAMLAssertion in cui l'elemento <Issuer> è vuoto o non specificato, è questa 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 riportato sopra, 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 nella sezione Criterio SAMLAssertion.