原文地址,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
這個頁面就是要保護的網頁了,在繼續之前,保證你能夠成功看到這個頁面。
(未完待續...)