带有 ADFS idp 的 saml。 rutime 错误,sp 未签名元数据在 adfs idp 中导入时没有问题,但我在运行时遇到问题:
在 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 元数据是这样的:
<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 杜松子酒” 我想知道我的 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 -配置在依赖方.aspx 简而言之,它说:
有两种选择:
配置 RP,以便在 AuthnRequest 中不指定 AssertionConsumerService
配置 RP 在 AuthnRequest 中发送匹配的 AssertionConsumerService 值 AD FS 2.0 中 RP 信任的终结点选项卡上的 AssertionConsumerService 值。
你觉得怎么样
如果我使用entityID =“https://test.it:443/au/login”生成元数据 而不是entityID =“test.it”可以避免这个安全问题?
或者我应该删除 saml:request 中的 AssertionConsumerService (是否可以通过配置)?
或者 idp 管理器应该做更好的配置吗?
不确定这是否是您面临的相同问题,但在我看来,出现了同样的错误,问题是我没有在我的服务提供商上将我的断言端点添加为身份上 AD FS 中的 SAML 断言消费者端点提供商。
无论如何,值得一试 :) 在 IdP 上的mmc
中,添加 AD FS 管理单元。然后在
AD FS
>
Relying Party Trusts
下找到您的 SP 配置。我的名字叫
Test SSO
。右键单击它,选择
Properties
,然后在
Endpoints
选项卡上,检查您的服务提供商断言端点 URL 是否列在
SAML Assertion Consumer Endpoints
下。我的工作配置是
Endpoint type: SAML Assertion Consumer
Binding: POST
Default: Yes
Index: 0
Trusted URL: https://1337.local/adfs/ls
并且
Trusted URL
是我在 SP 上的断言端点,即 ADFS 在经过身份验证后发布 SAML 负载的位置。