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

基于声明的标识模型,简单来讲,就是将用户信息作为声明条件,向应用程序来提供用户标识。一个声明以是用户名,也可能是电子邮件地址。现在的想法是配置外部标识系统,为应用程序提供了解用户及其所做各个请求所需的所有信息,以及从可靠源接收的标识数据的加密保证。

基于声明的标识模型,更容易实现单点登录,并且应用程序可以彻底摆脱以下操作:

1) 对用户进行身份验证。

2) 存储用户账户和密码。

3) 调用企业目录以查看用户标识的详细信息。

4) 从其他平台或公司与标识系统集成。

在基于声明的标识模型中,应用程序将根据用户所提供的声明来做出与标识相关的决策。这可以是任何内容,从包含用户名字的简单应用程序个性化设置,到授予用户访问应用程序中高级功能和资源权限。
基本概念

下面简单介绍基于声明的标识模型的基本术语。

(1) 标识

“标识”一词通常是一个不明确的术语。但为了描述WIF中的编程模型,这里使用术语“标识”来描述一组说明要保护的系统中用户或其他一些实体的特性。比如一个常见的互联网站点,对于一个普通用户,其标识可能是用户名,可能是性别,也可能是爱好,总之是一个完整实体的特性。

(2) 声明

将声明视为一条标识信息,如销售角色中的姓名、电子邮件地址、年龄、成员身份。应用程序接收的声明越多,对用户了解得就越多。你可能想知道为何将这些称为“声明”而不是通常描述企业目录时用到的“特性”。原因就在于送达的方式。在此模型中,应用程序并不在目录中查询用户特性。相反,用户向应用程序传达声明,由应用程序对其进行检查。各声明均由颁发者发出,你对这些声明的信任度与对颁发者的信任度一样。例如,你对公司域控制器发出的声明的信任度高于对用户自己发出的声明。WIF代表Claim类型的声明,此类型声明具有找出声明颁发者的Issuer属性。

(3) 安全令牌

用户向应用程序传递一组声明和一个请求。 在Web服务中,这些声明将在 SOAP封装的安全标头中传递。在基于浏览器的Web应用程序中,这些声明将通过HTTP POST从用户的浏览器中到达,并可能随后缓存在 Cookie中(如果需要会话)。不论这些声明如何到达,都必须对其进行序列化,这也是安全令牌所在之处。安全令牌是一组经过颁发机构数字签名的序列化声明。此签名非常重要:它向你保证用户并不只是生成大量声明然后发送给你。在没必要或不希望加密的安全性较低的情况下,可使用未签名的令牌。

WIF的一个核心功能是,可以创建和读取安全令牌。WIF和.NET Framework可以处理所有的加密工作,并为应用程序提供一组可以读取的声明。

(4)      颁发机构

不同类型的颁发机构有很多,从颁发 Kerberos票证的域控制器到颁发X.509证书的证书颁发机构。这里讨论的颁发机构是可颁发包含声明的安全令牌的机构。此颁发机构是了解如何颁发安全令牌的 Web应用程序或 Web服务。它必须发出正确的声明,提供给目标信赖方和提出请求的用户,并且负责查看声明并对用户本身进行身份验证。

不论选择哪个颁发机构,它在标识解决方案中的作用都十分重要。在通过信任声明将身份验证的因素从应用程序中排除时,你会将责任转交给该机构并要求其以你的名义对用户进行身份验证。

(5)      标准

为使所有这些操作能够交互,使用了多个WS-*标准。使用WS-MetadataExchange检索策略,并根据WS-Policy规范对策略本身进行结构化。STS(安全令牌服务)公开了实施WS-Trust规范的终结点,此规范描述了如何请求和接收安全令牌。如今,大多数 STS可颁发安全声明标记语言(SAML)格式的令牌。SAML是行业认可的XML词汇,可用于以交互方式表示声明。或者,在多平台情况下,这使你可以与完全不同的平台上的 STS进行通信,并在所有应用程序中实现单点登录。

(6)      基于浏览器的应用程序

基于浏览器的应用程序也可以使用标识模型。

首先,用户将浏览器指向Web应用程序(信赖方应用程序)。Web应用程序将此浏览器重定向到STS以便可以对用户进行身份验证。在可以读取传入请求的简单 Web应用程序中托管 STS,使用标准HTTP机制对用户进行身份验证,然后创建SAML令牌并通过一段JavaScript代码给予回复,此代码将使浏览器发起可将SAML令牌发送回RP的HTTP POST。 此POST的正文包含RP请求的声明。此时,RP通常会将声明打包到Cookie以便不必为各个请求重定向用户。

(7)      CardSpace和标识选择器

WIF为CardSpace序列化提供API,此API可用于构建托管的信息卡颁发以及在应用程序中启用信息卡登录。

标识选择器提供以下功能:

q  帮助用户管理 Web的多个标识。

q  帮助用户为指定信赖方选择适当标识。

q  帮助保护用户隐私。

基本实现

在具体了解基于声明的标识模型的实现机制之前,先来了解或者说回顾传统的验证模式。当然,本书高级扩展的部分会推荐基于声明的标识模型,不代表传统的方式做得不好,事实上,实践验证它们足够优秀。讨论基于声明的标识模型,给你一个全新的选择,或者在适合的场景下使用它。

(1)       Iprincipal接口

管理标识和访问控制,需要得到当前应用环境的用户信息,从而根据用户信息识别其标识,并根据标识来判断权限。

在.NET应用程序中,当前上下文中的用户信息由IIdentity接口来表示。该接口的定义如代码清单15-1所示。

代码清单15-1  IIdentity接口定义

public interface IIdentity

 {

     // Properties

     string AuthenticationType { get; }

     bool IsAuthenticated { get; }

     string Name { get; }

 }

IIdentity接口的主要作用是用来验证,这一点从它的属性中也能看出来。提到验证肯定会想到授权。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索sts
, 应用程序
, 声明
, 模型
, 令牌
, 用户
, 标识符声明
, pascalc++声明
, 基于
, 标识
声明的
未声明的标识符、必须声明标识符、c2065 未声明的标识符、c 未声明的标识符、cout未声明的标识符,以便于您获取更多的相关知识。

时间: 2024-08-03 19:46:23

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

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

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

WIF基本原理(1)标识库

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

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

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

基于select I/O模型的远程目录浏览与多线程文件下载

摘要: 服务器端基于select I/O模型.为防止程序界面阻塞, 有一个子线程用于不断接收socket并select其中的处理.客户端只有一个线程函数, 不过其利用率很高, 可用于远程目录交换, 请求文件大小, 创建若干线程来下载文件.文件传输有上传和下载,还有对等传输, 这个项目中, 传输文件具体指下载. 正文: 一 数据及数据结构 1 传送包, 客户端主线程给子线程传递的结构体 typedef struct{ char packetType; // 请求类型 r:request rootd

基于hadoop的hmm模型实现

问题描述 基于hadoop的hmm模型实现 哪位大神能帮我看一下,为什么我基于hadoop实现的hmm,输入总是报错?一开始报not a sequencefile ,然后我用mahout里面的seqdirectory把txt文件变成了sequencefile,接着又报java.lang.NullPointerException.我都要哭了,刚开始学hadoopimport java.io.IOException;import java.text.DecimalFormat; import org

《玩转3D打印》——2.2节基于图像构建3D模型

2.2 基于图像构建3D模型 玩转3D打印 前文中给出了一些3D建模软件的介绍以及通过3D软件进行建模的步骤,基于建模软件的3D建模方法主要针对于创新性事物的建模工作,要求操作人员要具有丰富的专业知识,熟练使用建模软件,而且操作复杂,周期较长,且最终构建的3D模型真实感不强. 除了利用3D建模软件进行建模工作外,我们还可以利用2D图像进行3D模型构建.这种建模方法需要提供一组物体不同角度的序列照片,利用计算机辅助工具,即可自动生成物体的3D模型.这种方法主要针对于对已有物体的3D建模工作,操作较

怎么办-基于公众参与GIS模型的路面破损研究模型

问题描述 基于公众参与GIS模型的路面破损研究模型 获取手机GPS和加速度传感器的数据(已有成果),GPS传感器行车路线用Super mapgis等表示出来即可,上传到服务器--数据能在地图中表示出来就好!求帮助,完成后有重谢!!! 解决方案 说的不是很明白,求高手指点

[文档]基于P2P的云计算模型及其安全性分析

基于P2P的云计算模型及其安全性分析 沈静波  李金龙 文章通过将P2P技术和云计算相结合,提出了一种可靠的.可扩展的.低成本的文件共享模型PA-Cloud.该文介绍了PA-Cloud的文件下载和更新过程,并对系统的安全性进行了分析.通过对PA-Cloud进行对比实验表明,PA-Cloud可以有效提高系统的可扩展性,降低服务提供商的成本. 关键词: 对等网络 云计算 文件共享 可扩展性   temp_12060215109101.pdf

基于Hadoop的云计算模型研究及气象应用

基于Hadoop的云计算模型研究及气象应用 南京信息工程大学  张建 本文的主要工作如下: 首先对气象数据的特点进行分析,并指出将气象数据直接存储于Hadoop中存在的问题.根据气象数据的特点将设计基于Trie树变形的文件合并算法.在此基础上通过实验验证,数据高效率处理.安全等方面得到有效的提升和保障. 其次,设计并实现基于Hadoop的海量气象异构数据存储和计算框架,针对气象数据中实时提取有效数据的性能效率.数据保密安全.灾害备份等问题,利用HDFS存储气象数据以及利用MapReduce构建并