リモート接続の認証

Windows リモート管理は、いくつかの標準的な認証方法とメッセージ暗号化をサポートすることで、コンピューター間の通信のセキュリティを維持します。

既定のグループアクセス

セットアップ中に、WinRM はローカルグループ Winrmremoteのユーザー _ _ を作成します。 WinRM は、ローカル管理グループまたは _ _ winrmremoteのユーザー グループのいずれにも属していないすべてのユーザーにリモートアクセスを制限します。 コマンドプロンプトで「 net localgroup winrmremote users _ _ /add \ 」と入力して、ローカルユーザー、ドメインユーザー、またはドメイングループを winrmremote users _ _ に追加できます。 必要に応じて、グループポリシーを使用してグループにユーザーを追加できます。

既定の認証設定

既定の資格情報、ユーザー名、およびパスワードは、スクリプトを実行するログオンユーザーアカウントの資格情報です。

リモートコンピューター上の別のアカウントに変更するには

  1. Connectionoptionsオブジェクトまたは iwsmanconnectionoptionsオブジェクトで資格情報を指定し、それを CreateSession呼び出しに渡します。
  2. CreateSession呼び出しの Flags パラメーターに WSManFlagCredUserNamePassword を設定します。

次の一覧に、既定の資格情報でスクリプトまたはアプリケーションが実行された場合の処理を示します。

  • クライアントがドメイン内にあり、リモートの送信先文字列が localhost、127.0.0.1、または:: 1 のいずれでもない場合、 Kerberosが既定の認証方法となります [ ] 。
  • Negotiate は、クライアントがドメインにない場合の既定の方法ですが、リモートの送信先文字列は localhost、127.0.0.1、または [ :: 1 のいずれか ] です。

Connectionoptionsオブジェクトを使用して明示的な資格情報を指定すると、Negotiate が既定のメソッドになります。 ネゴシエート認証は、コンピューターがドメインまたはワークグループ内にあるかどうかに応じて、実行中の認証方法が Kerberos と NTLM のどちらであるかを決定します。 ローカルアカウントを使用してリモートのターゲットコンピューターに接続する場合は、アカウントにコンピューター名がプレフィックスとして付けられている必要があります。 たとえば、myComputer myusername のように \ なります。

Negotiate、Digest、または Basic 認証を指定し、 Connectionoptions オブジェクトを指定しなかった場合は、明示的な資格情報が必要であることを示すエラーが表示されます。 HTTPS がトランスポートでない場合は、信頼されたホストコンピューターの一覧でターゲットのリモートコンピューターを構成する必要があります。

既定の構成設定で有効になっている認証の種類の詳細については、「 Windows リモート管理のインストールと構成」を参照してください。

基本認証

CreateSessionの呼び出し で基本認証を明示的に確立するには、 flags パラメーターで WSManFlagUseBasic フラグと WSManFlagCredUserNamePassword フラグを設定します。 基本認証は、WinRM クライアントと WinRM サーバーの両方の既定の構成設定で無効になっています。

ダイジェスト認証

CreateSessionの呼び出しで ダイジェスト認証を明示的に確立するには、 flags パラメーターで WSManFlagUseDigest フラグを設定します。 ダイジェストはサポートされていません。 WinRM サーバーコンポーネント用に構成することはできません。

認証のネゴシエート

Windows 統合認証とも呼ばれる Negotiate認証を明示的に確立するには、 CreateSessionの呼び出しで、 flags パラメーターの WSManFlagUseNegotiate フラグを設定します。

ユーザーアカウント制御 (UAC) は、WinRM サービスへのアクセスに影響を及ぼします。 ワークグループで Negotiate 認証が使用されている場合、組み込みの管理者アカウントのみがサービスにアクセスできます。 Administrators グループのすべてのアカウントにサービスへのアクセスを許可するには、次のレジストリ値を設定します。

HKEY _ローカル _ コンピューター \ ソフトウェア \ Microsoft \ Windows \ CurrentVersion \ Policies \ システム \ LocalAccountTokenFilterPolicy = 1

Kerberos 認証

CreateSessionの呼び出しで Kerberos認証を明示的に確立するには、 flags パラメーターで WSManFlagUseKerberos フラグを設定します。 クライアントコンピューターとサーバーコンピューターの両方がドメインに参加している必要があります。 認証方法として Kerberos を使用する場合は、 CreateSession または Iwsman:: CreateSessionへの呼び出しで IP アドレスを使用することはできません。

クライアント証明書ベースの認証

CreateSessionの呼び出しでクライアント証明書ベースの認証を確立するには、 Flags パラメーターで WSManFlagUseClientCertificate フラグを設定します。

まず、Winrm コマンドラインツールを使用して、クライアントとサービスの両方で証明書の認証を有効にする必要があります。 詳細については、「 認証オプションの有効化」を参照してください。 また、WinRM サーバーコンピューターの CertMapping テーブルにもエントリを作成する必要があります。 これにより、1つ以上の証明書とローカルアカウントの間のマッピングが確立されます。 認証と承認に証明書を使用すると、WinRM サービスによって実行される操作に対応するローカルアカウントが使用されます。

マッピングは、特定のリソース URI に対して作成できます。 CertMapping テーブルエントリの作成方法など、詳細については、コマンドプロンプトで「 winrm help CertMapping 」と入力してください。

注意

このコンテキストで WinRM が使用できる最大サイズの証明書は、16 KB です。

 

認証オプションを有効または無効にする

システムのインストール時の既定の認証オプションは、Kerberos です。 詳細については、「 Windows リモート管理のインストールと構成」を参照してください。

スクリプトまたはアプリケーションで、有効になっていない特定の認証方法が必要な場合は、この種類の認証を有効にするように構成を変更する必要があります。 この変更は、 Winrm コマンドラインツールを使用するか、 Windows リモート管理グループポリシーオブジェクト のグループポリシーを使用して行うことができます。 特定の認証方法を無効にすることもできます。

Winrm ツールで認証を有効または無効にするには

  1. WinRM クライアントの構成を設定するには、 winrm の set コマンドを使用して、クライアントを指定します。 たとえば、次のコマンドは、クライアントのダイジェスト認証を無効にします。

    winrm set winrm/config/client/auth @ {Digest = "false"}

  2. WinRM サーバーの構成を設定するには、 winrm の set コマンドを使用してサービスを指定します。 たとえば、次のコマンドは、サービスの Kerberos 認証を有効にします。

    winrm set winrm/config/service/auth @ {Kerberos = "true"}

Windows リモート管理について

WSMan. CreateSession

Windows リモート管理の使用