开启OpenAM之旅(版本12.0.0)
原文地址,http://docs.forgerock.org/en/openam/12.0.0/getting-started/index.html
摘要
这篇文章简要介绍一下OpenAM,以便新用户或读者进行评估。OpenAM提供开源Authentication, Authorization, Entitlement和Federation软件。
目录
1. 利用OpenAM保护一个网站
2. 进阶指南
索引
第一章,利用OpenAM保护一个网站
目录
1.1 OpenAM怎样对资源进行权限管理
1.2 想跑OpenAM需要装哪些软件
1.3 配置软件
1.4 实际跑一下OpenAM
重要
想跑web policy代理程序,需要Linux,Solaris或Windows(参考Web Policy代理发布说明部分,Web Policy代理平台要求),并且至少1GB的空闲内存,几百M的空闲硬盘空间,一个浏览器,以及能够连接到Internet以便下载软件。
如果你用的是Mac OS X,你得启一个虚拟机装一个Linux系统,因为Web Policy代理不支持Mac OS X上的Apache HTTP服务器。
1.1 OpenAM怎样对资源进行权限管理
OpenAM提供一个服务叫做access management(访问管理),用来管理网络资源的访问。一旦你启动OpenAM来管理资源访问,你就有了一个集中的服务来控制,谁在什么样的条件下,可以访问什么资源。这一章,你可以试试对于一个网页进行访问管理。但是请注意,这里的资源其实可以是通过网络传输的任何东西,可以是一个网页,也可以是应用或者web service(网络服务)。
OpenAM集中的访问管理,包含了对于认证,以及授权的管理。认证指的是,确认身份的过程,比如确认一个用户成功的登录。授权指的是对于已经认证的用户,赋予一些访问资源的权限。
OpenAM使用很多认证模块(Authentication Modules)来集中解决认证的问题。认证模块可以访问认证仓库(Identity Repositories)。这里的认证仓库指的是存储着身份信息,或者可以提供认证服务的组件。其实现方式可以是LDAP目录,关系型数据库,RADIUS,或者Windows身份认证,OTP认证和其他认证管理系统等。OpenAM可以把使用的认证服务都串起来。认证串可以允许你对某些更加敏感的资源做更强级别的认证管理,也允许启动某些模块功能,来实现记住登录时的设备信息,或者当用户在一个异常地点登录时,评估相应风险并索取更多的认证信息来进行验证。
OpenAM集中式认证实现了认证功能,并且做到了与被保护的应用和资源之间的解耦。与传统的在网站应用中嵌入认证策略不同,使用OpenAM的做法是安装一个策略代理(Policy Agent)到托管网站的服务器中。这样你就可避免了开发在网站中嵌入认证策略时引入的问题。有了OpenAM,如果站点部署之后发现问题或者发现认证策略需要修改,那你只需要更改OpenAM中的策略,而不需要重新部署站点应用。简而言之,OpenAM定义策略方案,策略代理(Policy Agent)代表OpenAM使得这些策略在网站应用中得以执行。
本章的剩余部分,会讲述怎样安装OpenAM,创建一个策略,安装策略代理,来实现保护一个网页,从而展示OpenAM是怎样进行认证管理的。
1.2 想跑OpenAM需要装哪些软件
为了启动OpenAM来保护一个网页,需要安装以下软件(都是免费获取)
- Java Development Kit (JDK)
OpenAM是一个Java网络应用,所以需要安装JDK,同样web policy代理也是一个Java程序。
- Apache HTTP服务器
Apache HTTP 服务器托管OpenAM保护的网页
- Apache Tomcat
OpenAM作为一个Java网络应用需要在一个Java Web容器中运行,这里用的是Apache Tomcat
- OpenAM核心服务器连带OpenAM命令行
这是OpenAM的主要网络应用。OpenAM在配置阶段会启动OpenDJ目录服务,这这个例子中,OpenDJ不仅存有OpenAM的配置数据,还充当了存储用户身份信息的认证服务器的角色。
- OpenAM Apache策略代理
你需要在Apache HTTP服务器上安装策略代理。它会截获用户发来的请求,使得OpenAM定义的认证策略得以实现。代理服务会把用户重定向到OpenAM进行认证,并且在给用户返回资源之前,访问OpenAM获取授权。
顺着下一节的步骤,你就知道了OpenAM是怎样在不改变网站本身的前提下,保护一个站点的。
1.3 配置软件
下面一步一步讲述怎样用OpenAM保护一个网页。
过程1.1,准备好Hosts文件
过程1.2,安装Apache HTTP服务器
过程1.3,安装Apache Tomcat服务区
过程1.4,安装OpenAM
过程1.5,在OpenAM中配置策略
过程1.6,创建一个web策略代理配置文件
过程1.7,安装Open策略代理
这一系列过程是写给Linux系统的,Windows系统请自行做相应修改。
过程1.1,准备好Hosts文件
在实现保护资源时,OpenAM需要你的网站使用正确的域名。这是因为OpenAM使用HTTP cookies来记录单点登录的session,所以无论设置cookie还是读取cookie,都是和服务器的域名绑定的。
除了更新域名服务器,一个讨巧的方法是修改系统Hosts文件,给你的本机两个别名,openam.example.com和www.example.com。
用你喜欢的文本编辑器,将这两个别名加到Hosts文件中去。
$ sudo vi /etc/hosts Password: ### Edit /etc/hosts ### $ cat /etc/hosts | grep openam 127.0.0.1 localhost openam.example.com www.example.com
过程1.2,安装Apache HTTP服务器
Apache HTTP服务器是一个流行的web服务器,也是OpenAM web策略代理完美支持的服务器之一。可能你的电脑已经装过了Apache HTTP服务器,但因为你装这个服务器的目的只是玩玩OpenAM,所以再独立装一份也未尝不可,不用和之前的服务器配置混在一起。
这里有完整的安装文档。下面的步骤取自文档中Overview for the impatient for Apache HTTP Server 2.2的内容。
1.2.1 确保机器上安装了从源代码安装Apache HTTP服务器2.2所需要的工具依赖。
在Linux发布的环境中,你需要包含有C编译器的开发工具(Development Tools)。怎样安装取决于你的系统是哪种版本。
下面的指令用于Red Hat以及CentOS系统,
#yum groupinstall 'Development Tools'
下面的适用于Ubuntu系统
#sudo apt-get install build-essential checkinstall
1.2.2 从Apache网站下载Apache HTTP服务器2.2版本的源代码
OpenAM web策略代理需要Apache Portable Runtime版本在1.3或之上,这意味着确保你的Apache HTTP服务器版本在2.2.9或之上。
1.2.3 解压缩下载的文件
1.2.4 对源代码执行configure命令
--prefix选项可以将web服务器安装到你理想的位置。
$ cd ~/Downloads/httpd-2.2.25 $ ./configure --prefix=/path/to/apache
1.2.5 编译Apache HTTP服务器
$ make
1.2.6 安装Apache HTTP服务器
$ make install
1.2.7 编辑配置文件,把服务器名设置成www.example.com,端口设置成为8000。服务器启动时就可以采用这个配置。
$ vi /path/to/apache/conf/httpd.conf $ grep 8000 /path/to/apache/conf/httpd.conf Listen 8000 ServerName www.example.com:8000
1.2.8 测试Apache服务器正常工作
1.2.8.1 确保系统的防火墙没有阻拦Apache HTTP服务器使用的端口。
读你系统的文档,明确怎样才能打开相应端口。Linux系统的防火墙种类较多,配置方式也不尽相同。
1.2.8.2 启动web服务器
$ /path/to/apache/bin/apachectl -k start
1.2.8.3 浏览主页,如http://www.example.com:8000
这个页面就是要保护的网页了,在继续之前,保证你能够成功看到这个页面。
(未完待续...)
posted on 2015-07-19 19:57 CheeseIsPower 阅读(6335) 评论(1) 编辑 收藏 举报