WIF(Windows Identity Foundation)是用于构建标识应用程序的框架。该框架将 WS-Trust 和 WS-Federation 协议抽象化,并向开发人员呈现用于构建安全令牌服务和声明感知应用程序的 API。应用程序可以使用 WIF 处理安全令牌服务颁发的令牌,并在 Web 应用程序或 Web 服务中,根据标识做出决策。
WIF具有以下主要功能:
1) 构建声明感知应用程序(信赖方应用程序)。
WIF可帮助开发人员构建声明感知应用程序。 除了提供新的声明模型,它还为应用程序开发人员提供了一组丰富的 API,帮助他们根据声明做出用户访问决策。无论开发人员选择在 ASP.NET 还是 WCF环境下构建应用程序,WIF都为他们提供一致的编程体验。
2) Visual Studio模板。
WIF提供了适用于声明感知 ASP.NET 网站和 WCF Web 服务应用程序的内置 Visual Studio 模板,可缩短熟悉基于声明的编程模型的学习时间。
3) 在声明感知应用程序和 STS之间轻松建立信任。
WIF提供了一个名为 FedUtil 的实用工具,允许在声明感知应用程序和 STS(如 ADFS 2.0 和 LiveID STS)之间轻松建立信任。FedUtil支持ASP.NET 和 WCF 应用程序。它还与Visual Studio 集成,这样在解决方案资源管理器中右键单击项目,然后选择“添加STS引用”菜单项即可调用,或者在 Visual Studio 中通过“工具”菜单调用。
4) ASP.NET 控件。
ASP.NET 控件可简化ASP.NET页面的开发,该页面用于构建声明感知 Web应用程序。
5) 声明和 NT 令牌之间的转换。
WIF包括一个Windows服务,该服务可作为声明感知应用程序和基于NT令牌的应用程序之间的桥梁。 它为开发人员提供了将声明转换为NT令牌标识的简单方法,得以从声明感知应用程序访问需要基于 NT 令牌的标识的资源。
6) 在声明感知应用程序中构建标识委派支持。
WIF提供了跨多个服务边界保持原始请求者标识的功能。在框架中使用“ActAs”或“OnBehalfOf”函数可实现此功能,开发人员可利用此功能在声明感知应用程序中添加标识委派支持。
7) 构建自定义安全令牌服务 (STS)。
WIF使得构建支持 WS-Trust 协议的自定义安全令牌服务 (STS) 变得极其容易。此类STS也被称为主动 STS。
此外,该框架还为构建另一类 STS 提供支持,该STS支持 WS-Federation 以启用 Web 浏览器客户端。此类STS也被称为被动STS。
WIF主要支持以下方案:
方案1 联合身份验证。
WIF可在两个或多个伙伴间构建联合身份验证。 它对构建声明感知应用程序 (RP) 和自定义安全令牌服务 (STS) 的支持可帮助开发人员实现此身份验证方案。
方案2 标识委派。
通过WIF可轻松跨服务边界维护标识,以便开发人员可实现标识委派身份验证方案。
方案3 升级身份验证。
应用程序内不同资源的身份验证要求可能各不相同。 使用 WIF,开发人员可以构建可能需要增量身份验证要求的应用程序,例如:初始登录时使用用户名/密码身份验证,然后升级至智能卡身份验证。
通过使用 WIF,可以更轻松地从本主题所述的基于声明的标识模型中获益。
WIF令牌类型包括:SAML 1.1、SAML 2.0、X.509、UPN、Windows(Kerberos或 NTLM)、RSA密钥对。
WIF身份验证类型包括:密码、Kerberos、SecureRemotePassword、TLSClient、X.509、PGP、Spki、XmlDSig、未指定。
------------------------注:本文部分内容改编自《.NET 安全揭秘》
作者:玄魂
出处:http://www.cnblogs.com/xuanhun/
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/