[CentOS6][OpenAM10] OpenAMを試す - OpenAMのシングルサインオン(SSO)を試す(4/4)


Create: 2014/02/22
LastUpdate: 2014/03/07
≪ メニューに戻る

ここでは、OpenAMのテスト環境を構築したときの手順の一部を紹介します。
テスト環境の概要は、メニューを参照してください。
OpenAMにログイン(SSO)することで、「テスト用WEBサイト」も認証済みとなり、ヒトがログイン操作しなくてもページを参照できるようにようにします。
リバースプロキシサーバには、OpenAMのPolicyAgentを導入して、OpenAMと連携して動くようにします。
PolicyAgentがOpenAMに問い合わせを行い、認証済みであれば、WEBサーバのアクセスを許可し、未認証であれば、OpenAMのログイン画面を表示します。
システム構成のイメージは以下のとおり。
OpenAMサーバは CentIS6.4 + Tomcat6 + OpenAM とします。


ユーザ端末:192.168.1.91
OpenAMサーバ:192.168.1.92
リバースプロキシサーバ:192.168.1.93
WEBサーバ:192.168.1.94

環境構築と動作確認の手順は、以下のとおり。
  1. OpenAMサーバの構築( CentIS6.4 + Tomcat6 + OpenAM)
  2. OpenAMの設定
  3. リバースプロキシサーバにOpenAMのPolicyAgentを導入
  4. 動作確認

4.動作確認


ユーザ端末のブラウザで「テスト用WEBサイト(リバースプロキシ側)」にアクセスします。
今回はDNSサーバを用意していないので、C:\windows\system32\drivers\etc\hosts に以下の内容が必要です。
192.168.1.92    exam01.example.com
192.168.1.93    exig01.example.com
ブラウザで以下のURLにアクセスします。
  • http://exig01.example.com/
この時点では、OpenAMの認証が成功していないので、下図のようなOpenAMログイン画面が表示されます。



[ユーザ名]:”user01"、[パスワード]:p@ssw0rd でログインすると、下図のように「テスト用WEBサイト」のTOPページが表示されます。



[BASIC認証ページ]をクリックすると、HTTPヘッダの値を使用した代理認証が自動的に実施されて、BASIC認証後のページが表示されます。



[フォーム認証ページ]をクリックすると、HTTPヘッダの値を使用した代理認証が自動的に実施されて、フォーム認証後のページが表示されます。



OpenIGのログ(/tmp/gateway.log)では、HTTPヘッダを見ることができます。
以下は、「テスト用WEBサイト」のTOPページを表示するリクエストです。
OpenAMのエージェント設定で定義したHTTPヘッダが確認できます。pwd1 は暗号化されています。
--- REQUEST 34 --->

GET http://192.168.1.94:80/ HTTP/1.1
connection: Keep-Alive
accept-language: ja
host: exig01.example.com
accept: text/html, application/xhtml+xml, */*
user-agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
pwd1: sh2QtflfKXUe/SgFXWMpMw==
pwd2: password
cookie: amlbcookie=01; iPlanetDirectoryPro=AQIC5wM2LY4SfczX1ymF2u_kadaM89gaUdDSAOphxNXlXCU.*AAJTSQACMDE.*; PHPSESSID=s0vlmjh641l9cpnh6klgbcu803
If-Modified-Since: Sat, 28 Dec 2013 03:14:47 GMT
username: user01
DNT: 1
If-None-Match: "42366-12d-4ee8f9cf21634"
accept-encoding: gzip, deflate

<--- RESPONSE 34 ---

HTTP/1.1 304 Not Modified
ETag: "42366-12d-4ee8f9cf21634"
Date: Mon, 10 Feb 2014 04:26:02 GMT
Server: Apache/2.2.15 (CentOS)
次は、BASIC認証で保護したページを表示するリクエストです。
HTTPヘッダの pwd1 が複合化されて読めるようになっています。
--- REQUEST 36 --->

GET http://192.168.1.94:80/demo1/ HTTP/1.1
connection: Keep-Alive
accept-language: ja
host: exig01.example.com
accept: text/html, application/xhtml+xml, */*
user-agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
pwd1: p@ssw0rd
pwd2: password
cookie: amlbcookie=01; iPlanetDirectoryPro=AQIC5wM2LY4SfczX1ymF2u_kadaM89gaUdDSAOphxNXlXCU.*AAJTSQACMDE.*; PHPSESSID=s0vlmjh641l9cpnh6klgbcu803
username: user01
If-Modified-Since: Sat, 28 Dec 2013 03:15:26 GMT
Authorization: Basic dXNlcjAxOnBAc3N3MHJk
DNT: 1
If-None-Match: "4236a-d6-4ee8f9f3b102b"
referer: http://exig01.example.com/
accept-encoding: gzip, deflate

<--- RESPONSE 36 ---

HTTP/1.1 304 Not Modified
ETag: "4236a-d6-4ee8f9f3b102b"
Date: Mon, 10 Feb 2014 04:27:51 GMT
Server: Apache/2.2.15 (CentOS)