OpenAMによるシングルサインオンの概要(第3回)
「OpenAMを活用したシングルサインオン環境のご相談や、価格についてはお問合せ下さい!」
はじめに
2016年12月7日に『OpenAMによるシングルサインオンの概要』セミナーが開催されました。
かもめエンジニアリング株式会社 川村による講演を全4回に分けて紹介します。
第3回目は『シングルサインオン(SSO)を実現するOpenAM、導入時に注意すべきポイント』についての講演部分を紹介します。
講演資料について
本セミナーの講演資料は、以下のURLからダウンロードできます。
https://osslabo.doorkeeper.jp/events/54133
OpenAMを導入する際の注意点
全般的なこと
インストールが困難な場合がある
OpenAMは、Java/JDK/Tomcatなどのインストールが必要です。「Javaのバージョン」と「Tomcatのバージョン」などの相性問題があり、インストールがうまくいかなかったり、動作が不安定になることがあります。
設定が分かりにくい
さまざまな設定項目を詰め込んだようなGUIで、1つの設定のために複数画面を遷移しなければならない場合があります。
データストア設定ミスなどで、管理者画面にログインできなくなることもあるため、注意が必要です。
アプリケーションの改修が必要
OpenAMから認証されている場合、アプリケーション側の認証が行われないようにするための改修(設定)が必要です。
今後のシステム改修計画に従い、適したSSO方式の選定が必要
どの方式が最適なのか、各種条件をもとに検討する必要があります。
運用保守体制の検討
「Forge Rock社の有償パッチを使用するのか?」「ディストリビューションパッケージを利用するのか?」「パッチはどのように適用するのか?」などの検討が必要です。
代理認証方式のエミュレート機能
アプリケーションのログイン画面に対して、「ID+パスワードを自動入力させる仕組み」を作り込む必要があります。
リバースプロキシ方式選択時のネットワーク構成変更
リバースプロキシサーバを立てるために、ネットワーク構成の変更が必要です。注意点を理解して進めれば、難易度が高いというわけではありません。
リバースプロキシ方式の場合(1) ネットワーク構成の変更が必要
構築後
Webアプリケーションサーバに対してではなく、リバースプロキシサーバにアクセスするように、ネットワーク構成を変更する必要があります。
Webアプリケーションサーバへの直接アクセスを防ぐための方法
- Webアプリケーションサーバをリバースプロキシサーバのバックヤードに配置して、ネットワーク的にアクセスできないようにします。
- Webアプリケーションサーバ上で、リバースプロキシサーバ以外からのアクセスを受け付けないようにします。
URLを「www.kamome-e.com」から「sso.kamome-e.com」に変更したくない場合
DNSサーバの設定で、リバースプロキシサーバを「www.kamome-e.com」にすれば対応できます。ただし、アプリケーション側の設定変更も必要となります。
リバースプロキシ方式の場合(2) リンクが絶対パスの場合は書き換えが必要
パス書き換え処理
Webアプリケーションサーバが「www.kamome-e.com」で、かつ、リンク先が絶対パスである場合、「www.kamome-e.com」を「sso.kamome-e.com」に書き換える必要があります。相対パスの場合は問題ありません。
リバースプロキシ方式の場合(3) HTTPS転送の場合、転送先を判別可能にする
HTTPSの転送自体は問題なし
「リバースプロキシサーバまでがHTTPで、それ以降がHTTPSの場合」「すべてがHTTPSの場合」でも、転送自体は問題ありません。
問題点 リバースプロキシサーバ上にホスト名が複数ある場合
- 「sso1.kamome-e.com」ならWebアプリケーションサーバ1へ
- 「sso2.kamome-e.com」ならWebアプリケーションサーバ2へ
など、ホスト名ごとに転送先が異なる場合に問題が発生します。
原因
HTTPの場合、ホスト名が記述されており転送先が分かるため、問題は発生しません。
HTTPSの場合、内部情報が暗号化されており、「転送先ホスト名を把握できない」という問題が発生します。
対策方法
- リバースプロキシサーバに複数のホストを設定しない
「sso1.kamome-e.com」「sso2.kamome-e.com」「sso3.kamome-e.com」
↓
「sso.kamome-e.com/app1」「sso.kamome-e.com/app2」「sso.kamome-e.com/app3」
のようにすれば、ホスト名が「sso.kamome-e.com」の1つとなるので解決できます。 - リバースプロキシサーバにIPアドレスを複数持たせる
ホスト名ごとにIPアドレスを設定します。要求はIPアドレスごとになるため、要求されたIPアドレスでホスト名を判別できます。 - Server Name Indication(SNI)
SNIは「全面的に暗号化されているHTTPSについて、ホスト名だけは暗号化されない形で送る」という仕組みです。この仕組みに対応させることで問題解決を図れます。
おわりに
第3回目となる今回は『シングルサインオン(SSO)を実現するOpenAM、導入時に注意すべきポイント』の部分について紹介しました。
第4回目となる次回は『シングルサインオン(SSO)を実現するOpenAMの導入事例』についての講演部分を紹介します。
講演資料について
本セミナーの講演資料は、以下のURLからダウンロードできます。
https://osslabo.doorkeeper.jp/events/54133
「OpenAMを活用したシングルサインオン環境のご相談や、価格についてはお問合せ下さい!」