我正在尝试使用C#从ADFS 2.0 ws-trust服务获取SAML 2.0令牌。流行的样本就是这个http://leastprivilege.com/2012/11/16/wcf-and-identity-in-net-4-5-external-authentication-with-ws-trust/。但是,此示例使用UserNameWSTrustBinding,根据本文http://msdn.microsoft.com/en-us/library/jj157091.aspx,它没有跳转到4.5的System.IdentityModel命名空间。
我一直在试验这个示例和我找到的一些变体,但到目前为止,我能得到的唯一结果是各种错误消息。我想知道是否有任何好方法来调试最新版本,“安全令牌请求包含无效或格式错误的元素。”我打开了WCF登录,并确定ADFS服务将此消息作为错误返回。
查看ADFS服务器上的AD FS 2.0 / Admin事件,没有任何错误迹象。有几篇帖子表明这在ADFS场环境中很常见,但我的是一个简单的单服务器配置。
有没有人有好的诊断方法?或者,ADFS服务器端是否有适合任何配置要求的样本?
答案 0 :(得分:1)
此链接http://social.msdn.microsoft.com/Forums/en/Geneva/thread/33fc091b-505c-481c-a61c-a8541a5ccf23显示如何为ADFS 2.0的服务器端启用WCF和WIF跟踪。修改C:\ Program Files \ Active Directory联合身份验证服务2.0 \ Microsoft.IdentityServer.Servicehost.exe.config中的配置文件。 (将三个switchValue设置更改为Verbose并修改跟踪侦听器。)按照说明操作时,请确保更改侦听器上的类型。像
这样的东西<add name="ADFSWifListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\logs\adfs1.svclog" />
我还必须批准&#34;每个人&#34;完全访问C:\ Logs文件夹,您可以根据需要使用审计来优化这些权限。创建.svclog文件后,可以使用%ProgramFiles%/ Microsoft SDKs / Windows / v8.0A / bin / NETFX 4.0 Tools(或任何其他SDK版本)中的SvcTraceViewer.exe查看它们。
注意:Microsoft不支持将跟踪数据直接记录到文件的概念,因此您需要根据本文http://technet.microsoft.com/en-us/library/adfs2-troubleshooting-configuring-computers(WS.10).aspx关闭或配置生产部署。