Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

シングルサインオン(SSO)とは

シングルサインオン(Single Sign-On:SSO)は、一度認証(サインオン)したユーザーが、再認証なしで他のドメインサービスへアクセスできるようにする技術です。リモートデスクトップサービス(RDS)に適用すると、ドメインコンピューターにログオン済みのユーザーは、RDSサーバーへの接続や公開済みRemoteAppの起動時に、ユーザー名とパスワードを再入力する必要がなくなります。

本記事では、Windows Server 2016および2012 R2で稼働するRDSサーバーにおいて、透過的なSSO認証を構成する際のポイントと具体的な手順を解説します。

システム要件

  • 接続ブローカー(Connection Broker)サーバーとすべてのRDSサーバーがWindows Server 2012以降で稼働していること
  • SSOはドメイン環境でのみ動作する。Active Directoryのユーザーアカウントを使用し、RDSサーバーとユーザーのワークステーションがADドメインに参加していること
  • RDPクライアント側でRDP 8.0以降を使用していること(Windows XPにはこのバージョンのRDPクライアントをインストールできない)
  • RDPクライアント側の対応OS:Windows 10、8.1、7
  • SSOはパスワード認証でのみ動作し、スマートカードは非対応
  • 接続設定のRDPセキュリティレイヤーを「ネゴシエート(Negotiate)」または「SSL(TLS 1.0)」に設定し、暗号化レベルを「」または「FIPS準拠」にすること

SSO構成の手順(全体像)

シングルサインオンの構成は、以下のステップで実施します。

  • RDゲートウェイ、RD Web、RD接続ブローカー各サーバーへのSSL証明書の発行と割り当て
  • RDWebサーバーでのWeb SSOの有効化
  • 資格情報の委任に関するグループポリシーの構成
  • GPOを使用した信頼された.rdp発行元への証明書拇印(Thumbprint)の追加

1. SSL証明書の発行と割り当て

まず、SSL証明書を発行して割り当てます。証明書のEKU(拡張キー使用法)プロパティにサーバー認証(Server Authentication)の識別子が含まれている必要があります。

SSL証明書の取得手順自体は本記事の範囲外ですが、自己署名SSL証明書を独自に生成することも可能です。その場合は、グループポリシーを使ってすべてのクライアントの信頼された証明書として展開する必要があります。

証明書の割り当ては、RDS展開(RDS Deployment)のプロパティにある証明書(Certificates)セクションで行います。

Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

2. RDWebでのWindows認証の有効化

次に、Web Accessロールを持つすべてのサーバー上で、IISのRDWebディレクトリに対して「Windows認証」を有効にし、「匿名認証」を無効にします。

Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

変更を保存したら、IISを再起動します。

iisreset /noforce

RDゲートウェイを使用している場合は、内部クライアントの接続にRDゲートウェイが使われないよう、「ローカルアドレスのRDゲートウェイサーバーをバイパスする(Bypass RD Gateway server for local address)」オプションにチェックを入れてください。

Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

3. 資格情報の委任ポリシーの構成

次のステップは、資格情報の委任ポリシーの構成です。新しいドメインGPOを作成し、RDSサーバーへのSSOアクセスを許可したいユーザー(コンピューター)が所属するOUにリンクします。ドメイン内の全ユーザーにSSOを許可する場合は、Default Domain Policyを編集しても問題ありません。

このポリシーは、以下のGPOセクションにあります:コンピューターの構成 → ポリシー → 管理用テンプレート → システム → 資格情報の委任 → 既定の資格情報の委任を許可する(Allow delegating default credentials)。このポリシーにより、特定のサーバーがWindowsユーザーの資格情報へアクセスできるようになります。

  • ポリシーを「有効」に設定します
  • クライアントがSSO認証のために自動的にユーザー資格情報を送信できるサーバーのリストに、RDSサーバー名を追加します。サーバーの指定形式は TERMSRV/rd.contoso.com のように記述します(TERMSRVの文字はすべて大文字である点に注意してください)。ドメイン内のすべてのターミナルサーバーにこの権限を与えることも可能ですが(セキュリティ的には推奨されません)、その場合は TERMSRV/*.contoso.com という形式を使用します。
Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

4. 信頼済みサイトゾーンと自動ログオンの設定

続いて、RemoteAppの発行元が信頼されていないという警告ウィンドウが表示されるのを防ぐため、「サイトからゾーンへの割り当て一覧(Site to Zone Assignment List)」ポリシーを使って、接続ブローカーロールを持つサーバーのアドレスをクライアントコンピューターの信頼済みゾーンに追加します。ポリシーの場所はユーザー/コンピューターの構成 → 管理用テンプレート → Windowsコンポーネント → Internet Explorer → インターネットコントロールパネル → セキュリティページです。

RDCBサーバーのFQDNを指定し、ゾーンに2(信頼済みサイト)を設定します。

Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

さらに、ユーザー/コンピューターの構成 → 管理用テンプレート → Windowsコンポーネント → Internet Explorer → インターネットコントロールパネル → セキュリティページ → 信頼済みサイトゾーンにある「ログオンオプション」ポリシーを有効にし、ドロップダウンリストから「現在のユーザー名とパスワードで自動的にログオンする」を選択します。

5. 信頼されたRDP発行元への証明書拇印の追加

クライアントでグループポリシーを更新した後、RemoteAppを起動するとパスワードの入力は求められなくなりますが、代わりに次のような警告ウィンドウが表示されます。

このRemoteAppプログラムの発行元を信頼しますか?
Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

このメッセージがユーザーログオンのたびに表示されないようにするには、RD接続ブローカー上のSSL証明書の拇印を取得し、信頼されたRDP発行元のリストに追加します。そのために、RDS接続ブローカーサーバーで次のPowerShellコマンドを実行します。

Get-Childitem CERT:\LocalMachine\My
Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

証明書の拇印の値をコピーし、ポリシー「RDP発行元を表す証明書のSHA1拇印を指定する(Specify SHA1 thumbprints of certificates representing RDP publishers)」(コンピューターの構成 → 管理用テンプレート → Windowsデスクトップサービス → リモートデスクトップ接続クライアント)の拇印リストに追加します。

Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

動作確認

以上でSSOの構成は完了です。ポリシーが適用されると、ユーザーはパスワードを再入力することなく、RDP経由でWindows Server RDSファームに接続できるようになります。

mstsc.exe(リモートデスクトップ接続クライアント)を起動してRDSサーバー名を指定すると、ユーザー名フィールドに user@domain.com 形式でユーザー名が自動表示され、次のメッセージが表示されます。

Windowsログオン資格情報を使用して接続します。
Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

RDゲートウェイでSSOを使用する場合

RDゲートウェイでSSOを使用するには、ポリシー「RDゲートウェイ認証方法を設定する(Set RD Gateway Authentication Method)」(ユーザーの構成 → ポリシー → 管理用テンプレート → Windowsコンポーネント → リモートデスクトップサービス → RDゲートウェイ)を有効にし、値を「ローカルにログオンした資格情報を使用する(Use Locally Logged-On Credentials)」に設定します。

Windows Server RDSでシングルサインオン(SSO)認証を構成する方法

RD Web AccessでのWeb SSOについて

RD Web AccessでWeb SSOを使用する場合は、Microsoft Remote Desktop Services Web Access Control(MsRdpClientShell)というActiveXコンポーネントを有効にしたInternet Explorerの使用が推奨されます。

  1. ZabbixでActive Directory連携のシングルサインオン(SSO)認証を構築する方法【Kerberos設定手順】

    本記事では、Kerberosを使用して、Zabbix 4.0以降とActive Directoryを連携させた透過的なSSO(シングルサインオン)認証を段階的に構築する手順を解説します。最終的なゴールは、ユーザーが資格情報を入力することなく、Zabbixのフロントエンドに自動ログインできる状態を作ることです。そのためには、ユーザーがZabbixに登録されたActive DirectoryドメインアカウントでWindowsにログインしている必要があります。さらに、ブラウザ側でも事前設定(Kerberosサポートの有効化やIEでの信頼済みイントラネットサイトへの登録など)が必要です。検証環境今回の

  2. Windows Serverを守るために今すぐ実践したい9つのセキュリティ対策

    Windows Serverは、サーバー運用に最も広く使われているOSの一つです。ビジネス用途で使用されることが多いため、Windows Serverのセキュリティは企業データを守る上で極めて重要です。 デフォルトでもWindows Serverには一定のセキュリティ対策が備わっていますが、潜在的な脅威に対して十分な防御を確保するには、追加の対策を講じることが大切です。ここでは、Windows Serverを安全に保つための重要なポイントを9つ紹介します。 1. Windows Serverを常に最新の状態に保つ 当たり前のことに思えるかもしれませんが、Windows Serverイメージか