Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Источникнотконфигуред
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment ValidateSAMLAssertion[policy_name]: Source is not correctly configured.
Пример сообщения об ошибке
Error Deploying Revision 2 to test
ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
Пример снимка экрана с ошибкой
Причина
Развертывание прокси-сервера API завершается с ошибкой, если один или несколько из следующих элементов политики проверки утверждений SAML не определены или пусты: <Source>
, <XPath>
, <Namespaces>
, <Namespace>
.
Например, если вы пропустите элемент <XPath>
или оставите элемент <Source>
или его объекты пустыми, развертывание прокси-сервера API завершится неудачно.
Диагностика
Определите имя политики утверждения SAML, которая не удалась, из сообщения об ошибке. Например, в следующей ошибке имя политики проверки утверждения SAML —
Validate-SAML-Assertion-1
.ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
Изучите неудачный XML-код политики подтверждения SAML. Проверьте, отсутствует ли один или несколько из следующих элементов политики:
<Source>
,<XPath>
,<Namespaces>
,<Namespace>
. Если да, то это может быть причиной ошибки.Например, следующая политика содержит пустой элемент
<Namespaces>
в элементе<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>
В приведенном выше примере элемент
<Namespaces>
пуст, поэтому вы получаете ошибку:ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
Разрешение
Убедитесь, что значения элемента <Source>
настроены правильно с помощью элемента <Namespaces>
и его дочернего элемента <Namespace>
. Вам также необходимо убедиться, что элемент <XPath>
определен и не пуст.
Чтобы исправить пример политики проверки утверждений SAML, показанный выше, вы можете добавить элементы <Namespace>
, а также <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
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment ValidateSAMLAssertion[[Ljava.lang.Object;@object]: Trust store is not correctly configured.
Пример сообщения об ошибке
Error Deploying Revision 2 to test
ValidateSAMLAssertion[[Ljava.lang.Object;@39537262]: Trust store is not correctly configured.
Пример снимка экрана с ошибкой
Причина
Если элемент <TrustStore>
пуст или не указан в политике ValidateSAMLAssertion, развертывание прокси-сервера API завершается неудачно. Требуется действующее хранилище доверенных сертификатов.
Диагностика
Проверьте все политики проверки утверждений SAML в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика проверки утверждений SAML, в которой элемент
<TrustStore>
пуст или не указан, это и есть причина ошибки.<?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>
Разрешение
Убедитесь, что элемент <TrustStore>
всегда указан и не пуст в политике проверки утверждений SAML. Имя <TrustStore>
должно совпадать с именем допустимого TrustStore, существующего во всех средах, в которых вы пытаетесь развернуть прокси-сервер.
Чтобы исправить приведенный выше пример, вы можете указать элемент <TrustStore>
с допустимым значением.
<?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
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment Assertion KeyStore name cannot be null.
Пример сообщения об ошибке
Error Deploying Revision 4 to test
Assertion KeyStore name cannot be null.
Пример снимка экрана с ошибкой
Причина
Если дочерний элемент <Name>
пуст или не указан в элементе <Keystore>
политики GenerateSAMLAssertion, развертывание прокси-сервера API завершается неудачей. Требуется допустимое имя хранилища ключей.
Диагностика
Проверьте все политики создания утверждений SAML в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика создания утверждений SAML, в которой дочерний элемент
<Name>
пуст или не указан в элементе<Keystore>
, это и есть причина ошибки.Следующая политика создания утверждений SAML имеет пустой дочерний элемент
<Name>
в элементе<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>
Разрешение
Убедитесь, что дочерний элемент <Name>
всегда указан и не пуст в элементе <Keystore>
политики создания утверждений SAML.
Чтобы исправить приведенный выше пример, вы можете правильно указать элемент <Name>
, а также убедиться, что для элемента <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>
См. примеры из примеров кода в справочной статье по политике SAMLAssertion .
NullKeyStoreAlias
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment Assertion KeyStore alias cannot be null.
Пример сообщения об ошибке
Error Deploying Revision 4 to test
Assertion KeyStore alias cannot be null.
Пример снимка экрана с ошибкой
Причина
Если дочерний элемент <Alias>
пуст или не указан в элементе <Keystore>
политики создания утверждений SAML, развертывание прокси-сервера API завершается неудачно. Требуется действительный псевдоним хранилища ключей.
Диагностика
Проверьте все политики создания утверждений SAML в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика создания утверждений SAML, в которой дочерний элемент
<Alias>
пуст или не указан в элементе<Keystore>
, то это и есть причина ошибки.Следующая политика создания утверждений SAML имеет пустой дочерний элемент
<Alias>
в элементе<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>
Разрешение
Убедитесь, что дочерний элемент <Name>
всегда указан и не пуст в элементе <Keystore>
политики создания утверждений SAML.
Чтобы исправить приведенный выше пример, вы можете правильно указать элемент <Alias>
, а также убедиться, что для элемента <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>
См. примеры из примеров кода в справочной статье по политике SAMLAssertion .
NullIssuer
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment Assertion Issuer cannot be null.
Пример сообщения об ошибке
Error Deploying Revision 4 to test
Assertion Issuer cannot be null.
Пример снимка экрана с ошибкой
Причина
Если элемент <Issuer>
пуст или не указан в политике создания утверждений SAML, развертывание прокси-сервера API завершается неудачей. Требуется допустимое значение <Issuer>
.
Диагностика
Проверьте все политики создания утверждений SAML в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика создания утверждения SAML, в которой элемент
<Issuer>
пуст или не указан, это и есть причина ошибки.Следующая политика создания утверждений SAML содержит пустой элемент
<Issuer>
:<?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>
Разрешение
Убедитесь, что элемент <Issuer>
всегда указан и не пуст в политике создания утверждений SAML.
Чтобы исправить приведенный выше пример, правильно укажите элемент <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>
См. примеры из примеров кода в справочной статье по политике SAMLAssertion .