Windows Server 2012 R2
ADFS 依赖方:RP标识符
SAML 端点:https://myhost.domain/adfs/ls和https://10.2.0.225/saml绑定到 POST
加密:用于 ADFS 的自签名证书已导入 IIS 管理器,服务提供商将使用该证书提交 SAML 请求
身份验证策略:启用表单和证书身份验证
ADFS 服务帐户:服务正在使用属于以下群组的帐户运行
- 管理员
- 域管理员
- 域控制器
- 域用户
- 企业管理员
- 组策略创建者所有者
- 架构管理员
- Windows 授权访问组
服务提供商请求 SAML 身份验证:
<?xml version="1.0"?>
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_eee714b37b1be43404ba" Version="2.0" IssueInstant="2016-08-09T16:02:21.274Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://10.2.0.225/saml" Destination="https://myhost.domain/adfs/ls">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">RPIdentifier</saml:Issuer>
<samlp:RequestedAuthnContext xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Comparison="exact">
<saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</samlp:RequestedAuthnContext>
</samlp:AuthnRequest>
出现登录页面,但一旦插入并提交正确的凭据,就会出现一个包含以下文本的错误页面:
发生错误。请联系管理员以获取更多信息。
在 ADFS 服务器上,事件查看器中出现以下错误:
MSIS7075:WebSSO 配置文件的 SAML 身份验证请求不得指定任何 SubjectConfirmations
我看了看这里(第 4.1.4.1 段)然后检查了 XML 请求,但我找不到任何符合标准规定的“SubjectConfirmations”标签。
我怎样才能找出问题的根本原因?
答案1
看起来已配置signedsamlrequests = true,但您没有向AD FS发送签名的SAML请求。
当您运行以下命令时它会返回 TRUE 吗?
(get-adfsproperties).signedsamlrequestsrequired
如果是,则使用以下命令将其关闭并再次测试。
set-adfsproperties -signedsamlrequestsrequired $false
理想情况下,您应该配置 RPIdentifier 应用程序以发送签名的请求,然后使用 RPIdentifier 用于签名请求的证书详细信息配置 RP 信任。
PS 您的 AD FS 服务帐户不应具有特权,也不需要具有特权。AD 中的普通用户帐户就足够了。无需成为域用户以外的任何组的成员。
删除服务帐号的成员资格
•管理员 •域管理员 •域控制器 •企业管理员 •组策略创建者所有者 •架构管理员
您的 RP 标识符实际上只需要了解 AD FS 使用的令牌签名证书。我不确定您所说的“加密”是什么意思。如果令牌签名证书发生更改(通过自动证书更新或其他方式),您需要使用来自 AD FS 的新令牌签名证书的详细信息更新 RP 标识符端。同样,如果 RPIdentifier 端证书发生变化,则必须更新 AD FS 上的 RP 信任。
如果您的应用希望 AD FS 发送加密的断言,那么 RPIdentifier 需要提供用于加密的证书。这将在 AD FS 端的 RP 信任上配置。请注意,证书由 RPIdentifier 提供。