为什么我们的 ADFS 代理服务器的 Kerberos 安全性会失败?

为什么我们的 ADFS 代理服务器的 Kerberos 安全性会失败?

我们有一个 WCF 服务,它使用主动联合通过 AD FS 2.0 对调用者进行身份验证,并且它在内部运行良好。现在我们想将它暴露给外界,所以我们的服务器团队在 DMZ 中为该服务设置了一个服务器和一个 AD FS 代理服务器。

当调用WCF服务时,我们得到以下异常:

System.ServiceModel.Security.SecurityNegotiationException:SOAP 安全协商与'https://adfs-dev.example.com/adfs/services/trust/2005/kerberosmixed' 针对目标 'https://adfs-dev.example.com/adfs/services/trust/2005/kerberosmixed' 失败。请参阅内部异常以了解更多详细信息。'

---> System.IdentityModel.Tokens.SecurityTokenValidationException:提供的 NetworkCredentials 无法创建 Kerberos 凭据,请参阅内部异常了解详情。

---> System.IdentityModel.Tokens.SecurityTokenException: InitializeSecurityContent 失败。请确保服务主体名称正确。

--> System.ComponentModel.Win32Exception: 指定的目标未知或无法访问。

  • 内部 AD FS 服务器是配置为场而非独立服务器的单个服务器,并且 AD FS 服务在服务帐户下运行。
  • 代理 AD FS 服务器是配置为独立的单一服务器,AD FS 服务作为网络服务运行。
  • DMZ 中应用服务器上的主机文件条目将 AD FS 服务名称指向代理服务器的 IP。
  • 防火墙允许从代理到内部 AD FS 服务器的端口 443 上的 SSL 流量。
  • 已为服务帐户注册 HOST/adfs-dev.example.com SPN。

我可能遗漏了什么?

答案1

https://adfs-dev.example.com/adfs/services/trust/2005/kerberosmixed' 不可用作代理上的端点。请选择可用的端点。

相关内容