前回に引き続きInternet Weekのフォローアップです。
今回はユーザにとっての利便性をあげるため、PCへのログインとOpenAMのログインをシングルサインオンする「Desktop SSO」の構成を行います。このことにより、OpenAMと連携されているG SuiteへもOpenAMのログイン画面を見ることなくアクセスをすることが可能になります。
- 第1回:環境の説明、OpenAMの認証を社内ADで行う
- 第2回:OpenAMのデータストアとして社内ADを利用する
- 第3回:OpenAMとG SuiteのID連携を行う
- 第4回(今回):OpenAMでDesktop SSOを設定する
- 第5回:Azure ADとOpenAMと連携したままのG Suiteを連携する
- 第6回:G SuiteのID連携先をOpenAMからAzure ADへ切り替える
◆デスクトップSSOを有効にする
最終的に情シスの管理するAzure ADへG Suiteとの連携・管理を移管していくことを考えると、利用者に対してOpenAMの存在が見えてしまうは得策ではありません。ここは少しだけ情シスの人にも協力してもらって、統合Windows認証を有効にしてPCへのログインとOpenAMへのログインをシングルサインオン出来るように構成してみます。
この情シスの人への「少しだけ」のお願い事項は以下の2点です。
1.ドメインコントローラでktpassコマンドを実行してキータブファイルを作成してもらう
2.(オプション)パスワードが無期限のサービスアカウントを作成してもらう
※2番目についてはOpenAMがADへ問い合わせをするためのユーザのパスワードを無期限にしてもらった方が後々面倒が少ないから、という理由うなのでどちらでも構いません。
いずれにしてもドメイン管理者権限など情シスの人が嫌がりそうな手間は取らせません。
早速やってみましょう。
・キータブファイルを作成してもらう
以下のコマンドをドメインコントローラで実行してもらいます。
ktpass -out [ファイル名] -princ HTTP/[OpenAMサーバのFQDN]@[ADのドメイン名] -ptype KRB5_NT_PRINCIPAL -pass [OpenAM用ユーザのパスワード] -mapuser [OpenAM用ユーザ名] -target [ドメインコントローラのコンピュータ名]
例えば、以下のようなコマンドです。
ktpass -out desktopsso -princ HTTP/openam.adfs20.net@EIDENTITY.ADFS20.NET -ptype KRB5_NT_PRINCIPAL -pass P@ssw0rd -mapuser openam -target dc
結果、出来上がるファイル(例では、desktopsso)を入手してください。
このファイルをOpenAMがアクセスできる場所へ配置し、tomcatユーザで読み込めるように権限を設定します。
以下の例では、/usr/share/tomcat/openam/openam/へコピーし、chown tomcat:tomcat ./desktopssoでオーナーをtomcatユーザへ変更しています。
・認証モジュールを追加する
第1回で実施したのと同様に認証モジュールを追加します。
前回はTypeにActive Directoryを選びましたが、今回は[WindowsデスクトップSSO]を選択します。
各種設定項目には先ほどktpassコマンドで指定した項目をセットします。
先のコマンド例に従うと以下の表のような設定となります。
設定項目 | 設定値 |
---|---|
サービス主体 | HTTP/openam.adfs20.net@EIDENTITY.ADFS20.NET |
Keytab ファイル名 | /usr/share/tomcat/openam/openam/desktopsso |
Kerberos レルム | EIDENTITY.ADFS20.NET |
Kerberos サーバー名 | dc.eidentity.adfs20.net |
ここまでで認証モジュールの設定は完了です。
・認証チェインの設定を行う
これも第1回で設定したのとほぼ同じ手順です。
新しく認証モジュールを設定したので、このモジュールを使って認証を行うように認証チェインの設定を行います。
新規に認証チェインを作成し、任意の名前を付けます。
認証モジュールに先に作成したデスクトップSSOのモジュールを、クライテリアには[Sufficient]を設定します。
こんな設定になるはずです。
後は、一般ユーザを認証するときにこのチェインを使うように設定するだけです。
Authentication Sttings -> Coreより組織認証設定(一般ユーザ向けの認証設定)に先ほど作成した認証チェインを指定します。
これでOpenAM側の設定は完了です。
念のため以下のコマンドでtomcatを再起動しておきます。
/bin/systemctl restart tomcat.service
・OpenAMのサーバをイントラネットゾーンへ入れる
後はクライアント側の設定です。
IEやEdge、Chromeを使っている場合はインターネット設定のゾーン設定でOpenAMサーバをイントラネットゾーンへ配置します。FireFoxの場合はFirefox自体の詳細設定でゾーン設定を行います。(この辺りは適当に検索して方法を探してください)
ただ、個々にブラウザへ設定するのは結構手間なので、もう一つだけ情シスの人にお願いが出来るならば、グループポリシーで一括設定をしてもらうのも手段の一つです。
その場合は、
ユーザーの構成
ポリシー
管理用テンプレート
Windowsコンポーネント
Internet Explorer
インターネットコントロールパネル
セキュリティページ
の中の[サイトとゾーンの割り当て一覧]でOpenAMサーバを値[1]で登録してください。
上手くポリシーがあたっていれば、ブラウザのゾーン設定でOpenAMサーバが確認できます。
・テストする
上手く設定できているか確認するために、OpenAMのログイン画面へアクセスしてみます。
https://openamserver/openam/XUI/#login/&realm=AD
先ほどはログイン画面が表示されましたが、今回はいきなりプロファイルが表示されるはずです。
もし上手くいかない場合は、OpenAMのデバッグログを確認してみてください。
デフォルトでは以下のディレクトリにあります。
/usr/share/tomcat6/openam/openam/debug
これが上手くいけば、当然G Suiteへのログインも出来ますので、PCへログインしてそのままブラウザを開き、Gmailへアクセスしてみてください。
ID、パスワードを入力することなくログインできるはずです。
ここまでで、Step 1のフロント部門で勝手にOpenAMを構築してG Suiteと連携する、という姿を実現することが出来ました。
次回からはいよいよStep 2の情シスとの連携開始です。
0 件のコメント:
コメントを投稿