2016年12月16日金曜日

[Internet Weekフォローアップ]デモ環境の作り方②

こんにちは、富士榮です。

前回に引き続きInternet Weekのフォローアップです。

今回はOpenAMのデータストアとして社内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 バインド DNCN=test user01,OU=Users,OU=Managed Objects,DC=eidentity,DC=adfs20,DC=net接続するユーザのDN。一般ユーザで問題なし
LDAP 組織 DNOU=Users,OU=Managed Objects,DC=eidentity,DC=adfs20,DC=netユーザを格納していると思われるコンテナ
LDAP ユーザー検索属性sAMAccountName認証モジュールに指定した「ユーザープロファイルの取得に使用する属性」と同じ値
LDAP ピープルコンテナネーミング属性空白デフォルトの値を消す
LDAP ピープルコンテナ値空白デフォルトの値を消す
認証ネーミング属性sAMAccountNameログインIDとして使用するAD上の属性名
LDAP グループ検索属性sAMAccountNameグループへの所属を探す際に利用する属性名(使用しないが、ログインIDの属性と合わせておく)
LDAP グループコンテナネーミング属性空白デフォルトの値を消す
LDAP グループコンテナ値空白デフォルトの値を消す
持続検索ベース DNOU=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 件のコメント: