WIF基本原理(3)安全令牌服务

安全令牌服务(STS)是用于根据WS-Trust和WS-Federation协议构建、签署和颁发安全令牌的服务组件。实施这些协议需要进行大量的工作,但WIF能为你完成所有这些工作,让那些不精通协议的人不费吹灰之力即可启动并运行STS。可以使用云STS(如LiveID STS)、预先构建的STS(如ADFS 2.0),或者如果想要颁发自定义令牌或提供自定义身份验证或授权,可以使用WIF构建自定义的STS。借助WIF即可轻松地构建自己的STS。

STS身份验证支持多种方案:

q  从身份验证机制中分离出应用程序和服务,从而使其能够专注于授权相关声明。

q  支持多种凭据类型,而不会使应用程序和服务的实现变复杂。

q  支持联合方案,用户可以通过在自身的域中进行身份验证来获得对另一个域中资源的访问权限(通过建立不同域的STS之间的信任关系)。

q  简化标识委派方案,经过身份验证的用户将获得对下游服务的访问权限。

q  简化声明转换,使相关声明能够用于对应用程序和服务进行授权。

其中的任何方案都可以基于被动联合(基于浏览器)或主动联合(基于Windows客户端)。下面详细介绍这些方案,同时说明如何使用Geneva框架在自定义STS中构建相关逻辑。

主动联系与被动联合

在深入探讨STS的实现之前,先回顾一些基础知识。在主动联合中使用的STS是WS-Federation主动请求者配置文件和(主要)WS-Trust 规范的实现。

从较高层次看,WS-Trust使用四种服务操作来描述一个约定:颁发、验证、续订和取消。客户端分别调用这些操作来请求安全令牌、验证安全令牌、续订已过期的安全令牌以及取消不应再继续使用的安全令牌。根据WS-Trust 规范,每个操作都必须以“请求安全令牌”(RST) 的格式发送消息,并以“RST 响应”(RSTR) 的格式返回消息。在本节中,假定颁发的令牌是“安全声明标记语言”SAML 1.1或SAML 2.0令牌。

图15-4展示了主动令牌颁发时RST和RSTR的核心内容。

图15-4  主动联合方案的令牌颁发

如图所示,RST消息包括请求安全令牌所需的必要信息,其中涉及待颁发令牌的类型(本书中是SAML)、将要被纳入到颁发令牌中的“依赖方”(RP) 所请求的声明、有关RP (AppliesTo) 的信息(包括URL和通常用于标识RP的证书),以及将被用于RSTR所返回的“证明密钥”(proof key) 的可选(未显示)密钥材料。

如果令牌颁发成功,RSTR将包括颁发的SAML令牌和证明密钥(假定STS决定使用哪个证明密钥,因此必须在RSTR中返回它)。SAML令牌将包括已验证方的相关声明,它由STS签名来保护令牌不被篡改,令牌中将包含用于 RP 加密的证明密钥,并且它会为 RP 加密自身以确保只有目标接收节点才能处理该令牌。

客户端使用证明密钥来签署发往RP的消息。RP必须能够在 SAML 令牌中解密证明密钥,否则拒收该消息。如果令牌中的证明密钥与消息中的签名匹配,则证明此次对 RP 的调用是由请求该令牌的调用方所发送的。

被动联合方案基于WS-Federation 被动请求者配置文件,其中涉及基于浏览器的通信。虽然底层消息传递仍基于WS-Trust,但RST却在STSURL中被分解为查询字符串参数,而RSTR通常会作为表单参数被发布到 RP。被动STS和RP使用联合Web处理程序来截取这些参数。被动STS可以直接处理WS-Trust 请求,或者将其传递到底层WS-Trust实现。图15-5说明了在被动联合方案中对RST和RSTR 的处理方式。

图15-5  被动联合方案的令牌颁发

时间: 2024-12-27 09:52:56

WIF基本原理(3)安全令牌服务的相关文章

WIF基本原理(5)WIF的功能简介

WIF(Windows Identity Foundation)是用于构建标识应用程序的框架.该框架将 WS-Trust 和 WS-Federation 协议抽象化,并向开发人员呈现用于构建安全令牌服务和声明感知应用程序的 API.应用程序可以使用 WIF 处理安全令牌服务颁发的令牌,并在 Web 应用程序或 Web 服务中,根据标识做出决策. WIF具有以下主要功能: 1)        构建声明感知应用程序(信赖方应用程序). WIF可帮助开发人员构建声明感知应用程序. 除了提供新的声明模型

WIF基本原理(2)基于声明的标识模型

基于声明的标识模型,简单来讲,就是将用户信息作为声明条件,向应用程序来提供用户标识.一个声明以是用户名,也可能是电子邮件地址.现在的想法是配置外部标识系统,为应用程序提供了解用户及其所做各个请求所需的所有信息,以及从可靠源接收的标识数据的加密保证. 基于声明的标识模型,更容易实现单点登录,并且应用程序可以彻底摆脱以下操作: 1) 对用户进行身份验证. 2) 存储用户账户和密码. 3) 调用企业目录以查看用户标识的详细信息. 4) 从其他平台或公司与标识系统集成. 在基于声明的标识模型中,应用程序

使用Geneva框架构建安全令牌服务(STS)

本文基于 "Geneva" 框架的预发布版本撰写而成.所有信息均有可能发生变更. 本文将介绍以下内容: 使用 Geneva 框架实现安全令牌服务 联合安全性 声明转换 本文使用了以下技术: Windows Communication Foundation.ASP.NET.Geneva 框架 Microsoft 基于声明的访问 (CBA) 平台战略(代号为 "Geneva")包括 "Geneva" 框架."Geneva" 服务器

WIF基本原理(4)联合身份验证实例

联合身份验证实例 本实例要实现合作伙伴员工通过单一登录来尝试访问其他合作伙伴域中的资源.联合身份验证方案中有三个主要角色:标识提供方.声明提供方和信赖方.WIF会提供API 来构建所有这三个角色. 图15-11说明了典型的联合身份验证方案.在此方案中,Fabrikam员工希望无需重新登录即可访问Contoso.com 资源,也就是使用单一登录. 图15-11 联合身份验证 参与此方案的虚构用户包括: q  Frank:希望访问Contoso资源的Fabrikam员工. q  Daniel:在应用

WIF基本原理(1)标识库

WIF是一个开发框架,该框架集成了基于标识的安全模型和方案以及实现细节.WIF给我们带来的好处主要有三点: q  基于声明的标识处理方式. q  使业务逻辑与认证.授权彻底分离. q  可供学习和扩展的安全架构. 本系列主要探讨它的基本原理,从中学习构建一个安全框架的基本要素和方法.重要的是从它的基本原理,了解标识安全的普遍术语和技术模型. 标识库 对于某些应用程序,使用用户标识非常简单.以一个Windows应用程序为例,它仅供单个组织中的用户访问而无需过多了解用户信息.此应用程序可仅依靠Ker

联合身份标识:使用WIF实现ASP.NET被动身份验证

联合安全的目标是提供在域间建立信任关系的机制,这样,用户通过自己所属域的身份验证后,就获得了授权可以访问其他域的应用程序和服务.这使单一登录这样的身份验证方法成为可能,采用这种方法,无需针对多个应用程序和域为用户配置和管理重复帐户,从而显著降低将应用程序扩展到受信任方的成本. 在联合安全模型中,身份标识提供程序 (IdP) 执行身份验证,并通过安全令牌服务 (STS) 颁发安全令牌.这些令牌断言有关经过身份验证的用户的信息:用户身份标识和其他可能的信息(包括角色和更细粒度的访问权限).在联合技术

Geneva框架:构建基于声明的WCF服务的更好方法

本文基于"Geneva"框架的预发布版本撰写而成.所有信息均有可能发生变更. 本文使用以下技术: Windows Communication Foundation "Geneva"框架(以前称为"Zermatt")是用于构建基于声明的应用程序和服务以及实现联合安全方案的新框架代号.它的功能包括用于构建自定义安全令牌服务 (STS) 的探测功能.要求从 ASP.NET 应用程序进行联合身份验证的机制,以及简化 ASP.NET 应用程序和 Windo

服务站

目录 基于角色的授权 ASP.NET 角色提供程序 自定义主 体 集中化授权逻辑 基于声明的授权 声明 声明集 授权上下文t 声明转换 安全令牌服务 当分布式应 用程序开始采用面向服务这一主体时,安全性挑战将变得略有不同.您会突然意 识到所调用的每个服务都将跨越安全边界. 虽然并不绝对必要,但通常 情况下服务调用的发送方和接收方之间应该存在网络.尽管通常情况下通信框架 会自动处理身份验证,但您仍需要建立自己的授权策略和基础结构. Windows Communication Foundation

Minitab通过Windows Azure推出云端Qeystone

编者注: 本博客出自Minitab企业Web架构师Michael Yeaney之手,描述了公司如何使用Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure以及持续集成为其客户快速构建分析解决方案. Minitab公司. 领先的软件质量改良提供商.Minitab统计软件--我们的旗舰产品--已经被用在全世界几乎每个六西格玛(Six Sigma)计划中.Minitab的质量培训师教你质量改良统计和如何与Minitab