(RDS)接続ブローカー構築してからリモートデスクトップ接続行うと認証が2回聞かれる
(RDS)リモートデスクトップサービスで冗長化かつ負荷分散する方法で書いた手順で、接続ブローカーとDNSラウンドロビンによってリモートデスクトップサービス(ターミナルサービス)の負荷分散+冗長化をもたせました。

構成としては、接続ブローカーサーバ、RDSサーバ1号機(RDSsv1)、RDSサーバ2号機(RDSsv2)、DNSサーバ(ドメインコントローラ)という感じです。

WindowsXP SP3 の端末からテストをしてみたんですが、何故か認証が2回聞かれることがあります。
(XP側でテストしたRDPクライアントバージョは6.1.7600です)

Windows7からではすんなり1回の認証で通ります。

で、どのような場合に2回聞かれているかというと、接続開始時にまずDNSラウンドロビンロビンによって RDSsv1,RDSsv2 のどちらかにセッションをはります。
まずその時に、1回目の認証を聞いてきます。
そして、認証成功後、接続ブローカーによってどのサーバに入るか指示されるわけですが、最初の認証したのとは違うサーバ(RDSsv2)にリダイレクトされると2回目の認証を聞いていきます。
(そのままリダイレクトされずにRDSsv1を使うよう接続ブローカーによって指示されたときは、2回目の認証は聞いてきません。)
つまり、リダイレクト時に、リダイレクト先へ認証済みのチケットが送れてないということですね。


さて、色々調査したところ、原因がわかりました。
それはXPのRDPクライアントはデフォルトでは、ネットワークレベル認証(NLA)が有効になっていないということが原因でした。
(ちなみに、ネットワークレベル認証が対応しているのはRDPクライアント6.0~です。)


今まではリモートデスクトップのセッションを張ってから認証を行ってましたが、それだとセキュリティ的によろしくないので、セッションを張る前に認証するというのがこのNLAです。


RDPクライアントでネットワークレベル認証が有効になっているかどうかは、タイトルバーを右クリックしてバージョン情報を表示するとわかります。
XPではデフォルトだと下記のように有効になっていません。
e0091163_0161334.jpg

e0091163_0161212.jpg


NLA無効時にRDS(TS)サーバにつなぐとこうなります。
e0091163_016386.jpg


RDPクライアントでネットワークレベル認証を有効にするには下記レジストリに値を追加します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages
末尾の行に "tspkg" を追加。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SecurityProviders
末尾に ", credssp.dll"を追加します。


設定後再起動すると、下記のように有効になります。
e0091163_017729.jpg

e0091163_017661.jpg


NLA有効時にRDS(TS)サーバにつなぐとこうなります。
e0091163_0172683.jpg



さて、実はこのネットワークレベル認証ですが、各RDSサーバの設定も関係します。

RDセッションホストの構成 → RDP-Tcp のプロパティでセキュリティに関する設定ができるわけですが、ここの "セキュリティ層" はデフォルトは "ネゴシエート" になっています。
しかし、一番低レベルの "RDPセキュリティ層" にすると、サーバ側でのネットワークレベル認証が無効になってしまいます。
そうなると、クライアントでNLAが有効なはずのWindows7からアクセスしても、サーバ側でNLAが無効になっているため、連続認証の現象が発生するようになります。

なので"セキュリティ層"の設定は "ネゴシエート" もしくは "SSL(TLS1.0)" にしておく必要があります。
e0091163_0182573.jpg


ちなみに、下の方にある "ネットワークレベル認証でリモートデスクトップを実行しているコンピュータからのみ接続を許可する" にチェックすると、クライアント側がNLA有効になっていなくて接続すると下記のようなエラーになります。
e0091163_0184174.jpg


RemoteAPP使用時のシングルサインオンにも、このネットワークレベル認証が関係しているようです。

この原因探るのに結構時間かかってしまいました。。。

参考:
ターミナル・サービスによるクライアントの仮想化(後編) - @IT RemoteAppの話ですが、下部の"シングル・サインオンを構成する"あたりにヒントがありました。
TechNet:リモート デスクトップ サービスの RDC クライアント シングル サインオンを有効にする
【TS】XP SP3でネットワークレベル認証(NLA)を有効にする - かめログ2
XP SP3でネットワークレベル認証(NLA)を有効にできんのかよ kamepress
[PR]
by Jehoshaphat | 2012-01-03 00:21 | サーバがらみ | Trackback | Comments(0)
トラックバックURL : http://jehupc.exblog.jp/tb/17159552
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。


<< VistaでUSBメモリが認識... (RDS)リモートデスクトップ... >>