【发布时间】:2015-08-02 06:58:35
【问题描述】:
带有 ADFS idp 的 saml。 rutime 错误,在 adfs idp 中导入 sp 未签名元数据时没有问题,但我在运行时遇到问题:
在 idp 身份验证后,在成功的身份验证中,在 idp 页面上我收到了这样的信任错误:
The request specified an Assertion Consumer Service URL
'https://test.it/au/login' that is not configured on the relying party 'microsoft:identityserver:test.it'.
Assertion Consumer Service URL: https://test.it/au/login Relying party: microsoft:identityserver:test.it
that is a prefix match of the AssertionConsumerService URL 'https://test.it/au/login' specified by the request.
This request failed.
我的 SP METADATA 是这样的:
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" ID="test.it" entityID="test.it">
<md:SPSSODescriptor AuthnRequestsSigned="false"
WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://test.it:443/au/login" index="0" isDefault="true"/>
我可以补充: 如果我从 /adfs/ls/idpinitiatedsignon.htm 启动身份验证过程 我选择了我的 sp 提供商(所以我排除了 saml2p:AuthnRequest 上的问题) 一个帖子重定向到https://test.it/au/lo gin" 我想知道我在 idp 上的端点上怎么会有空格。
我发现这篇文章似乎可以解释 http://social.technet.microsoft.com/wiki/contents/articles/4039.ad-fs-2-0-the-request-specified-an-assertion-consumer-service-url-that-is-not-configured-on-the-relying-party.aspx 简而言之,它说:
有两种选择:
配置 RP,以便在 AuthnRequest 中不指定 AssertionConsumerService
配置 RP 以在 AuthnRequest 中发送 AssertionConsumerService 值,该值匹配 AD FS 2.0 中 RP 信任的 Endpoints 选项卡上的 AssertionConsumerService 值。
你怎么看
如果我使用 entityID="https://test.it:443/au/login" 生成元数据 而不是 entityID="test.it" 可以避免这个安全问题?
或者我应该删除 saml:request 中的 AssertionConsumerService(是否可以通过配置)?
还是应该 idp manager 做更好的配置?
【问题讨论】:
标签: adfs2.0 spring-saml