我有Owin的示例WebForms应用程序。试图通过Azure AD IdP进行SAML2身份验证。它工作正常,用户已在应用程序中注册并通过了身份验证。
现在我需要使用其他IdP。所以我改变了我的申请,什么也没有。 Saml的回应包含成功,因此IdP对我进行了身份验证。但是调用Context.GetOwinContext()。Authentication.GetExternalLoginInfo()会返回null。
我找到了一些有关“外部cookie”的帖子,但是我不认为这是我的问题,因为Azure示例工作正常。切换到其他IdP失败。
似乎只有SAML Xml格式不同。 Azure返回为
plot_trisurf
但其他IdP返回为
path=%path%;<python executable path>
但是命名空间应该可以。
因此它必须在SAML响应中?如何找到问题?
<samlp:Response Destination="https://localhost:44390/Saml2/Acs"
ID="_5eaccd77-fa78-4f59-86d9-67049ef074ce" InResponseTo="id73419322f1cc440184f456548cee7d09"
IssueInstant="2018-12-21T15:00:58.248Z" Version="2.0"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
</samlp:Response>
答案 0 :(得分:1)
Sustainsys.Saml2.Exceptions.InvalidSignatureException:已使用签名中包含的密钥正确验证了签名,但是该密钥不受信任。
这意味着签名是正确的,但是您尚未将签名密钥配置为受信任。
您需要将带有idp公钥的证书添加到IdentityProvider.SigningKeys集合中。