adfs2.0 – 启用了非声明的ASP.NET应用程序和ADFS v2.0
这个
article让我想到当你通过FedUtil与ADFS联合使用非声明的ASP.NET应用程序会发生什么.
文章建议,使这项工作的关键是打开声称为Windows令牌服务(C2WTS).此服务有效地将ADFS令牌转换为Windows令牌. 所以我使用Windows身份验证构建了一个快速的ASP.NET应用程序,运行了FedUtil,我可以使用ADFS Windows身份验证或StarterSTS对ADFS进行身份验证.问题是C2WTS没有运行所以它可以工作,虽然我预计它不会. 显然,您无法访问应用程序中的声明对象,但是它可以正常工作. 然而,这确实引起了一个问题.由于您无法访问FederatedPassiveSignOut等,您如何从ADFS注销? 令牌是否被发送到应用程序? 它是否只是忽略它们而不抛出任何例外? C2WTS是否需要成为图片的一部分? 我错过了什么吗? 解决方法
在其他论坛上询问,Steve Syfuhs回答说:
FedUtil修改web.config,因此身份验证方法为“None”,并在Web请求中尽早插入一些处理程序以查看是否存在会话,如果没有通过重定向到指定的STS创建会话,STS就是这样,并将令牌传回网站.另一个处理程序接收令牌并基于令牌构建IClaimsPrincipal对象. Thread.CurrentPrincipal对象设置为IClaimsPrincipal.因此,Windows身份验证不会发生在Web应用程序中(但它在ADFS中). OWA(与所有构建良好的Web应用程序一样)查看Thread.CurrentPrincipal以获取用户的身份.只要STS提供的值与OWA所期望的相匹配,OWA就会很高兴.某些声明可通过Thread.CurrentPrincipal获得,例如Name声明,这是OWA用于获取用户名的声明.创建C2WTS是为了在理解声明的应用程序和不通过创建Windows令牌并将其附加到用户会话的应用程序之间充当垫片. OWA需要调用Active Directory来获取某些信息,并通过Windows身份验证来完成,因此需要Windows令牌. 在这种情况下,无法退出ADFS,但您仍然可以通过删除cookie来终止OWA或自定义应用程序中的会话.在自定义Web应用程序中,您可以链接到ADFS注销页面,该页面为https://adfsserver/adfs/ls/?wa=wsignout1.0并将退出ADFS. 更新: 只为其他人记录: 这种方法适用于外包身份验证,但有三个问题: >无法访问声明对象.>你必须滚动自己的注销.>联邦元数据有一些“不同”.您无法通过URL在ADFS中将应用程序添加为RP.您必须使用导入文件机制.这意味着无法更新元数据,因此如果对RP进行任何更改,则必须删除并重新配置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC – 更改模型的视图中的值[封闭]
- asp.net-mvc – Pro ASP.Net MVC 3实体框架体育商店教程
- asp.net-mvc – IApplicationBuilder.New()的目的是什么?
- asp.net-mvc-4 – MVC 4中的ClientValidationEnabled和Unob
- ASP.NET FileUpload以及文件下载和Repeater控件显示
- 在asp.net MVC2中的每个Web请求上创建的nhibernate会话
- 文档在线预览的实现
- asp.net-mvc – 如何将自定义数据属性和类添加到`@ Html.Ed
- asp.net – 在用户控件中关闭页面级缓存
- asp.net-mvc-4 – 使用StructureMap为NServiceBus和MVC管理
- asp.net-mvc-3 – 在MVC3中添加有关打印功能的数
- asp.net-core – 项目’XXXXXX’没有锁文件.请运
- 内容管理 – ASP.NET建议[已结束]
- ASP.NET core MVC动作过滤器执行顺序
- asp.net-mvc-3 – Telerik MVC网格,在运行时从集
- asp.net-mvc – 如何使用ASP.NET MVC 5和OWIN获取
- 详解ASP.NET Core 2.0 视图引擎(译)
- 身份验证 – 如何为Asp.NET MVC 5创建ClaimsIden
- asp.net – 会话状态,页面生命周期中的应用程序状
- 帮助页面ASP.NET vNext MVC 6 Web Api