トップページ » Secure Global Desktop (SGD) » Secure Global Desktop(SGD)のActive Directory認証設定
カテゴリー
My Yahoo!に追加
Sun社提供情報
Solarisパッケージダウンロード
Sunマシンは買うには
blogs.sun.com
お勧めサイト
プライベートリンク

Secure Global Desktop(SGD)のActive Directory認証設定

検証環境

今回は以下の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のインストール&設定は省略します。(調べればどこにでも載っていますので・・・)

Kerveros認証の構成

Active Directory認証を使用するにはSGDサーバーをKerberos認証用に設定する必要があります。
Solaris10のSGDサーバーで使用されるKerberos構成ファイルは次の2つです。

  • /etc/krb5/krb5.conf (Solarisシステムのデフォルト用)
  • /opt/tarantella/bin/jre/lib/security/krb5.conf (SGD用)
今回は影響範囲をSGDのみに限定するため以下のようなSGD用のKerberos構成ファイルを用意しました。

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.

AD認証の設定

  1. SGD Administration Consoleにログインして、「グローバル設定」→「Secure Global Desktop認証」タブを選択し、以下のように「Secure Global Desktop認証を変更」をクリックします。
  2. 「次へ」をクリックします。
  3. 「システム認証」をチェックして「次へ」をクリックします。
  4. 「LDAP/Active Directory」をチェックして「次へ」をクリックします。
  5. 「Unix認証 - ユーザープロファイル」画面はそのまま「次へ」をクリックします。
    この設定はSGDサーバーのローカルユーザーのために使用されます。
  6. 「LDAPリポジトリの詳細」画面では以下のように設定します。
  7.   URL : ad://sgdtest.com
      ユーザ名 : Administrator@SGDTEST.COM
      パスワード : AD上のAdministratorパスワード
      接続のセキュリティー : Kerberosにチェック
      Active Directoryベースドメイン : sgdtest.com
      Active Directoryデフォルトドメイン : sgdtest.com
    
    上記設定で「次へ」をクリックしたときに構成に不備があるとエラーが表示される場合があります。以下の点を再度チェックしてみてください。
    • SGDサーバーのDNS設定(ホスト名もFQDNで指定する必要があります)
    • ADサーバーとの時刻同期
    • などなど
    ちなみにDNSやFQDNの設定ミスが原因のときは以下のようなメッセージが表示されます。
    javax.naming.AuthenticationException: Cannot get kdc for realm SGDTEST.COM.
     [Root exception is krbException Cannot get kdc for realm SGDTEST.COM
    
  8. 正しく構成されている場合には以下のような画面になります。「完了」をクリックして構成を終えてください。

構成とは直接関係ありませんが、Active Directory認証は他のシステムとの連携ということもあり、ログイン認証のトラブルが多いようです。トラブルシューティングをしやすくするために、「グローバル設定」→「監視」タブをクリックし、ログフィルタに以下のエントリを追加して保存しておくとよいと思います。

server/ad/*:ad_detailed.log
server/ldap/*:ad_detailed.log
server/kerberos/*:ad_detailed.log
server/login/*:ad_detailed.log

Active Directoryユーザーでのログイン

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.

AD認証のユーザープロファイル

Active Directory認証でSGDにアクセスしたユーザーにも様々なアプリケーションを割り当てると思います。(先ほどログインしたWebtop画面ではデフォルトのSGDサーバーのアプリケーションしかありません。)

割り当てには以下のようにSGDのAdministration Consoleにログインして「ユーザープロファイル」→「システムオブジェクト」から「LDAP Profile」を選びます。

アプリケーションサーバーやアプリケーションの登録方法はここでは省略しますが、LDAP Profileに登録済みアプリケーションを割り当てるだけで、AD認証でログインしたユーザーのWebtopに以下のように追加のアプリケーションが表示されるようになります。

もちろん、同じADドメイン内のアプリケーションサーバー上のアプリであれば、左側のメニューのアプリケーションをクリックするだけで個別のアプリを呼び出したり、Windowsデスクトップにログインした状態にすることができます。

SGDを使えば、クライアントのOSや形態(シンクライアントなど)を選ばず、好きなアプリケーションやOS環境を呼び出せますね。これは便利です!

Secure Global Desktop (SGD)のその他のリンク

Solaris系技術トレーニング一覧

Solaris10システム管理基本コース
Solaris10ネットワーク・インターネットサーバー管理コース
セキュリティ・パフォーマンス管理・トラブルシューティング等
Sun Cluster、ボリューム管理ソフトウェア
仮想化技術全般
シンクライアント、SunRay、デスクトップソフトウェア
アイデンティティマネージメントサービス
アプリケーションサーバーとWebポータル
サーバー(ハードウェア)メンテナンス
Sun Java CAPS
MySQL