WIF(Windows Identity Foundation)入门感言

      Windows Identity Foundation (WIF)是微软用于构建标识感知应用程序的框架。该框架将 WS-Trust 和 WS-Federation协议抽象化,并向开发人员呈现用于构建安全令牌服务和声明感知应用程序的 API。应用程序可以使用WIF处理安全令牌服务颁发的令牌,并在Web应用程序或Web服务中,根据标识做出决策。简单通俗的概括就微软用来解决单点登录(Single Sign On)的一种解决方案。

 

开始安装

本人的开发环境如下:

Windows7 + Visual Studio 2010 在默认的情况下是不能够运行WIF必须下载相关的SDK。

Windows Identity Foundation

Windows Identity Foundation SDK

Windows Identity Foundation的安装秉承了微软一贯作风基本就是步骤简单,基本就是一路Next就ok。不过安装Windows Identity Foundation SDK时间比较长一些请耐心等待一会。

配置自己的Single Sign On工程

Windows Identity Foundation SDK安装好了,我开始搭建我的环境。

思路如下,首先建立A、B、C三个独立的project,其次每个project需要身份验证才能够登录访问。如下图所示:

现在通过Windows Identity Foundation SDK我们建立一个集中的认证方式(Authentication Center)在这里认证过的用户能够自由访问A、B、C三个网站。

1)创建一个简单的站点A,它拥有一个Login登录页面与一个WebForm1功能页面。

网站结构如下所示:

web.config如下所示:

注意:站点B与站点C配置同站点A一致。区别仅仅在webconfig中forms 节点Name不一样 A站点叫.ALOGIN  B站点叫.BLOGIN 站点C叫.CLOGIN。

2)访问A站点的 webform1.aspx 页面发现被自动导向的Login.aspx页面。说明我们的独立站点配置没有问题。接下来我们开始配置SSO集中认证。

3)在A站点添加一个STS Project 如下图所示:

4)点击next将弹出一个对话框,因为没有配置Https环境所以有一个警告框,这里仅是个测试环境所以我们将忽略它点击yes。(当然在生产环境中处于安全的考虑必须配置成Https访问)

5)选择“Create a new STS project in the current solution”点击next,再点击确定,将会弹出一个对话框让你确认是否修改站点的Web.config请点击确定。

6)站点B与站点C的添加类似,区别就是在“Security Token Service”选择“Use an existing STS”

7)点击next继续,下一个页面选择“No encryption”继续。直到点击Finish。

8)这样一个简单的SSO系统就配置完成。非常便捷吧:)简单测试一下。当我们访问站点A,系统会自动导向我们创建Authentication Center Server,只要通过认证系统会自动返回站点A并成功登陆。当这时候在访问站点B与站点C都不存在问题。

小结

从Windows Identity Foundation的配置可以看出微软在单点登陆方面做了大量的工作,不需要编写大量的代码,开发人员只要理解SSO以及自己最终的目的。配置一个SSO站点不需要太多时间。

其实Windows Identity Foundation不但可以运行在ASP.NET Application环境,Windows Azure ASP.NET堆栈也可以与Windows Identity Foundation (WIF)结合在一起,从而与一个或多个安全令牌服务提供程序进行集成。

posted @ 2016-04-29 15:08  腾冲  阅读(737)  评论(0)    收藏  举报