Create: 2014/03/15
LastUpdate: 2014/03/22
≪ メニューに戻るLastUpdate: 2014/03/22
「 [CentOS6][OpenAM10] LDAP認証 - OpenDJでLDAPサーバ構築」では、下図の環境(グレー部分)を構築し、ユーザ情報は、LDAPサーバに格納しました。
ここでは、前述の環境にADサーバ(下図のグリーン部分)を追加して、OpenAMのサブレルム(test01)を変更していきます。
ユーザ端末:192.168.1.91(exdt01.example.com)
OpenAMサーバ:192.168.1.92(exam01.example.com)
リバースプロキシサーバ:192.168.1.93(exig01.example.com)
WEBサーバ:192.168.1.94(www.example.com)
LDAPサーバ:192.168.1.95(exdj01.example.com)
LDAPサーバ:192.168.1.95(exdj01.example.com)
ADサーバ:192.168.1.90(exad01.example.com)
今回は、ADサーバを使用したActiveDirectory認証を試してみます。
認証方式をLDAP認証からActiveDirectory認証に変更するだけにして、ユーザ情報は、LDAPサーバから取得することにします。
1.ActiveDirectoryサーバの構築
Windows2008R2(64bit) で仮想マシンを作成して、ActiveDirectoryをインストールします。
1.1.OSインストール
Windows2008R2 のインストールについては、「 [XenServer6.2] Windows2008 R2 評価版のインストール}」を参照してください。
1.2.ActiveDirectory ドメインサービスのインストール
DNSを "127.0.0.1"(自分自身)に変更します。
[初期構成タスク]画面を開きます。
[機能の追加] をクリックします。
下図の画面が表示されたら、[次へ]ボタンをクリックします。
[Active Directory ドメインサービス] をチェックして、[次へ]ボタンをクリックします。
.NET Framework をインストールしていない場合は、.NET Framework もチェックします。
私の場合は、事前に .NET Framework をインストールしています。
[次へ]ボタンをクリックします。
[インストール]ボタンをクリックします。
下図の画面が表示されるので、しばらく待ちます。
ActiveDirectory ドメインサービスのインストールが完了したので、インストールウィザードを起動してセットアップします。
下図の赤枠部分をクリックします。
下図の画面が表示されたら、[次へ]ボタンをクリックします。
[次へ]ボタンをクリックします。
[新しいフォレストに新しいドメインを作成する]をクリックして、[次へ]ボタンをクリックします。
[フォレストルートドメインのFQDN] に "example.com" を入力して、[次へ]ボタンをクリックします。
下図のメッセージが表示されるので、しばらく待ちます。
[フォレストの機能レベル]は、 "Windows Server 2008 R2" を選択して、[次へ]ボタンをクリックします。
DNSサーバーを追加します。
[次へ]ボタンをクリックします。
私の環境では下図のメッセージが表示されました。
[はい]をクリックして続行します。
続けて、下図のメッセージが表示されました。
[はい]をクリックして続行します。
[次へ]ボタンをクリックします。
[パスワード]を入力して、[次へ]ボタンをクリックします。
表示された構成を確認して、良ければ、[次へ]ボタンをクリックします。
下図のメッセージが表示されるので、しばらく待ちます。
下図の画面が表示されたら完了です。[完了]ボタンをクリックします。
下図のメッセージが表示されるので、[再起動する]をクリックします。
再起動後は、下図のように "EXAMPLE" ドメインにログインするようになります。
ActiveDirectory ドメインサービスとDNSサーバは、下図のサーバーマネージャで設定します。
2.テスト用ユーザの登録
ActiveDirectoryドメインサービスにテスト用のユーザを以下の2つ登録します。
- user01 ・・・ LDAPサーバに登録あり
- user02 ・・・ LDAPサーバに登録なし
サーバマネージャを開き、[役割] > [Active Directory ドメインサービス] > [Active Directory ユーザとコンピュータ] > [example.com] > [Users] をクリックすると、下図のように表示されます。
余白を右クリックしてメニューを表示し、[新規作成] > [ユーザー]を選択します。
[姓]、[名]を入力し、[ユーザログオン]に "user01" と入力して、[次へ]ボタンをクリックします。
[パスワード]を入力します。
テスト用なのでパスワードを無期限にします。[ユーザは次回ログオン時にパスワード変更が必要]のチェックを外し、[パスワードを無期限にする]をチェックします。
[次へ]ボタンをクリックします。
[完了]ボタンをクリックします。
作成した user01 は、下図のように表示されます。(赤枠部分)
3.OpenAMの設定変更
レルム(test01) の認証方式を ActiveDirectory 認証に変更します。
OpenAM管理画面 > [アクセス制御] > [レルム(test01)] > [認証]タブ をクリックします。
表示された画面で下図の[モジュールインスタンス] > [新規]ボタンをクリックします。
[名前]を入力し、[タイプ]は、"Active Directory" をチェックします。
最後に、[了解]ボタンをクリックします。
[認証]タブに戻ると下図のように[モジュールインスタンス] に追加したモジュールが表示されます。
追加した [AD] をクリックします。
以下の項目を入力して、[保存]ボタンをクリックします。
- プライマリ Active Directory サーバー ・・・ ADサーバのIPアドレスとLDAPポート番号
"192.168.1.90:389" - ユーザ開始の検索DN ・・・ とりあえずベースDNを指定
"example.com" - バインドユーザDN ・・・ ADサーバのAdministrator
"cn=Administrator,cn=Users,dc=example,dc=com" - バインドユーザーパスワード ・・・ ADサーバのAdministratorのパスワード
- ユーザープロファイルの取得に使用する属性・・・LDAPサーバの uid に紐つける
"sAMAccountName" - 認証するユーザーの検索に使用する属性
"sAMAccountName"
[認証]タブに戻ったら、下図の[認証連鎖] > [SSO-1] をクリックします。
[インスタンス] を "LDAP" から "AD" に変更して、[保存]ボタンをクリックします。
※動作確認をしてみて認証方式が切り替わらない場合は、OpenAMの再起動が必要です。
4.動作確認
ブラウザで「テスト用WEBサイト」にアクセスすると、下図のように "ActiveDirectory 認証" のログイン画面が表示されます。
まずは、 "user01" でログインしてみます。
[ユーザ名]に "user01"を入力し、[パスワード]には、ActiveDirectory に登録したパスワードを入力してログインします。
ログインに成功すれば、下図のように「テスト用WEBサイト」が表示されます。
ActiveDirectoryに登録したパスワードとBASIC認証用のパスワードを同じにしたので、
OpenAMのログイン画面で入力したパスワードを取得して、「BASIC認証ページ」も表示できます。
ユーザー情報はLDAPサーバから取得するように設定しています。
ActiveDirectory のユーザで LDAPサーバを参照して、"user01" の属性情報を取得します。
LDAPサーバからパスワード情報を取得して、「フォーム認証ページ」も表示できます。
"user02" でログインを試してみると、下図のようなエラーになります。
これは、"user02" の情報を LDAPサーバに登録していないのが原因です。