今回は以下の2つのシステムをVirtualBox3.0のゲストOSとして用意しました。
(もちろん機材が潤沢にあれば、独立したマシンで構築してください)
Secure Global Desktop(SGD)サーバー: Solaris 10 5/09
Active Directory(AD)サーバー: Windows Server 2003 Enterprise Edition
以下のようにSGD4.5を今回は使用しています。
bash-3.00# tarantella version Sun Secure Global Desktop Software for Intel Solaris 10+ (4.50.907) Architecture code: i3so0510 This host: SunOS s10u7 5.10 Generic_139556-08 i86pc i386 i86pc
SGDのインストール方法はこちらを参照してください。
Active Directoryのインストール&設定は省略します。(調べればどこにでも載っていますので・・・)
Active Directory認証を使用するにはSGDサーバーをKerberos認証用に設定する必要があります。
Solaris10のSGDサーバーで使用されるKerberos構成ファイルは次の2つです。
bash-3.00# cat /opt/tarantella/bin/jre/lib/security/krb5.conf [libdefaults] default_realm = SGDTEST.COM default_checksum = rsa-md5 [realms] SGDTEST.COM = { kdc = win2003.sgdtest.com admin_server = win2003.sgdtest.com kpasswd_protocol = SET_CHANGE } [domain_realm] .sgdtest.com = SGDTEST.COM sgdtest.com = SGDTEST.COM
設定の詳細は以下を参照してください。
上記のKerberos構成をSGDに反映させるにはSGDサーバーを再起動(tarantella stop/start)するか以下のようにKerberos構成を更新します。bash-3.00# tarantella cache --flush krb5config Successfully flushed the requested cache.
URL : ad://sgdtest.com ユーザ名 : Administrator@SGDTEST.COM パスワード : AD上のAdministratorパスワード 接続のセキュリティー : Kerberosにチェック Active Directoryベースドメイン : sgdtest.com Active Directoryデフォルトドメイン : sgdtest.com上記設定で「次へ」をクリックしたときに構成に不備があるとエラーが表示される場合があります。以下の点を再度チェックしてみてください。
javax.naming.AuthenticationException: Cannot get kdc for realm SGDTEST.COM. [Root exception is krbException Cannot get kdc for realm SGDTEST.COM
構成とは直接関係ありませんが、Active Directory認証は他のシステムとの連携ということもあり、ログイン認証のトラブルが多いようです。トラブルシューティングをしやすくするために、「グローバル設定」→「監視」タブをクリックし、ログフィルタに以下のエントリを追加して保存しておくとよいと思います。
server/ad/*:ad_detailed.log server/ldap/*:ad_detailed.log server/kerberos/*:ad_detailed.log server/login/*:ad_detailed.log
AD認証の動作検証のため、念のためSGDサーバーにローカルで登録されておらず、Active Directoryにだけ登録されているユーザーでログインしてみます。
このようにログインに成功しました。
先ほどログフィルタで設定したログファイルを確認すると以下のようなメッセージが吐き出されています。これを見てもActive Directoryを使用した認証が正しく行われていることがわかります。
2009/07/24 18:42:39.942 (pid 6608) server/login/moreinfo #1248428559942 Attempted login for user1 using disambiguation attributes {}. 2009/07/24 18:42:39.958 (pid 6608) server/kerberos/info #1248428559958 Attempting to authenticate: user1 to realm: SGDTEST.COM 2009/07/24 18:42:40.098 (pid 6608) server/kerberos/moreinfo #1248428560098 Successfully authenticated: user1@SGDTEST.COM to realm: SGDTEST.COM. 2009/07/24 18:42:40.105 (pid 6608) server/ldap/moreinfo #1248428560105 LDAP call succeeded: Active Directory(ldap://192.168.1.2:3268::win2003.sgdtest.com[/192.168.1.2]:[Up]) lookupLink-.../_ldapmulti/forest/("DC=SGDTEST,DC=COM") Call took 6ms. 2009/07/24 18:42:40.118 (pid 6608) server/ldap/moreinfo #1248428560118 LDAP call succeeded: Active Directory(ldap://192.168.1.2:3268::win2003.sgdtest.com[/192.168.1.2]:[Up]) search-.../_ldapmulti/forest/DC=SGDTEST,DC=COM("") Call took 12ms. 2009/07/24 18:42:40.124 (pid 6608) server/ldap/moreinfo #1248428560124 LDAP call succeeded: Active Directory(ldap://192.168.1.2:3268::win2003.sgdtest.com[/192.168.1.2]:[Up]) lookupLink-.../_ldapmulti/forest/("") Call took 5ms. 2009/07/24 18:42:40.126 (pid 6608) server/login/info #1248428560126 Login attempt for user1. Login successful. 2009/07/24 18:42:40.127 (pid 6608) server/login/info #1248428560127 User .../_service/sco/tta/ldapcache/CN=AD user1,CN=Users,DC=SGDTEST,DC=COM logged in using profile .../_ens/o=Tarantella System Objects/cn=LDAP Profile from 192.168.1.1. 2009/07/24 18:42:40.139 (pid 6608) server/ldap/moreinfo #1248428560139 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.742 (pid 6608) server/ldap/moreinfo #1248428560742 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.742 (pid 6608) server/ldap/moreinfo #1248428560743 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.743 (pid 6608) server/ldap/moreinfo #1248428560744 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.743 (pid 6608) server/ldap/moreinfo #1248428560745 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.744 (pid 6608) server/ldap/moreinfo #1248428560746 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.749 (pid 6608) server/ldap/moreinfo #1248428560749 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.750 (pid 6608) server/ldap/moreinfo #1248428560750 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.752 (pid 6608) server/ldap/moreinfo #1248428560752 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.753 (pid 6608) server/ldap/moreinfo #1248428560753 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.766 (pid 6608) server/ldap/moreinfo #1248428560766 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.767 (pid 6608) server/ldap/moreinfo #1248428560767 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.768 (pid 6608) server/ldap/moreinfo #1248428560768 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:40.768 (pid 6608) server/ldap/moreinfo #1248428560769 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:42.060 (pid 6608) server/login/auditinfo #1248428562060 Connection attempt for .../_ens/o=Tarantella System Objects/cn=LDAP Profile. The server has requested that the client reconnect on a different port. Probable cause: the client was using a secure connection and needs only a standard connection. 2009/07/24 18:42:42.146 (pid 6608) server/ldap/moreinfo #1248428562146 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:42.432 (pid 6608) server/ldap/moreinfo #1248428562432 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:42.435 (pid 6608) server/ldap/moreinfo #1248428562435 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.763 (pid 6608) server/ldap/moreinfo #1248428564763 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.764 (pid 6608) server/ldap/moreinfo #1248428564764 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.765 (pid 6608) server/ldap/moreinfo #1248428564765 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.765 (pid 6608) server/ldap/moreinfo #1248428564766 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.912 (pid 6608) server/ldap/moreinfo #1248428564912 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.914 (pid 6608) server/ldap/moreinfo #1248428564914 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.915 (pid 6608) server/ldap/moreinfo #1248428564915 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.921 (pid 6608) server/ldap/moreinfo #1248428564921 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("*","isMemberOf","nsroledn","memberOf",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.927 (pid 6608) server/ldap/moreinfo #1248428564927 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 0ms. 2009/07/24 18:42:44.929 (pid 6608) server/ldap/moreinfo #1248428564929 LDAP call succeeded: Active Directory(ldap://192.168.1.2:389::win2003.sgdtest.com[/192.168.1.2]:[Up]) getAttributes-.../_ldapmulti/forest/("CN=AD user1,CN=Users,DC=SGDTEST,DC=COM") ("cn","name","givenName","displayName","userPrincipalName",) (CACHED) Call took 1ms.
Active Directory認証でSGDにアクセスしたユーザーにも様々なアプリケーションを割り当てると思います。(先ほどログインしたWebtop画面ではデフォルトのSGDサーバーのアプリケーションしかありません。)
割り当てには以下のようにSGDのAdministration Consoleにログインして「ユーザープロファイル」→「システムオブジェクト」から「LDAP Profile」を選びます。
アプリケーションサーバーやアプリケーションの登録方法はここでは省略しますが、LDAP Profileに登録済みアプリケーションを割り当てるだけで、AD認証でログインしたユーザーのWebtopに以下のように追加のアプリケーションが表示されるようになります。
もちろん、同じADドメイン内のアプリケーションサーバー上のアプリであれば、左側のメニューのアプリケーションをクリックするだけで個別のアプリを呼び出したり、Windowsデスクトップにログインした状態にすることができます。
SGDを使えば、クライアントのOSや形態(シンクライアントなど)を選ばず、好きなアプリケーションやOS環境を呼び出せますね。これは便利です!