具有两个或更多个域的ADFS 2.0 + ASP.NET开发环境中的证书错误

我正在尝试build立一个声明感知的Web应用程序开发环境。 我是ADFS 2.0的新手,最终我希望能够对两个不同的域进行身份validation。 我觉得我非常接近,但是我从其中一个ADFS服务器收到证书错误。

在处理联合身份validation服务configuration期间,发现元素“serviceIdentityToken”具有无效数据。 已configuration的证书的私钥无法访问。

在Web应用程序中input凭据后,此错误将logging在域1上的ADFS服务器事件日志中。 即使有工作证书,我也会被传递到401未经授权的访问页面。

运行ADFS服务的用户帐户具有权限到证书的私钥,所以我不知道为什么我得到此错误。

我到目前为止所做的:

  1. 在域#1上创build一个服务器并安装ADFS 2.0
  2. 在域#2上创build服务器并安装ADFS 2.0
  3. 在域#1上创buildVS 2010的第三个开发服务器
  4. 在开发服务器上构build一个简单的应用程序,并使联合感知(按照http://msdn.microsoft.com/en-us/library/bb897402.aspx ); 在web.config中,联合服务器设置为域#1上的服务器

我也没有在任何一个ADFS服务器上build立一个依赖方信任。 这是必要的吗? 我似乎无法find任何好文件解释这应该如何工作。

我遵循这个( http://blogs.msdn.com/b/alextch/archive/2011/06/27/building-a-test-claims-aware-asp-net-application-andintegrating-it-with –adfs-2-0-security-token-service-sts.aspx )设置这个指南,但我觉得可能有一个简单的步骤,我已经错过了某个地方。

总结:

  1. 为什么我会得到上面的证书错误?
  2. 我是否缺less设置ADFS的任何步骤,以便我可以对这两个域进行身份validation? (我可能错过了将两个ADFS服务器连接在一起的步骤)

在此先感谢您的帮助。 熟悉ADFS的人可以在几分钟之内设置它!

看起来你正在尝试做的事情是使用一个来自域1的adfs联合开发服务器,然后使用来自domain1的adfs使用声明提供程序信任接受来自domain2中的adfs的令牌。 这样,来自domain1和domain2的用户将能够login并访问开发者服务器的应用程序,只要声明规则configuration正确。

因此,第二个问题的答案是configurationdomain1中的adfs的声明提供程序信任以指向域2中的adfs,并声明规则以转换/传递从domain1中的adfs接收的声明。 然后,域2中的adfs也需要一个依赖方信任configuration指向adfs 1,您在哪里select要求收集和发送的信息。

至于question1,它肯定看起来像adfs中的服务通信证书的私钥是不可访问的。 如果您将adfs作为服务器场安装,则您将拥有一个基于域的服务帐户。 如果您将其作为独立adfs构build,则将使用内置networking服务帐户。 这个select决定了如何在证书上configuration权限。

你提到了adfsangular色和adfs 2.0,所以我不确定你是在两台服务器上使用adfs 2还是在windows 2008 / R2中附带的内置angular色。 请澄清。

这些一步一步的指导应该有所帮助。

http://technet.microsoft.com/en-us/library/adfs2-federation-wif-application-step-by-step-guide(v=ws.10).aspx

所有的事情adfs请参阅

http://social.technet.microsoft.com/wiki/contents/articles/2735.ad-fs-2-0-content-map.aspx