リモート接続の認証
Windowsリモート管理は、いくつかの標準的な認証方法とメッセージ暗号化をサポートすることで、コンピューター間の通信のセキュリティを維持します。
既定のグループ アクセス
セットアップ中に、WinRM によってローカル グループ WinRMRemoteWMIUsers__が作成されます。 次に、WinRM は、ローカル管理グループまたは WinRMRemoteWMIUsers__ グループのメンバーではないすべてのユーザーへのリモート アクセスを制限します。 コマンド プロンプトで「net localgroup WinRMRemoteWMIUsers__ /add domain\<username>」と入力することで、ローカル ユーザー、ドメイン ユーザー、またはドメイン> グループをWinRMRemoteWMIUsers__に追加<できます。 必要に応じて、グループ ポリシーを使用してグループにユーザーを追加できます。
既定の認証設定
既定の資格情報、ユーザー名、およびパスワードは、スクリプトを実行するログオン ユーザー アカウントの資格情報です。
リモート コンピューター上の別のアカウントに変更するには
- ConnectionOptions または IWSManConnectionOptions オブジェクトで資格情報を指定し、それを CreateSession 呼び出しに指定します。
- CreateSession 呼び出しの flags パラメーターに WSManFlagCredUserNamePassword を設定します。
次の一覧には、スクリプトまたはアプリケーションが既定の資格情報で実行されるときに発生する処理の一覧が含まれています。
- Kerberos は、クライアントがドメイン内にあり、リモート宛先文字列が localhost、127.0.0.1、または [::1] のいずれかでない場合の認証の既定の方法です。
- ネゴシエート は、クライアントがドメインにない場合の既定の方法ですが、リモートの宛先文字列は、localhost、127.0.0.1、または [::1] のいずれかです。
ConnectionOptions オブジェクトで明示的な資格情報を指定する場合は、Negotiate が既定のメソッドです。 ネゴシエート認証は、コンピューターがドメインまたはワークグループ内にあるかどうかに応じて、進行中の認証方法が Kerberos か NTLM かを決定します。 ローカル アカウントを使用してリモート ターゲット コンピューターに接続する場合は、アカウントの前にコンピューター名を付ける必要があります。 たとえば、myComputer\myUsername です。
ネゴシエート、ダイジェスト、または基本認証を指定し、 ConnectionOptions オブジェクトを指定できない場合は、明示的な資格情報が必要であることを示すエラーが表示されます。 HTTPS がトランスポートではない場合は、信頼されたホスト コンピューターの一覧でターゲット リモート コンピューターを構成する必要があります。
既定の構成設定で有効になっている認証の種類の詳細については、「Windowsリモート管理のインストールと構成」を参照してください。
基本認証
WSMan.CreateSession の呼び出しで基本認証を明示的に確立するには、flags パラメーターに WSManFlagUseBasic フラグと WSManFlagCredUserNamePassword フラグを設定します。 基本認証は、WinRM クライアントと WinRM サーバーの両方の既定の構成設定で無効になります。
ダイジェスト認証
WSMan.CreateSession の呼び出しでダイジェスト認証を明示的に確立するには、flags パラメーターに WSManFlagUseDigest フラグを設定します。 ダイジェストはサポートされていません。 WinRM サーバー コンポーネント用に構成することはできません。
認証のネゴシエート
WSMan.CreateSession の呼び出しでネゴシエート認証 (Windows統合認証とも呼ばれます) を明示的に確立するには、flags パラメーターに WSManFlagUseNegotiate フラグを設定します。
ユーザー アカウント制御 (UAC) は、WinRM サービスへのアクセスに影響します。 ワークグループでネゴシエート認証が使用されている場合、組み込みの管理者アカウントのみがサービスにアクセスできます。 Administrators グループ内のすべてのアカウントにサービスへのアクセスを許可するには、次のレジストリ値を設定します。
HKEY_LOCAL_MACHINE\ソフトウェア\マイクロソフト\\ Windows CurrentVersionPoliciesSystemLocalAccountTokenFilterPolicy\\\ = 1
Kerberos 認証
WSMan.CreateSession の呼び出しで Kerberos 認証を明示的に確立するには、flags パラメーターに WSManFlagUseKerberos フラグを設定します。 クライアント コンピューターとサーバー コンピューターの両方をドメインに参加させる必要があります。 認証方法として Kerberos を使用する場合、 WSMan.CreateSession または IWSMan::CreateSession の呼び出しで IP アドレスを使用することはできません。
クライアント証明書ベースの認証
WSMan.CreateSession の呼び出しでクライアント証明書ベースの認証を確立するには、flags パラメーターに WSManFlagUseClientCertificate フラグを設定します。
まず、Winrm コマンド ライン ツールを使用して、クライアントとサービスの両方で証明書認証を有効にする必要があります。 詳細については、「 認証オプションの有効化」を参照してください。 WinRM サーバー コンピューターの CertMapping テーブルにもエントリを作成する必要があります。 これにより、1 つ以上の証明書とローカル アカウント間のマッピングが確立されます。 認証と承認に証明書が使用されると、対応するローカル アカウントが WinRM サービスによって実行される操作に使用されます。
マッピングは、特定のリソース URI に対して作成できます。 CertMapping テーブル エントリの作成方法など、詳細については、コマンド プロンプトで winrm help certmapping と入力します。
Note
このコンテキストで WinRM で使用できる最大サイズ証明書は 16 KB です。
認証オプションの有効化または無効化
システムのインストール時の既定の認証オプションは Kerberos です。 詳細については、「Windows リモート管理のインストールと構成」を参照してください。
スクリプトまたはアプリケーションで、有効になっていない特定の認証方法が必要な場合は、この種類の認証を有効にするように構成を変更する必要があります。 この変更は、Winrm コマンド ライン ツールを使用するか、Windows リモート管理グループ ポリシー オブジェクトのグループ ポリシーを使用して行うことができます。 特定の認証方法を無効にすることもできます。
Winrm ツールを使用して認証を有効または無効にするには
WinRM クライアントの構成を設定するには、 Winrm Set コマンドを使用してクライアントを指定します。 たとえば、次のコマンドを実行すると、クライアントのダイジェスト認証が無効になります。
winrm set winrm/config/client/auth @{Digest="false"}
WinRM サーバーの構成を設定するには、 Winrm Set コマンドを使用してサービスを指定します。 たとえば、次のコマンドは、サービスの Kerberos 認証を有効にします。
winrm set winrm/config/service/auth @{Kerberos="true"}
関連トピック