加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

adfs2.0 – 启用了非声明的ASP.NET应用程序和ADFS v2.0

发布时间:2020-12-16 09:45:21 所属栏目:asp.Net 来源:网络整理
导读:这个 article让我想到当你通过FedUtil与ADFS联合使用非声明的ASP.NET应用程序会发生什么. 文章建议,使这项工作的关键是打开声称为Windows令牌服务(C2WTS).此服务有效地将ADFS令牌转换为Windows令牌. 所以我使用Windows身份验证构建了一个快速的ASP.NET应用程
这个 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进行任何更改,则必须删除并重新配置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读