写点什么

微软程序经理 Eugenio 谈基于 WIF 和 ADFS 2.0 技术的身份联合服务

2010 年 6 月 01 日

微软已经进入了云的时代,客户也开始寻求将他们的应用系统移植到新的平台之上。要完成这些工作,首先要解决的就是认证和身份管理。为了了解相关信息,InfoQ 的编辑 Arild Tørresdal 与 Eugenio Pace 进行了一次对话。微软最近发布了联合与身份认证技术,Eugenio Pace 就是其中模式与实践团队的高级程序经理。

联合服务的价值不仅仅是在云端,对那些希望与合作伙伴进行整合或要进行多应用单点登录的公司,同样具有吸引力。对于开发人员或IT 专业人士,可以在 .NET 平台获取更多关于联合服务的信息,InfoQ 也收集了一系列相关资源,希望会有帮助,在文章的结尾可以找到这些资源列表。

InfoQ:能否为我们简单介绍一下联合服务及其遇到的挑战和要解决的问题?

Eugenio:今天的很多应用都需要自己进行用户认证。他们通过管理用户证书的方式进行用户认证,一般是基于表单的用户名 / 密码或者其他形式的共享机密。这就导致了用户信息库的增加,每一个应用都会对应一份用户信息。在很多环境下,这种方式还不错,但在许多其他的场景中,这种方式就显示出它的局限性了。例如,如果每个应用系统都在自己的数据库存一份用户信息,当你想实现一个“单点登录”的体验时就变得有些困难。很多管理任务也会相应增加,比如创建一个新用户的帐户信息,你不得不在每个应用系统都做一遍同样的事情。同时增加的还有安全风险:假如一个用户已经无效了,而你可能忘记从某个系统中注销这个用户,这就会无意中造成这个用户仍然能够访问系统。身份联合服务(和基于认证架构的相关声明)的目标就是应对上面提到的这些挑战,其做法就是把用户的认证信息从应用系统迁移到一个特殊的服务上:“身份提供商”。

InfoQ:以前.NET 的联合服务是很难用的,需要具备高深的安全知识才行。微软做了哪些改进呢?

Eugenio:微软最近发布了 Windows 身份验证基础(WIF),这是一个声明式的.NET 类库。WIF 已经与 SDK 和工具一起集成到了 Visual Studio 环境中,这样可以更好的简化开发实践。

InfoQ:你会说,联合服务将会被最大程度的采用并获得最大的好处么?

Eugenio:身份联合服务最让人兴奋的应用场景之一就是针对基于云的应用系统。我相信随着公司把越来越多的应用移到云端,基于声明式的身份认证将是最好的方式。

InfoQ:你, Dominick Baier , Vittorio Bertocci , Keith Brown Matias Woloski 最近出版了一本书《声明式身份认证和访问控制指南》,既有 PDF 版本也有书,关于这本书,你能说点什么吗?

Eugenio:这个指南的目标就是为了帮助开发人员快速了解声明式身份认证的好处。本书描述一些很普通的场景(像单点登录,合作伙伴的整合,通过 Web 服务的整合),对于特殊需求,可以用特别的考虑和设计去实现。最终目标就是为了加快声明式身份认证的使用。

InfoQ:你提到了声明。据我所知声明从.NET 1.0 版本就有了,但一直没有被广泛使用。现在声明看上去成了.NET 身份验证模型中的核心部分。你能简单描述一下声明模型吗?它与传统模型有什么不同?

Eugenio:WIF 的设计目的就是让开发人员远离身份验证的所有细节,包括校验,解析和交换安全令牌。WIF 实现了 WS-Federation 和 WS-Trust 协议,能够处理 SAML1.1 和 2.0 的安全令牌。开发人员更多是去处理更高水平的抽象,例如使用接口IPrincipalIIdentity,WIF 为此提供了专门的版本:IClaimsPrincipalIClaimsIdentity

InfoQ:关于 WIF 框架,你还能告诉我们什么?

Eugenio:WIF 可以无缝集成到很多通用和流行的应用框架中,例如开发 Web 站点的 ASP.NET,开发 Web 服务的 WCF 等。对于许多场景来说,开发者只是简单使用他们已经熟悉的抽象好的类库,例如接口IPrincipal。WIF 会在运行时自动找到具体的声明式实现。例如,在一个 ASP.NET 应用中,开发人员可以一直调用User.Identity.Name,这个Identity的实现其实是IClaimsIdentity,而且 Name 事实上是一个属性,是从声明式集合中提取出来的。集成到 Visual Studio 的工具允许开发者通过声明的方式自动转换现有的应用。例如在 Visual Studio 中有个“增加 STS 引用”的向导,可以实现“支持声明方式”Web 应用的转换。

InfoQ:ADFS2.0 是微软集成了活动目录的安全令牌服务。目前(顾名思义)只支持活动目录。你认为 ADFS 今后会变成一个纯粹的基于 AD 的安全令牌服务,还是会有其他的集成方式?

Eugenio:目前 ADFS2.0 只能通过 AD 实现用户认证。不过,针对发布声明,ADFS2.0 提供了丰富的和可扩展的引擎,以便使用各种类型的存储介质。基于开箱即用的原则,ADFS2.0 能够从存储在 LDAP 目录和 SQL 仓库的信息中发布声明。当然,你还可以开发自定义类型的引擎来支持特殊的存储介质。

InfoQ:ADFS 有一个可选的代理选项,可以让用户通过互联网认证公司域名。我发现很难告诉 IT 人员这种做法是安全的。你能解释一下这个代理机制是如何工作的吗?你推荐大家怎么做呢?

Eugenio:每个场景都是不同的,每个客户都应该根据自己的具体需求进行分析。当然主要的场景就是你刚才描述的。代理在你内部的 STS 之上提供了一个附加的安全层。代理可以通过扩展的方式实现多重身份认证,进一步强化互联网用户的认证需求。

InfoQ:现在我知道了 ADFS2.0 支持 SAML 令牌,那么它也支持 SAML 协议吗?

Eugenio:现在 ADFS2.0 支持 SAML 协议,支持 IdP Lite,SPLite 和 EGov1.5,同时通过了自主联盟的互操作性测试。

InfoQ:非常感谢你抽时间接受我们的采访。

资源列表

开发者和 IT 专业人士可以根据以下的资源列表找到更多关于如何在.NET 平台实现联合服务的信息

查看英文原文: Eugenio Pace on Identity Federation, WIF and ADFS 2.0


译者简介:池建强,12 年软件从业经验,先后在洪恩软件和用友集团任职。目前在用友集团瑞友科技 IT 应用研究院任副院长,负责公司基础应用平台的研发和整个公司的技术管理。主要关注领域:企业应用软件平台研发、领域驱动设计,OSGi,动态语言应用、云计算、移动互联等相关技术。

2010 年 6 月 01 日 07:121126

评论

发布
暂无评论
发现更多内容

谈谈力软快速开发平台B/S专业报表工具

Learun

小程序 敏捷开发 开发者工具 报表

[Go] 设置各种选项的最佳套路

eddix

go 设计模式

就餐卡系统第一周作业「架构师训练营第 1 期」

天天向善

学习

从构建小系统到架构分布式大系统,Spring Boot2的精髓全在这里了

Java成神之路

Java 编程 程序员 面试 Spring Boot 2

司法区块链破解互联网案件审判难

CECBC区块链专委会

区块链技术 不可篡改 法院

多方计算——打开区块链应用新场景

CECBC区块链专委会

区块链 大数据

洞爷湖-安静与灵动

刘旭东

摄影 摄影征文 洞爷湖 北海道

UML图

饺子

第一周作业

Geek_4c1353

极客大学架构师训练营

架构师训练营01周 -- 命题作业

骏马

极客大学架构师训练营

同事为进大厂天天刷Java面试题,面试却履败!究其原因竟是它在捣鬼。

Java成神之路

Java 程序员 数据结构 面试 算法

不正经的计算机专业学生拍摄照片分享

王荣胜

摄影

面试官:谈一下你对DDD的理解?我:马什么梅?

艾小仙

Java 架构 编程语言 领域驱动设计 DDD

Vue-防止重复点击指令

老菜鸟

Vue 指令

食堂就餐卡系统设计

一个节点

极客大学架构师训练营

阿里云发布边缘计算视频上云解决方案 为海量视图处理提供城市级云基础设施

阿里云Edge Plus

边缘计算

云图说 | 通过Helm模板快速部署中间件应用

华为云开发者社区

容器 k8s

聚焦2020云栖大会 边缘计算专场畅谈技术应用创新

阿里云Edge Plus

第一周总结

一个节点

极客大学架构师训练营

微服务 API 网关kong的爬坑之路

Dream

微服务网关 kong

架构师训练营1期第1周:架构方法 - 总结

piercebn

极客大学架构师训练营

食堂就餐卡系统UML设计 - 架构师训练营第1周作业

netspecial

极客大学架构师训练营

Week 1 命题作业

阿泰

抓住这些BUG程序员进大厂也就这回事,工作后2到3年进大厂操作指南

Java架构师迁哥

架构方法周总结第一周作业「架构师训练营第 1 期」

天天向善

学习

程序员写个人技术博客的价值与意义

Java架构师迁哥

云栖大会CDN技术专场:如何构建企业级内容分发加速体验?

阿里云Edge Plus

CDN

第一周学习总结

饺子

非暴力拆解:小熊派NB-IoT通信扩展板

华为云开发者社区

IoT 通信 芯片

并发+JVM+Redis+MySQL+分布式+微服务等及阿里等大厂最新面试问答

Java成神之路

Java redis spring 面试 JVM

加速连接效率 阿里云推出5G消息使能平台MEP

阿里云Edge Plus

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

微软程序经理Eugenio谈基于WIF和ADFS 2.0技术的身份联合服务-InfoQ