Привет У меня есть этот XML как SAML2 ответ от моего IDP:OpenSAML как проверить, действительно ли ответ SAML (подпись/сертификат) на моем IDP?
<Assertion ID="_97031c65-0139-4047-a416-9495df5d6ed7"
IssueInstant="2016-10-26T07:45:43.438Z" Version="2.0"
xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<Issuer>
</Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod
Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<ds:Reference URI="#_97031c65-0139-4047-a416-9495df5d6ed7">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<ds:DigestValue>
KMaF...
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
FHdZ....
</ds:SignatureValue>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>
MII....
</X509Certificate>
</X509Data>
</KeyInfo>
</ds:Signature>
....
Теперь я хочу, чтобы проверить, является ли ответ правильным ответом от моего IDP. Как это может быть сделано? (Я использую OpenSAML 3.x java) Достаточно ли просто провести сравнение строк с подписью и сертификатом?
У меня также есть MetadataDocument.XML с данными учетных данных из моего IDP (Azure).
Похожие:
SAML 2.0 - How to verify the sender certificate?
OpenSAML (2.0) Signature validation not working
Привет, я использую OpenSAML для этой цели. У меня уже есть функциональный логин, но из-за некоторых обстоятельств и причин безопасности нам необходимо проверить ответ SAML, полученный от входа в IDP не только в нашем пользовательском агенте, но и на нашем сервере ресурсов, когда запрашивается ресурс. – Gobliins
Настоящий вход в систему SAML выполняется метеорными счетами. Наша идея состояла в том, чтобы отправить ответ вместе с запросом на наш сервер ресурсов и выполнить ручную проверку OpenSAML, чтобы проверить, поступает ли запрос из надежного источника (нашего пользовательского агента). – Gobliins
Я не уверен, что я последую за тобой. Я не знаком с тем, что такое метеоритные счета. Сказать, что логин функционирует без проверки подписи, это похоже на то, что логин имени пользователя/пароля работает, но вы не проверяете правильность пароля. Вам нужно будет отредактировать исходный вопрос, чтобы включить то, что ваша установка и что вы хотите сделать, иначе это слишком сложно, чтобы помочь вам –