開啟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

     

  這個頁面就是要保護的網頁了,在繼續之前,保證你能夠成功看到這個頁面。

 

(未完待續...)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM