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

联合身份验证实例

本实例要实现合作伙伴员工通过单一登录来尝试访问其他合作伙伴域中的资源。联合身份验证方案中有三个主要角色:标识提供方、声明提供方和信赖方。WIF会提供API 来构建所有这三个角色。

图15-11说明了典型的联合身份验证方案。在此方案中,Fabrikam员工希望无需重新登录即可访问Contoso.com 资源,也就是使用单一登录。

图15-11 联合身份验证

参与此方案的虚构用户包括:

q  Frank:希望访问Contoso资源的Fabrikam员工。

q  Daniel:在应用程序中实施必要更改的Contoso 应用程序开发人员。

q  Adam:Contoso IT管理员。

此方案中涉及的组件包括:

web1:一个部件订购Web应用程序,使用ASP.NET构建,用于控制对相关部件的访问。

sts1:一个STS,扮演Contoso.com中的声明提供方角色,可发出应用程序 (web1) 预期的声明。它已经与Fabrikam.com建立信任,并被配置为允许访问Fabrikam员工。

sts2:一个STS,扮演Fabrikam.com 中的标识提供方角色,可提供对Fabrikam员工进行身份验证的终结点。它已经与Contoso.com 建立信任,让Fabrikam 员工可以访问Contoso.com 资源。

如图15-4所示,此方案中的流程如下:

1)        Contoso管理员Adam对应用程序 (RP) 与 sts1之间的信任进行配置。

2)        Contoso管理员Adam对与作为标识提供方的sts2之间的信任进行配置。

3)        Fabrikam管理员Frank对与作为声明提供方的sts1之间的信任进行配置,然后访问应用程序。

下面来看实现联合身份验证的简要流程。

步骤1    设置声明提供方。

为Contoso.com管理员Adam提供三个可用选项:

q  安装STS产品,如ADFS 2.0。

q  订阅云STS产品,如LiveID STS。

q  使用WIF构建自定义STS。

可以根据业务需要、时间表、技术资源的可用性、划拨的预算等几个因素来选择选项。对于此示例方案,们假设Adam选择选项1,并使用 ADFS 2.0 产品文档将 ADFS 2.0安装为RP-STS。

步骤2    安装WIF。

添加代码清单15-3所示的代码来枚举声明。

代码清单15-3  枚举声明

// Get the access to IClaimsIdentityIClaimsIdentity claimsIdentity = ((IClaimsPrincipal)Thread.CurrentPrincipal).Identities[0];

foreach ( Claim claim in claimsIdentity.Claims ) { // Before using the claims validate that this is an expected claim. // If it is not in the expected claims list then ignore the claim. if ( ExpectedClaims.Contains( claim.ClaimType ) ) { // Write out the claim or use the claim as needed by application logic WriteClaim( claim, table ); } }

步骤3    建立从信赖方应用程序到STS的信任。

Daniel使用Federation Utility工具建立从RP应用程序到STS的信任。该工具还会为RP应用程序生成元数据,并将xml文件 (metadata.xml) 放入RP应用程序的文件夹内。RP应用程序web.config文件中有关STS (sts1) 的信息会自动得到更新。

步骤4    是在声明提供方处配置信赖方应用程序。

Adam通过参考 ADFS 2.0 产品文档来建立与 RP 应用程序的信任。

步骤5    在Fabrikam 处配置身份提供方 (IP)。

为Fabrikam.com 管理员Frank 提供三个可用选项:

q  购买并安装STS产品,如 ADFS 2.0。

q  订阅云STS 产品,如 LiveID STS。

q  使用WIF 构建自定义STS。

对于此示例方案,假设Frank选择选项1并将 ADFS 2.0 安装为 IP-STS。Frank也通过参考 ADFS 2.0 产品文档来建立与作为声明提供方的Contoso.com 的信任。

步骤6    访问Web 应用程序。

Frank以Fabrikam 域用户的身份登录到Fabrikam 系统。然后,他打开浏览器并访问Contoso.com RP 应用程序页面。由于已在Fabrikam 和Contoso 之间建立联合身份验证信任,所以Frank 现在无需重新进行身份验证即可访问Contoso 的资源。

上面的步骤,并不完整,希望读者能从场景和概念上对联合身份验证有一个完整的认识

--------------------------注:本文部分内容改编自《.NET 安全揭秘》

作者:玄魂

出处:http://www.cnblogs.com/xuanhun/

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索sts
, 验证
, 应用程序
, frank gibeau
, wif
, 联合
, sts maven
, 身份
步骤
wif身份验证出现问题、联合身份验证服务、ad联合身份验证、note2wif发生验证错误、身份证写字注意实例,以便于您获取更多的相关知识。

时间: 2024-09-14 23:08:46

WIF基本原理(4)联合身份验证实例的相关文章

单一登录: Active Directory联合身份验证服务开发简介

本文讨论: 什么是联合身份验证 使用 ADFS 在 ASP.NET 应用程序中实现联合身份验证 信任关系和安全性注意事项 本文使用了以下技术: ADFS 和 ASP.NET Active Directory 联合身份验证服务 (ADFS) 是 Windows Server 2003 R2 最重要的组件之一.ADFS 能够 解决很多问题,而其中最显而易见的就是企业到企业的自动化控制问题.在这篇文章中,我将从一个开发 人员的角度来分析 ADFS,我们假设这个开发人员正在构建一个 Web 应用程序,而

php通过会话控制实现身份验证实例_php实例

会话控制的思想就是指能够在网站中根据一个会话跟踪用户.这里整理了详细的代码,有需要的小伙伴可以参考下. 概述 http 协议是无状态的,对于每个请求,服务端无法区分用户.PHP 会话控制就是给了用户一把钥匙(一个加密session字符串),同时这也是用户身份的一个证明,服务端存放了这把钥匙能打开的箱子(数据库,内存数据库或者使用文件做的),箱子里面装的就是用户的各个变量信息. 传统的php session 使用 <?php //page1.php 启动一个会话并注册一个变量 session_st

php通过会话控制实现身份验证实例

会话控制的思想就是指能够在网站中根据一个会话跟踪用户.这里整理了详细的代码,有需要的小伙伴可以参考下. 概述 http 协议是无状态的,对于每个请求,服务端无法区分用户.PHP 会话控制就是给了用户一把钥匙(一个加密session字符串),同时这也是用户身份的一个证明,服务端存放了这把钥匙能打开的箱子(数据库,内存数据库或者使用文件做的),箱子里面装的就是用户的各个变量信息. 传统的php session 使用 <?php //page1.php 启动一个会话并注册一个变量 session_st

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

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

WIF基本原理(1)标识库

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

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

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

ASP.Net:基于窗体的身份验证

asp.net     基于窗体的验证是最为普遍的一种验证,使用这种验证方式可以很方便灵活地应用到应用程序中.窗体验证方式对基于用户的验证授权提供了很好的支持,可以通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端.服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了.     要采用窗体验证,先要在应用程序根目录中的Web.config中做相应的设置:     <authentica

云计算设计模式(九)——联合身份模式

云计算设计模式(九)--联合身份模式 验证委托给外部身份提供者.这种模式可以简化开发,最大限度地减少对用户管理的要求,并提高了应用程序的用户体验. 背景和问题 用户通常需要使用由提供,并通过与它们有商业关系的不同组织主持的多个应用程序一起工作.但是,这些用户可能被迫使用特定的(和不同的)的凭证,每一个.这可以: •原因脱节的用户体验.用户经常忘记登录凭据时,他们有很多不同的的. •暴露安全漏洞.当用户离开公司的帐户,必须立即取消设置.这是很容易忽略这在大型组织中. •复杂的用户管理.管理员必须管

asp.net 身份验证机制实例代码_实用技巧

ASP.NET提供了3种认证方式:windows身份验证.Forms验证和Passport验证. windows身份验证: IIS根据应用程序的设置执行身份验证.要使用这种验证方式,在IIS中必须禁用匿名访问. Forms验证:用Cookie来保存用户凭证,并将 未经身份验证的用户重定向到自定义的登录页. Passport验证:通过Microsoft的集中身份验证服务执行的,他为成员站点提供单独登录和核心配置文件服务. 关于这三种验证方式的配置,推荐一篇文章:http://www.jb51.ne