快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

联合安全的目标是提供在域间建立信任关系的机制,这样,用户通过自己所属域的身份验证后,就获得了授权可以访问其他域的应用程序和服务。这使单一登录这样的身份验证方法成为可能,采用这种方法,无需针对多个应用程序和域为用户配置和管理重复帐户,从而显著降低将应用程序扩展到受信任方的成本。

在联合安全模型中,身份标识提供程序 (IdP) 执行身份验证,并通过安全令牌服务 (STS) 颁发安全令牌。这些令牌断言有关经过身份验证的用户的信息:用户身份标识和其他可能的信息(包括角色和更细粒度的访问权限)。在联合技术领域,这些信息称为声明,基于声明的访问控制是联合安全模型的核心。在这一模型中,应用程序和服务根据来自受信任颁发机构 (STS) 的声明,对特性和功能的访问进行授权。

Windows Identity Foundation (WIF) 等平台工具大大降低了支持这种联合身份验证的难度。WIF 是一个身份标识模型框架,用于构建基于声明的应用程序和服务,支持基于 SOAP(主动)和基于浏览器(被动)的联合方案。在 MSDN 杂志 2009 年 11 月刊中的文章“通过 WIF 实现基于声明的授权”中,我重点介绍了如何在 Windows Communication Foundation (WCF) 中使用 WIF。在这篇文章中,我介绍了如何为 WCF 服务实现基于声明的安全模型,以及如何迁移到联合身份验证。

在本后续文章中,我将重点介绍被动联合。我将说明被动联合的通信流程,介绍几种在 ASP.NET 应用程序中支持联合的方法,讨论基于声明的 ASP.NET 授权方法,然后介绍单一登录和单一注销方案。同时,我将介绍支持被动联合方案的基础 WIF 功能和组件。

被动联合基础

被动联合方案基于 WS-Federation 规范。该规范规定了如何请求安全令牌,如何发布和获取联合元数据文档,从而简化建立信任关系的过程。WS-Federation 还规定了单一登录和注销过程,以及其他联合实现概念。

WS-Federation 讨论了有关联合的诸多细节,其中有一部分专门介绍基于浏览器的联合,这种联合依靠 HTTP GET 和 POST、浏览器重定向以及 Cookie 实现目标。

被动联合消息传递的某些方面主要基于 WS-Trust 规范。例如,在请求 STS 的安全令牌时,被动联合采用与浏览器兼容的“请求安全令牌”(RST) 和“RST 响应”(RSTR) 形式。在被动联合方案中,我将 RST 称为登录请求消息,将 RSTR 称为登录响应消息。WS-Trust 规范侧重于基于 SOAP(主动)的联合,如 Windows 客户端与 WCF 服务的联合。

图 1 是一个简单的被动联合方案。

图 1 简单被动联合方案

用户在自己的域通过身份验证,根据其角色获得 Web 应用程序访问权限。此身份验证方案中的参与者包括用户(主体)、Web 浏览器(请求者)、ASP.NET 应用程序(依赖方,即 RP)、负责在用户域中对用户进行身份验证的 IdP,以及属于用户域的 STS (IP-STS)。一系列的浏览器重定向操作可以确保用户在访问 RP 之前在自己的域内通过身份验证。

用户浏览至 RP 应用程序 (1),然后重定向到用户的 IdP 进行身份验证 (2)。如果用户尚未在 IdP 经过身份验证,IP-STS 可能进行质询,或将用户重定向到登录页面以收集凭据 (3)。用户提供自己的凭据 (4),然后由 IP-STS (5) 进行身份验证。此时,IP-STS 根据登录请求颁发安全令牌,包含该令牌的登录响应通过浏览器重定向发送到 RP (6)。RP 处理安全令牌,根据令牌携带的声明授予访问权限 (7)。如果成功授权,则向用户显示其最初请求的页面,并且返回会话 Cookie (8)。

使用 WIF 和 ASP.NET 实现此被动联合方案只需要几个步骤:

建立 RP 和 IdP (IP-STS) 之间的信任关系

对 ASP.NET 应用程序启用被动联合

实现授权检查,以控制对应用程序功能的访问。在后面几节中,我将讨论支持被动联合的 WIF 功能,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号