Create: 2014/03/22
LastUpdate: 2014/04/12
≪ メニューに戻るLastUpdate: 2014/04/12
「 [CentOS6][OpenAM10] ActiveDirectory認証」では、下図の環境(グレー部分)を構築し、ActiveDirectory認証を試しました。
ここでは、前述の環境を使って、ユーザ端末を EXAMPLEドメインに参加させ(下図の赤線部分)、WindowsDesktopSSOを試します。
ユーザ端末: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)
今回も、OpenAMのサブレルム(test01)を変更していきます。
認証方式をActiveDirectory認証からWindowsDesktopSSOに変更するだけにして、ユーザ情報は、LDAPサーバから取得することにします。
EXAMPLEドメインにログオンしたWindows端末から「テスト用WEBサイト」にアクセスすると、OpenAM は Windowsにログオンしたユーザを使用して自動的に認証処理を行います。
なので、EXAMPLEドメインにログオンしたユーザは、OpenAMのログイン画面を見ることなく(ユーザとパスワード入力を要求されない)、「テスト用WEBサイト」に、アクセスできるようになります。
1.ActiveDirectoryサーバの設定変更
WindowsDesktopSSOでは、OpenAM と ActiveDirectoryがKerberos認証を行います。
そこで、その準備として、OpenAM用のサービスプリンシパル名(SPN)をActiveDirectoryに登録します。
SPN は、Windows ドメインのキー配布センター(KDC)の役割を担う Active Directory に登録されることが必要です。
1.1.ユーザ作成
まず、SPN登録用にActiveDirectory に新規ユーザの "openam" を作成します。
[サーバマネージャ] > [役割] > [Active Directory ドメインサービス] > [Active Directory ユーザとコンピュータ] > [example.com] > [Users] をクリックして、真ん中のフレームの余白部分を右クリックすると下図のメニューが表示されるので、[新規作成] > [ユーザ] を選択します。
[姓]、[名]、[ユーザログオン名]を入力して、[次へ]ボタンをクリックします。
[パスワード]を入力して、[ユーザはパスワードを変更できない]、[パスワードを無期限にする]をチェックして、[次へ]ボタンをクリックします。
[完了]ボタンをクリックすると、openam ユーザが作成されます。
ユーザ一覧の openam をダブルクリックすると、下図のプロパティ画面が表示されるので、[表示名]を openam にして、[OK]ボタンをクリックします。この表示名に入力した値は、ktpass コマンドを実行するときに使用します。
1.2.msDS-KeyVersionNumber の確認
まず、以下のようにコマンドを実行してユーザを確認します。この例では "o" で始まるユーザを一覧します。
dsquery user -name o*下図は実行例です。上記で登録した openam ユーザが表示されています。
次に openam ユーザの msDS-KeyVersionNumber の値を確認します。以下のようにコマンドを実行します。
dsquery * "CN=openam,CN=Users,DC=example,DC=com" -attr msDS-KeyVersionNumber下図は実行例です。msDS-KeyVersionNumberの値が "2" と表示されています。
1.3.keytab ファイルの作成
上記で収集した情報をもとに、openam ユーザに SPN を登録して keytab ファイルを作成します。
ktpass コマンドを以下の形式で実行します。
ktpass -out [ファイル名] -mapuser [ユーザの表示名] -pass [ユーザのパスワード] -princ [HTTP/FQDN@ADのKerberosドメイン領域] ※FQDNはOpenAMサーバを指定 @以降は大文字で -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -kvno [確認したmsDS-KeyVersionNumber + 1]下図は実行例です。 実行後、openam.HTTP.keytab ファイルが作成されます。
2.OpenAMの設定変更
2.1.keytab ファイルの設置
上記1.3で作成した keytab ファイルを、OpenAMサーバに配置します。
今回は、 /usr/share/tomcat6/openam/openam ディレクトリにアップロードしました。
2.2.WindowsDesktopSSOの設定
OpenAMの管理画面でレルム(test01) の認証方式を WindowsDesktopSSO に変更します。
[OpenAM管理画面] > [アクセス制御] > [レルム(test01)] > [認証] タブをクリックすると下図の画面になるので、[モジュールインスタンス] > [新規]ボタンをクリックします。
[名前]を入力し、[タイプ]は、"WidnowsデスクトップSSO" をチェックして、[了解]ボタンをクリックします。
[認証]タブに戻って、[モジュールインスタンス] > [登録した "WindowsDesktopSSO"] をクリックします。
以下の値を入力して、[保存]ボタンをクリックします。
- [サービス主体] ・・・ 上記1.3の"-princ" と同じ値
HTTP/exam01.example.com@EXAMPLE.COM - [Keytabファイル名] ・・・ 上記2.1 のPATH
/usr/share/tomcat6/openam/openam/openam.HTTP.keytab - [Kerberosレルム] ・・・ 上記1.3の"-princ" のドメイン名と同じ値
EXAMPLE.COM - [Kerberosサーバ名] ・・・ ADサーバ
192.168.1.90 - [AuthenticationLevel] ・・・ 上記1.3の "-kvno" と同じ値
[認証]タブに戻って、[認証連鎖] > [SSO-1] をクリックします。
[インスタンス]のメニューで "WindowsDesktopSSO" を選択して、[保存]ボタンをクリックします。
最後に、[認証]タブの[保存]ボタンをクリックします。
設定が完了したら、念のため、OpenAM (tomcat)を再起動します。
3.テスト用ユーザの用意
EXAMPLEドメインにログインするためのテスト用ユーザをADサーバに作成します。
現在のOpenAMの設定では、LDAPサーバにユーザプロファイルがあることにしているので、
ADサーバに登録したユーザは、LDAPサーバにも登録する必要があります。
今回は、「ActiveDirectory認証」で使用した usrer01 が ADサーバとLDAPサーバに登録されているので、user01 をテスト用ユーザとして使用します。ADサーバに登録したユーザは、LDAPサーバにも登録する必要があります。
4.ユーザ端末の設定変更
ユーザ端末が、EXAMPLEドメインのユーザでログインできるようにし、IEブラウザをWindowsDesktopSSO用に設定変更します。
4.1.EXAMPLEドメインに参加
ユーザ端末が EXAMPLEドメインを見つけられるようにするため、DNSにADサーバを指定します。
[システムプロパティ] > [コンピュータ名] > [変更]ボタンをクリックします。
[所属するグループ] の [ドメイン] をチェックし、"example.com" を入力して [OK]ボタンをクリックします。
下図のようにアカウントの入力を求められたら、ADサーバの "administrator" アカウントを入力して、[OK]ボタンをクリックします。
下図のメッセージが表示されたら、EXAMPLEドメインの参加に成功しています。
[OK]ボタンをクリックして、ユーザ端末を再起動します。
4.2.IEの設定変更
WindowsDesktopSSO用に IEブラウザの設定を変更します。
ユーザ端末にログインするユーザ名は、"EXAMPLE\user01" を使用します。
下図は、リモートデスクトップでログインする場合の例です。
IEの[インターネットオプション]を変更します。
[セキュリティ] > [ローカルイントラネット]の[WEBサイト]に、OpenAMサーバ(http://exam01.example.com)を登録します。
あとは、[詳細:タブで "統合Windows認証を使用する" がチェックされていることを確認します。
デフォルトの設定では、チェックされています。
5.動作確認
テスト用WEBサイトにアクセスする前に、WindowsDesktopSSO で、ちゃんと SSO できるかOpenAMで動作確認します。
ユーザ端末に "EXAMPLE\user01" でログインして、IEブラウザで以下のURLにアクセスします。
- http://exam01.example.com:8080/openam/UI/Login?realm=test01
IEブラウザで、テスト用WEBサイトにアクセスします。
OpenAMのログイン画面が表示されずに、下図の画面が表示されらOKです。
ここで、テスト用WEBサイトが表示されない場合は、IEの ローカルイントラネットのサイトに "http://*.example.com" を登録して、example.com のサーバ全部をローカルイントラネットとして認識するようにしてみます。
ローカルイントラネットとして認識できないWEBサイトにアクセスすると、OpenAMが発行する認証Cookieのやり取りができずに、OpanAMとWEBサイトの間でリダイレクトがループします。
次に 「Basic認証ページ」にアクセスしてみると、下図のようにBASIC認証用のアカウントの入力を求められます。
WindowsDesktopSSOでは、OpenAMのログイン画面を使用しないので、OpenAMログイン画面で入力したパスワードを使用する代理認証はできないようです。
「フォーム認証ページ」にアクセスすると、下図のように成功します。
「フォーム認証ページ」の代理認証では、LDAPサーバのユーザプロファイルからパスワードを取得しているので、WindowsDesktopSSOでも問題ないようです。