前回に引き続きInternet Weekのフォローアップです。
今回はOpenAMのデータストアとして社内ADを使えるようにしてみます。
- 第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へ切り替える
◆OpenAMのデータストアとして社内ADを指定する
前回までで認証は出来るようになりましたので、ユーザデータの格納場所(データストア)として社内ADを参照する様に設定を行います。この設定を行うことにより、認証が完了したのち、ユーザの属性を取得してSAMLアサーションに乗せる、などということが可能になります。(G Suiteとの接続時、メールアドレスをNameIdとして指定するので、この設定を入れておく必要があります)
実施することは先の認証モジュールに対して社内ADの情報を設定していったのとほぼ同様です。
まずは、左側のナビゲーションから[Data Stores]を開きます。データストアの設定画面はOpenAM 13からのモダンなUIではなく12までのクラシックなUIになっており、いきなり古臭い感じの設定画面が表示されます。
ここで、[新規]をクリックして新規データストアを作成してきます。
データストア名称は任意で問題ありませんが、タイプには[Active Directory]を選択しておきます。
認証モジュールの時と同じように社内ADに関する情報を設定していきます。
設定項目 | 設定値 | 備考 |
---|---|---|
LDAP サーバー | dc.eidentity.adfs20.net | ドメインコントローラのFQDN。複数台設定することも可能 |
LDAP バインド DN | CN=test user01,OU=Users,OU=Managed Objects,DC=eidentity,DC=adfs20,DC=net | 接続するユーザのDN。一般ユーザで問題なし |
LDAP 組織 DN | OU=Users,OU=Managed Objects,DC=eidentity,DC=adfs20,DC=net | ユーザを格納していると思われるコンテナ |
LDAP ユーザー検索属性 | sAMAccountName | 認証モジュールに指定した「ユーザープロファイルの取得に使用する属性」と同じ値 |
LDAP ピープルコンテナネーミング属性 | 空白 | デフォルトの値を消す |
LDAP ピープルコンテナ値 | 空白 | デフォルトの値を消す |
認証ネーミング属性 | sAMAccountName | ログインIDとして使用するAD上の属性名 |
LDAP グループ検索属性 | sAMAccountName | グループへの所属を探す際に利用する属性名(使用しないが、ログインIDの属性と合わせておく) |
LDAP グループコンテナネーミング属性 | 空白 | デフォルトの値を消す |
LDAP グループコンテナ値 | 空白 | デフォルトの値を消す |
持続検索ベース DN | OU=Users,OU=Managed Objects,DC=eidentity,DC=adfs20,DC=net | ユーザを格納していると思われるコンテナ |
ここまで設定が出来たら元から存在している[embedded]というデータストアを削除してしまいます。
対象のタブを開き、AD上のユーザ一覧が取得できていることを確認します。
ここで再度テストをしてみたいので、認証されたユーザとデータストア上のユーザが紐づいているかどうか確認するためにプロファイルの紐づけ設定を行います。
先に[無視]と設定したAuthenticationのSettingsのプロファイルタブです。
先ほどと同様にAD上のユーザで以下のURLよりログオンします。
http://openamserver:8080/openam/XUI/#login/&realm=AD
すると今度はログイン後にユーザのプロファイルが表示されます。
これでOpenAMへのログインとユーザデータの取得を社内ADと連携することが出来ましたので、一旦先ほどのプロファイル紐づけを解除しておきます。G Suiteへのログイン時のアサーション取得を行う際にプロファイル紐づけをしておくとエラーが起きることがあるためです。単に属性のマッピングをさぼっているだけなんですが・・・
◆OpenAMをSSL化する
少し寄り道です。
ここまでのOpenAMの設定はデフォルトの8080番ポートでのhttpでtomcatへ直接接続してきました。ところが、後々一般ユーザへOpenAMの利用を開放しようとするとhttpsでのアクセスをきちんとさせておきたいところです。
そこで、OpenAMの前段にApacheのHTTPサーバを置き、mod_sslでhttps化を行った上で、mod_proxyを利用してOpenAMに対するリバースプロキシを構成します。
やることはいたってシンプルで、「yum install mod_ssl」でmod_sslを組み込み、証明書と秘密鍵をしかるべき手法で取得、サーバ上へ配置してssl.confの設定をしてhttpdへ読み込ませます。
ファイルを配置したのち、ssl.confに以下を設定しています。
サーバ証明書
SSLCertificateFile /etc/pki/tls/certs/server.crt
秘密鍵
SSLCertificateKeyFile /etc/pki/tls/private/server.key
また、リバースプロキシはhttpd.confに以下の設定を入れてすべての通信を単純にOpenAMへ流しています。
ProxyRequests Off
ProxyPass / http://openam.adfs20.net:8080/
ProxyPassReverse / http://openam.adfs20.net:8080/
上手く設定できていれば、http://openamserver:8080/openamではなく、https:/openamserver/openam」でもログイン画面が表示されるようになるはずです。
次回はいよいよG Suiteと連携してみます。
0 件のコメント:
コメントを投稿