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

简介:

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

联合身份验证实例

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

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

15-11 联合身份验证

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

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

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

q  AdamContoso 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/archive/2012/06/24/2560184.html,如需转载请自行联系原作者

目录
相关文章
|
关系型数据库 数据库 数据安全/隐私保护
PostgreSQL安装和使用教程
PostgreSQL安装和使用教程
994 0
No module named ‘PyQt5.QtWebEngineWidgets‘
No module named ‘PyQt5.QtWebEngineWidgets‘
830 0
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 提供SMB共享 smbd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 提供SMB共享 smbd命令 使用指南
1466 0
|
人工智能 自然语言处理 搜索推荐
办公方式革新,手把手教你打造超实用 AI 助理
在AI重塑企业办公的时代,钉钉AI助理成为智能化变革的关键工具。通过连接企业知识库,提供智能问答服务,它能高效解答员工的各种问题,提升工作效率与体验。搭建钉钉AI助理需先整理企业知识,登录钉钉创建并个性化设置助理,添加知识文档,确保其稳定运行。这一智能助手不仅能提高沟通效率,还能降低人力成本,助力企业迈向智能化管理。
1022 1
|
存储 消息中间件 运维
从单体到微服务:架构演进中的技术挑战与解决方案
在软件开发的过程中,系统架构的选择对项目的成功与否起到至关重要的作用。本文将深入探讨从单体架构向微服务架构演进过程中所遇到的技术挑战,并提供相应的解决方案。
608 27
|
人工智能 前端开发 算法
科技云报到:从大模型到云端,“AI+云计算”还能讲出什么新故事
科技云报到:从大模型到云端,“AI+云计算”还能讲出什么新故事
359 3
|
存储 IDE 开发工具
易语言基础功能
易语言基础功能
|
小程序 JavaScript Oracle
微信小程序系列——对数据的增删改查操作
微信小程序系列——对数据的增删改查操作
|
存储 分布式计算 固态存储
starrocks导入性能和分区分桶介绍
starrocks导入性能和分区分桶介绍
starrocks导入性能和分区分桶介绍
|
弹性计算 大数据 测试技术
阿里云4核8g服务器价格以及收费标准_2024年新版报价
阿里云服务器4核8g配置多少钱一年?1个月费用多少?云服务器u1实例3折优惠价955.58元一年,计算型c7云服务器4核8G价格2944.79元一年。4核8G服务器按月购买比较贵,经济型e实例4核8G配置1个月216元,通用算力型u1服务器336.96元一个月

热门文章

最新文章