[CentOS6][OpenAM10] ActiveDirectory認証


Create: 2014/03/15
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)
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サーバに登録なし
user01 の登録手順を以下に記述します。user02 も同様にして登録します。
サーバマネージャを開き、[役割] > [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サーバに登録していないのが原因です。