今回は以下の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環境を呼び出せますね。これは便利です!