我创建了一个支持ADFS windows NT的tokenapp 配置IIS 7以在身份验证和回复URL中启用Windows NT令牌为https://adfsweb.treyresearch.net/tokenapp
我将此应用程序作为基于Windows NT令牌的应用程序添加到adfsresource应用程序中。
使用此web.config文件(http://blogs.technet.com/b/adfs_documentation/archive/2006/08/03/444865.aspx#DSDOC_BKMK_667328988_f5db_446a_9261_00b4)
default.aspx.cs如下。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Security.Principal;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = HttpContext.Current.User.Identity.Name;
WindowsIdentity i = (WindowsIdentity)HttpContext.Current.User.Identity;
IdentityReferenceCollection irc = i.Groups;
foreach (IdentityReference ir in irc)
{
Label2.Text += ir.Translate(typeof(NTAccount)).Value.ToString() + "; ";
}
}
}
只要我使用treyresearch,net user从adfsresources域登录,它就可以正常工作。
如果我在adatum.com域中使用此tokenappp url,则会收到错误,并且在adfsresource服务器的事件日志中出现此错误:
Event code: 4011
Event message: An unhandled access exception has occurred.
Event time: 11/29/2011 7:20:26 PM
Event time (UTC): 11/30/2011 1:20:26 AM
Event ID: ac49318023ee4ba4ab7ab6e0bca78522
Event sequence: 5
Event occurrence: 2
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT/adfs-1-129670890061718750
Trust level: Full
Application Virtual Path: /adfs
Application Path: C:\Windows\SystemData\ADFS\sts\
Machine name: ADFSRESOURCE
Process information:
Process ID: 1892
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Request information:
Request URL: https://adfsresource.treyresearch.net:443/adfs/ls/clientlogon.aspx
Request path: /adfs/ls/clientlogon.aspx
User host address: 192.168.10.133
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Custom event details:
这是否意味着我需要让Windows信任在ADFS信任之上才能为远程域使用Windows NT令牌?如果是这样,那么ADFS信任没有意义,如果我还需要Windows域信任。
我可以让我的声明应用程序从远程域正常工作,但我在完成所有信任策略导出导入后添加了这个新的tokenapp http://technet.microsoft.com/en-us/library/cc731103%28WS.10%29.aspx
我也跟着并验证了以下信息 http://technet.microsoft.com/en-us/library/cc734929%28WS.10%29.aspx
答案 0 :(得分:1)
一句警告 - 您参考的文章是在2006年撰写的,并讨论了网络代理 - 换句话说就是ADFS 1.
ADFS 2几乎是一种新产品。它于2010年问世,不再具有代理概念。
Windows Server 2008标配的ADFS“功能”是1而不是2.您必须下载2并安装它。
Appendix A: Reviewing AD FS 2.0 Requirements声明“AD FS 2.0不支持基于Windows NT令牌的应用程序。”
但是,它支持C2WTS(声称为Windows令牌服务)。