Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
SourceNotConfigured
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Deploying Revision revision_number to environment ValidateSAMLAssertion[policy_name]: Source is not correctly configured.
Przykładowy komunikat o błędzie
Error Deploying Revision 2 to test
ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
Zrzut ekranu z przykładowym błędem
Przyczyna
Wdrożenie serwera proxy interfejsu API nie powiedzie się, jeśli co najmniej jeden z tych elementów zasady sprawdzania poprawności SAML nie jest zdefiniowany lub jest pusty: <Source>
, <XPath>
, <Namespaces>
, <Namespace>
.
Jeśli np. pominiesz element <XPath>
lub pozostawisz element <Source>
lub jego encje puste, wdrożenie serwera proxy interfejsu API się nie uda.
Diagnostyka
Zidentyfikuj nazwę zasady weryfikacji SAML, która nie powiodła się, w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady Validate assertion SAML to
Validate-SAML-Assertion-1
.ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
Sprawdź nieudaną weryfikację pliku XML zasad potwierdzenia SAML. Sprawdź, czy brakuje w niej co najmniej jednego z tych elementów zasady lub czy jest ona pusta:
<Source>
,<XPath>
,<Namespaces>
,<Namespace>
. Jeśli tak, to może być ono przyczyną błędu.Na przykład w tej zasadzie w elemencie
<Source>
w ramach tej zasady jest pusty element<Namespaces>
:<?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>
W tym przykładzie element
<Namespaces>
jest pusty, dlatego pojawia się błąd:ValidateSAMLAssertion[Validate-SAML-Assertion-1]: Source is not correctly configured.
Rozdzielczość
Upewnij się, że wartości elementu <Source>
są prawidłowo skonfigurowane z elementem <Namespaces>
i jego elementem podrzędnym <Namespace>
.
Musisz też upewnić się, że element <XPath>
jest zdefiniowany i nie jest pusty.
Aby poprawić przykładową zasadę sprawdzania poprawności SAML podaną powyżej, możesz dodać elementy <Namespace>
oraz <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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Deploying Revision revision_number to environment ValidateSAMLAssertion[[Ljava.lang.Object;@object]: Trust store is not correctly configured.
Przykładowy komunikat o błędzie
Error Deploying Revision 2 to test
ValidateSAMLAssertion[[Ljava.lang.Object;@39537262]: Trust store is not correctly configured.
Zrzut ekranu z przykładowym błędem
Przyczyna
Jeśli element <TrustStore>
jest pusty lub nie określono go w zasadzie weryfikacji SAMLAssertion, wdrożenie serwera proxy interfejsu API nie powiedzie się. Wymagany jest prawidłowy magazyn zaufania.
Diagnostyka
Sprawdź wszystkie zasady sprawdzania poprawności SAML na konkretnym serwerze proxy interfejsu API, na którym wystąpił błąd. Jeśli istnieje jakaś zasada sprawdzania poprawności SAML, w której element
<TrustStore>
jest pusty lub nie został określony, to jest przyczyną błędu.<?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>
Rozdzielczość
Sprawdź, czy element <TrustStore>
jest zawsze określony i nie jest pusty w zasadach sprawdzania poprawności SAML. Nazwa <TrustStore>
powinna być taka sama jak nazwa prawidłowego obiektu TrustStore istniejącego we wszystkich środowiskach, w których próbujesz wdrożyć serwer proxy.
Aby poprawić powyższy przykład, możesz określić element <TrustStore>
z prawidłową wartością.
<?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>
Więcej informacji o korzystaniu z Truststore znajdziesz w artykule na temat magazynów zaufania i magazynów kluczy.
NullKeyStore
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetla się ten komunikat o błędzie:
Error Deploying Revision revision_number to environment Assertion KeyStore name cannot be null.
Przykładowy komunikat o błędzie
Error Deploying Revision 4 to test
Assertion KeyStore name cannot be null.
Zrzut ekranu z przykładowym błędem
Przyczyna
Jeśli element podrzędny <Name>
jest pusty lub nie został określony w elemencie <Keystore>
w zasadzie GenerateSAMLAssertion, wdrożenie serwera proxy interfejsu API nie powiedzie się. Wymagana jest prawidłowa nazwa magazynu kluczy.
Diagnostyka
Sprawdź wszystkie zasady generowania potwierdzenia SAML na konkretnym serwerze proxy interfejsu API, na którym wystąpił błąd. Jeśli istnieje zasada Wygeneruj zasadę potwierdzenia SAML, w której element podrzędny
<Name>
jest pusty lub nieokreślony w elemencie<Keystore>
, to jest przyczyną błędu.Poniższa zasada Wygeneruj potwierdzenie SAML ma pusty element podrzędny
<Name>
w elemencie<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>
Rozdzielczość
Sprawdź, czy element podrzędny <Name>
jest zawsze określony i nie jest pusty w elemencie <Keystore>
zasady Wygeneruj potwierdzenie SAML.
Aby poprawić powyższy przykład, możesz poprawnie określić element <Name>
oraz upewnić się, że element <Alias>
ma przypisaną prawidłową wartość.
<?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>
Zapoznaj się z przykładami kodu w artykule z informacjami o zasadach SAMLAssertion.
NullKeyStoreAlias
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Deploying Revision revision_number to environment Assertion KeyStore alias cannot be null.
Przykładowy komunikat o błędzie
Error Deploying Revision 4 to test
Assertion KeyStore alias cannot be null.
Zrzut ekranu z przykładowym błędem
Przyczyna
Jeśli element podrzędny <Alias>
jest pusty lub nie określono go w elemencie <Keystore>
zasady Wygeneruj potwierdzenie SAML, wdrożenie serwera proxy interfejsu API nie powiedzie się. Wymagany jest prawidłowy alias magazynu kluczy.
Diagnostyka
Sprawdź wszystkie zasady generowania potwierdzenia SAML na konkretnym serwerze proxy interfejsu API, na którym wystąpił błąd. Jeśli istnieje zasada Wygeneruj zasadę potwierdzenia SAML, w której element podrzędny
<Alias>
jest pusty lub nieokreślony w elemencie<Keystore>
, to jest przyczyną błędu.Poniższa zasada Wygeneruj potwierdzenie SAML ma pusty element podrzędny
<Alias>
w elemencie<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>
Rozdzielczość
Sprawdź, czy element podrzędny <Name>
jest zawsze określony i niepusty w elemencie <Keystore>
w zasadzie generowania potwierdzenia SAML.
Aby poprawić powyższy przykład, możesz prawidłowo określić element <Alias>
oraz upewnić się, że element <Name>
ma prawidłową wartość.
<?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>
Zapoznaj się z przykładami kodu w artykule z informacjami o zasadach SAMLAssertion.
NullIssuer
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Deploying Revision revision_number to environment Assertion Issuer cannot be null.
Przykładowy komunikat o błędzie
Error Deploying Revision 4 to test
Assertion Issuer cannot be null.
Zrzut ekranu z przykładowym błędem
Przyczyna
Jeśli element <Issuer>
jest pusty lub nie określono go w zasadzie Wygeneruj SAML, wdrożenie serwera proxy interfejsu API nie powiedzie się. Wymagana jest prawidłowa wartość parametru <Issuer>
.
Diagnostyka
Sprawdź wszystkie zasady generowania potwierdzenia SAML na określonym serwerze proxy interfejsu API, na którym wystąpił błąd. Jeśli istnieje zasada Wygeneruj zasadę potwierdzania SAML, w której element
<Issuer>
jest pusty lub nieokreślony, to jest przyczyną błędu.Następująca zasada generowania potwierdzenia SAML ma pusty element
<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>
Rozdzielczość
Zadbaj o to, aby element <Issuer>
był zawsze określony i niepusty w zasadzie Wygeneruj potwierdzenie SAML.
Aby poprawić treść przykładową powyżej, prawidłowo określ element <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>
Zapoznaj się z przykładami kodu w artykule z informacjami o zasadach SAMLAssertion.