Kerberosを利用したIDSとADのシングルサインオン

This document is provided subject to the disclaimer at the end of this document.

問題点

ISSUE

以下の設定により、IDSとADのシングルサインオンが可能となります。


■ 検証環境

Access Manager 3.1 (Access GatewayはアプライアンスLinux Access Gateway)
Active Directory: Windows 2003 Server Standard Edition
Identity Server(IDS)のホスト名: xenids1.tokyo.novell.com
                                (BaseURLにxenids1.tokyo.novell.comを設定)
Access Gateway(AG)のホスト名: xenag1.tokyo.novell.com
Active Directory(AD)のホスト名: adyk.testdom.com
ADのドメイン名: TESTDOM.COM

※ IDSをクラスタ構成にしている場合は、xenids1の部分をクラスタのバーチャル
   ホスト名にします。(BaseURLに設定しているクラスタのバーチャルホスト名)

■ spnとktpasss Utilityのインストール

Windows2003インストールCD-ROMの\SUPPORT\TOOLS\SUPTOOLS.MSIを実行

■ IDSのためにAD側でユーザを作成

1. ユーザの新規作成
	名: xenids1
	ユーザーログオン名:xenids1
2. 次へ
3. パスワードを入力
4. 「パスワードを無期限にする」のみチェックが入る状態にする
5. 次へ
6. 完了
7. ユーザを選択し、プロパティ > アカウントタブ > ユーザログオン名を
   HTTP/xenids1.tokyo.novell.com へ変更
8. 適用
9. OK
10. コマンドプロンプトを起動
11. setspn -A HTTP/xenids1.tokyo.novell.com@TESTDOM.COM xneids1 を実行

※ setspn -L xneids1 で正しく登録されたか確認可能

■ Kerberosチケットの復号化ためのKeytabファイルの作成

1. コマンドプロンプトで以下を実行
ktpass /out / nidpkey.keytab /princ HTTP/xenids1.tokyo.novell.com@TESTDOM.COM /mapuser xenids1@TESTDOM.COM /pass パスワード
2. 作成されたファイルをIDSの/opt/novell/java/jre/lib/securityへコピー   
3. 管理ツール > DNS
4. 前方参照ゾーンにて、Windowsドメインをクリックし、新しいホストを選択
5. IDSのホスト名とIPアドレスを設定
6. ホストの追加
7. 閉じる

■ bcsLogin.confファイルの作成

1. 以下のような内容を含むbcsLogin.confファイルを作成し、IDSの/opt/novell/java/jre/lib/securityへコピー 

com.sun.security.jgss.accept {
com.sun.security.auth.module.Krb5LoginModule required
debug="true"
useTicketCache="true"
ticketCache="/opt/novell/java/jre/lib/security/spnegoTicket.cache"
doNotPrompt="true"
principal="HTTP/xenids1.tokyo.novell.com@TESTDOM.COM"
useKeyTab="true"
keyTab="/opt/novell/java/jre/lib/security/nidpkey.keytab"
storeKey="true";
};

※ Access Managerの3.0xと3.1での差異
TID#7003228 Upgrading Novell Access Manager from 3.0.4 to 3.1 will break the Kerberos authentication service

2. tomcatを再起動
   /etc/init.d/novell-tomcat5 restart

■ Kerberos Transactionのログ出力設定(任意)

1. Administration Console > Identity Servers > Edit > Loggingタブ
2. File Loggingにチェック、Echo To Consoleにチェック
3. Component File Logger Levels にて、Applicationのレベルをdebugに変更
4. Trace Logging にて、Enabledにチェック
5. ApplicationとConfigurationにチェック
6. OK
7. Update AllからIDSの変更を更新

■ IDSの設定

ADをユーザストアとして設定していない場合は、ユーザストアとして指定します。
TID00007577 Active Directoryをユーザリポジトリに設定する手順

1. Administration Console > Identity Servers > Edit > Localタブ > Classes
2. New
3. Display name: Kerberos
   Java class: KerberosClass
4. 次へ
5. Service Principal Name (SPN): HTTP/xenids1.tokyo.novell.com
   Kerberos Realm: TESTDOM.COM
   JAAS config file for Kerberos: /opt/novell/java/jre/lib/security/bcsLogin.conf
   Kerberos KDC: 192.168.30.72
   User Attribute: userprincipalname
   ※Kerberos Realmはデフォルトがドメイン名のため、場合により変更が必要
     また、大文字小文字の区別が必要
6. 終了
7. Administration Console > Identity Servers > Edit > Localタブ > Method
8. New
9. Display name: Kerberos_Method
   Class: Kerberos
10. ADのユーザストアをAvailable user storesからUser storesへ移動
11. 終了
12. Administration Console > Identity Servers > Edit > Localタブ > Contract
13. New
14. Display name:  Kerberos_Contract
    URI:  kerberos/contract
15. Kerberos_MethodをAvailable methodsからMethodsへ移動
16. 次へ
17. ImageにてKerberosを選択し、終了
18. OK
19. Update AllからIDSの変更を更新
20. Update AllからAGの変更を更新

設定が正常であれば、以下のようにcatalina.outにCommit Succeededと表示されます。
/var/opt/novell/tomcat5/logs/catalina.out
-------------------
principal is HTTP/xenids1.tokyo.novell.com@TESTDOM.COM
EncryptionKey: keyType=3 keyBytes (hex dump)=0000: 98 F4 73 7A 15 97 A7 08
Added server's keyKerberos Principal HTTP/xenids1.tokyo.novell.com@TESTDOM.COMKey 
Version 3key EncryptionKey: keyType=3 keyBytes (hex dump)=
0000: 98 F4 73 7A 15 97 A7 08
[Krb5LoginModule] added Krb5Principal  HTTP/xenids1.tokyo.novell.com@TESTDOM.COM to Subject
Commit Succeeded
-------------------

■ クライアントの設定

1. ドメインユーザを作成
2. クライアントマシンをドメイン参加させる。
3. IE7を起動 > ツール > インターネットオプション > セキュリティ > ローカルイントラネットサイト > 詳細設定
4. このWebサイトをゾーンに追加する http://xenids1.tokyo.novell.com を追加
5. 閉じる
6. OK

■ IDSへの認証テスト
1. http://xenids1.tokyo.novell.com:8080/nidp/app へアクセス
2. 認証画面で、Keroberosのカードを選択
3. 自動的にログインしている状態を確認

■ Protected ResourceへのContract設定
1. Administration Console > Access Gateways > Edit > Reverse Proxy名 > Proxy Service名 > 
Protected Resourcesタブ
2. Contract下の現在使用しているContractをクリック
3.  Contractを作成したKerberos_Methodに変更
4. OK
5. Update AllからAGの変更を更新

■ Protected Resourceへのシングルサインオン
1. ドメインユーザで、Windowsドメインにログイン
2. ブラウザを起動し、Protected Resourceへアクセス
3. IDSの認証画面が表示されず、シングルサインオンが可能であることを確認

参考)
Novell Access Manager 3.1 Administration Guide
7.10 Configuring Kerberos for Authentication

Disclaimer

この情報は、米国Novell, Inc.およびノベル株式会社の内外から発生したものです。本文書の内容または本文書を使用した結果について、いかなる保証、表明または約束も行っていません。また、本文書の商品性、および特定目的への適合性について、いかなる黙示の保証も否認し、排除します。

本文書に記載されている会社名、製品名はそれぞれ各社の商品、商標または登録商標です。

  • ドキュメントID: 00008040
  • 作成年月日: 26-JUN-2009
  • 修正年月日: 26-JUN-2009
  • ドキュメントリビジョン:
  • 分類: Novell Access Manager
  • 対象NOVELL製品およびバージョン: Novell Access Manager 3
  • カテゴリ: Other(その他)