[CentOS6] OpenAM10


Create: 2014/02/10
LastUpdate: 2015/05/10

OpenAMは、シングルサインオン(以下SSO)を実現するオープンソースソフトウェア(以下OSS)です。
ForgeRock社が開発しています。
ForgeRock社は、Sun MicrosystemsがOracleに買収された後のOpenSSOやOpenDSの開発・サポートを継続するために、それら製品の開発者によって設立されました。Sun Microsystems同様のオープンな開発スタイルをとっており、ソースコードや各種マニュアルも全て公開されているため、安心して利用することができます。
ForgeRock社は、認証、認可、SSOといったアクセス管理を行う「OpenAM」を中心に、ディレクトリサービスを提供する「OpenDJ」、そしてアイデンティティ情報のプロビジョニング、ライフサイクル管理を行う「OpenIDM」なども提供しています。
詳細は、以下の記事が参考になります。
今回、OpenAM、OpenIGを使用してシングルサインオン試してみたので、テスト環境の構築手順と簡単な使用方法を以下に紹介します。

Ⅰ.テスト用WEBサイトを用意する


SSOを試すには、認証で保護するWEBサイトが必要になります。そこで、まず最初に、「テスト用WEBサイト」を構築します。
今回、テスト用に用意するのは、以下の3つのページです。
  • ログインページからフォーム認証でログインするページ
  • Basic認証でログインするページ
  • 認証なしで誰でも参照できるページ
システム構成のイメージは以下のとおり。
「ユーザ端末」はWindows8+IE11、「テスト用のWEBサイト」はCentOS6+Apache2+PHP5とします。



環境構築と動作確認の手順は、以下のとおり。
  1. WEBサーバの構築(CentOS6 + Apache + php)
  2. ユーザ端末の構築(Windows8)
  3. 動作確認

Ⅱ.OpenIGの代理認証を試す


「テスト用WEBサイト」にOpenAMでSSOするには、ユーザの代わりに機械的にユーザIDとパスワードを入力してログインする代理認証の仕組みが必要になります。
ここでは、SSOを試す前に、通常は、SSOと連携して使用する代理認証の機能だけを先に試します。
代理認証機能は OpenIGで提供してくれます。OpenIGでリバースプロキシを構築し、リバースプロキシ経由でWEBサイトにアクセスした場合は、自動的にログイン済みの状態になるようにし、ユーザのログイン操作が不要になるようにします。
システム構成のイメージは以下のとおり。
「ユーザ端末」と「WEBサーバ」の間にリバースプロキシが入ります。リバースプロキシは CentIS6.4 + Tomcat6 + OpenIG とします。


環境構築と動作確認の手順は、以下のとおり。
  1. リバースプロキシ・サーバの構築(CentOS6 + Tomcat6 + OpenIG)
  2. 動作確認

Ⅲ.OpenAMのシングルサインオン(SSO)を試す

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



環境構築と動作確認の手順は、以下のとおり。
  1. OpenAMサーバの構築( CentIS6.4 + Tomcat6 + OpenAM)
  2. OpenAMの設定
  3. リバースプロキシサーバにOpenAMのPolicyAgentを導入
  4. 動作確認
この環境で設定を試した時の手順を紹介します。
  1. [CentOS6][OpenAM10] ポリシーの設定(あるURLへのアクセス権限を与える)

Ⅳ.OpenAMのLDAP認証を試す


前述の環境にLDAPサーバ(下図のグリーン部分)を追加して LDAP認証を試しました。
LDAPサーバは OpenDJ を使用しています。



環境構築と動作確認の手順は、以下のとおり。
  1. [CentOS6][OpenAM10] LDAP認証 - OpenDJでLDAPサーバ構築

Ⅴ.OpenAMのActiveDirectory認証を試す


前述の環境にADサーバ(下図のグリーン部分)を追加して ActiveDirectory 認証を試しました。
認証はActiveDirectory を利用しますが、ユーザの属性情報はLDAPサーバから取得します。



環境構築と動作確認の手順は、以下のとおり。
  1. [CentOS6][OpenAM10] ActiveDirectory認証

Ⅵ.OpenAMのWindowsDesktopSSOを試す


前述の環境で WindowsDesktopSSO を試しました。
認証はActiveDirectory を利用しますが、ユーザの属性情報はLDAPサーバから取得します。
WindowsDesktopSSOでは、Windows端末へのログインが、OpenAMへのログインも兼ねます。なのでOpenAMログイン画面は不要になります。



環境構築と動作確認の手順は、以下のとおり。
  1. [CentOS6][OpenAM10] WindowsDesktopSSO(統合Windows認証)
この環境で、クラウドサービスとのSAML連携を試したときの手順を以下に紹介します。
  1. [CentOS6][OpenAM10] SAML連携 - Salesforce (統合ID) (NameID)
  2. [CentOS6][OpenAM10] SAML連携 - Salesforce (統合ID) (Attribute)
  3. [CentOS6][OpenAM10] SAML連携 - GoogleApps (uid)
  4. [CentOS6][OpenAM10] SAML連携 - GoogleApps (mail)
  5. [CentOS6][OpenAM10] SAML連携 - Office365

Ⅶ.OpenAMの機能をいろいろ試す


OpenAMの機能をいろいろ試しました。
  1. [CentOS6][OpenAM10] ロードバランサのLVS(NAT)でOpenAMを負荷分散する
  2. [CentOS6][OpenAM10] ロードバランサ+OpenAMの環境で PolicyAgent を使う
  3. [CentOS6][OpenAM10] ロードバランサの背後で PolicyAgent を使う
  4. [CentOS6][OpenAM10] クライアント証明書で認証する
  5. [CentOS6][OpenAM10] samba4 の ActiveDirectory(Windows2008互換)でSSOする
  6. [CentOS6][OpenAM10] AWSコンソールにSSOする

■ 参考サイト