基于声明的身份认证指南

  • Abel Avram
  • 王波

2009 年 10 月 20 日

话题:.NET安全微软语言 & 开发架构

微软模式与实践(Patterns & Practices)团队创建了一项新的 CodePlex 项目,命名为基于声明的身份验证与访问控制向导(Claims Based Identity & Access Control Guide),用于帮助用户理解基于声明的身份验证并演示如何使用新型的验证及授权技术编写应用程序的过程。

可信的授权机构颁发一份已签名的安全令牌,当中包含一套声明(或者说是凭据)用于应用程序进行验证。若已签名安全令牌有效并由可信的机构颁发,那么该应用程序就会进行验证。

基于声明的身份识别简化了应用程序开发,因此使用该类型验证的应用程序无须核实该用户递交的所有凭据。

公司安全策略决策者可以应用那些规则并可购买或创建授权机构。应用程序只要能接收类似于登记牌的信息即可。不管使用什么验证协议,如:Kerberos、SSL、表单验证或者其它的认证,应用程序都能获取一份已签名的声明集合,它包含了关于用户的必要信息。这些信息以应用程序可马上使用的简单的形式组成。

取而代之的是让授权机构处理所有安全问题,包括简化集成、迁移、合并、联合或创建云应用程序的过程。同时,使得在相同条件下单一登录 (SSO) 更易于实现。该指南演示一个虚拟的公司如何给它的雇员提供声明来实现 SSO 的外部访问,而无须先创建 VPN 连接。

基于声明的身份认证是推荐的安全方式,它并非对所有人都适用。某些情况下,活动目录也许已经够用:

当你决定颁发哪种类型的声明时,问自己说服 IT 部门去扩展活动目录架构有多大的困难。他们有充分的理由维持现状。如果他们现在还不情愿,声明也无法改变。在选择哪些属性用于声明的时候,请牢记这点。

该指南还包括使用于基于声明的安全架构的协议。该指南仍在改进当中。

微软创建了一个Geneva框架,可提供“简化用户访问和单一登录过程,用于企业、跨组织和 Web 的应急和基于云计算的应用程序中”。Geneva 重命名为 Windows 身份验证基础(Windows Identity Foundation),它有创建可识别声明的 ASP.NET 或 WCF 应用程序逻辑。Geneva 服务器目前被称为 Active Directory 联合身份验证服务(Federation Services),“是针对颁发和修改声明、启用联合认证以及管理用户访问的一项安全令牌服务(STS)”。当前 Geneva 项目为 Beta 2 版本。

查看英文原文:A Guide to Claim-based Identity

.NET安全微软语言 & 开发架构