Web 登録プロキシ ページの Kerberos 制約付き委任を構成する方法

この記事では、Web 登録プロキシ ページのカスタム サービス アカウントに Service for User to Proxy (S4U2Proxy) または Kerberos Only Constrained Delegation を実装する手順について説明します。

適用対象:ウィンドウ サーバー 2016、ウィンドウ サーバー 2019、Windows Server 2012 R2
元の KB 番号: 4494313

概要

この記事では、Web 登録プロキシ ページに対して Service for User to Proxy (S4U2Proxy) または Kerberos のみの制約付き委任を実装する手順について説明します。 この記事では、次の構成シナリオについて説明します。

  • カスタム サービス アカウントの委任の構成
  • NetworkService アカウントへの委任の構成

注:

この記事で説明するワークフローは、特定の環境に固有です。 同じワークフローは、別の状況では機能しない可能性があります。 ただし、原則は変わりません。 次の図は、この環境をまとめたものです。
環境の例のサーバーの種類。

シナリオ 1: カスタム サービス アカウントの制約付き委任を構成する

このセクションでは、Web 登録プロキシ ページにカスタム サービス アカウントを使用する場合に、Service for User to Proxy (S4U2Proxy) または Kerberos のみの制約付き委任を実装する方法について説明します。

1. サービス アカウントに SPN を追加する

サービス アカウントをサービス プリンシパル名 (SPN) に関連付けます。 これを行うには、次の手順を実行します。

  1. Active Directory ユーザーとコンピューターで、ドメインに接続し、[PKI PKI> ユーザー] を選択します

  2. サービス アカウント (たとえば、web_svc) を右クリックし、[プロパティ] を選択 します

  3. [属性エディター>servicePrincipalName] を選択します

  4. 新しい SPN 文字列を入力し、[ 追加 ] (次の図に示すように) を選択し、[ OK] を選択します

    H T T P SPN を追加して構成するためのガイダンス。

    Windows PowerShellを使用して SPN を構成することもできます。 これを行うには、管理者特権の PowerShell ウィンドウを開き、 を実行 setspn -s SPN Accountnameします。 たとえば、次のコマンドを実行します。

    setspn -s HTTP/webenroll2016.contoso.com web_svc
    

2. 委任を構成する

  1. サービス アカウントで S4U2proxy (Kerberos のみ) 制約付き委任を構成します。 これを行うには、(前の手順で説明したように) サービス アカウントの [プロパティ] ダイアログ ボックスで、[委任]> [指定されたサービスへの委任のみをこのユーザーに信頼する] を選択します。 [ Kerberos のみを使用する] が選択されていることを確認します。

    [プロパティ] ダイアログ ボックスの [委任] タブでweb_svcプロパティを構成します。

  2. ダイアログ ボックスを閉じます。

  3. コンソール ツリーで [ コンピューター] を選択し、Web 登録フロントエンド サーバーのコンピューター アカウントを選択します。

    注:

    このアカウントは"マシン アカウント" とも呼ばれます。

  4. コンピューター アカウントで S4U2self (プロトコル遷移) 制約付き委任を構成します。 これを行うには、コンピューター アカウントを右クリックし、[プロパティ>の委任>] [このコンピューターを信頼して指定されたサービスへの委任のみ] を選択します。 [任意の認証プロトコルを使う] を選択します。

    [指定したサービスへの委任にこのコンピューターを信頼する] オプションの下にある [任意の認証プロトコルを使用する] を選択します。

3. Web 登録用の SSL 証明書を作成してバインドする

Web 登録ページを有効にするには、Web サイトのドメイン証明書を作成し、既定の Web サイトにバインドします。 これを行うには、次の手順を実行します。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. コンソール ツリーで [HostName>] を選択<し、[サーバー証明書] を選択します。

    注:

    <ホスト> はフロントエンド Web サーバーの名前です。
    Web サイトのドメイン証明書を追加します。

  3. [ アクション ] メニューの [ ドメイン証明書の作成] を選択します。

  4. 証明書が作成されたら、コンソール ツリーで [既定の Web サイト ] を選択し、[ バインド] を選択します。

  5. [ポート][443] に設定されていることを確認します。 次に、[ SSL 証明書] で、手順 3 で作成した証明書を選択します。

    シナリオ 1 では、証明書を追加し、ポート 443 にバインドします。

  6. [ OK] を選択 して、証明書をポート 443 にバインドします。

4. サービス アカウントを使用するように Web 登録フロントエンド サーバーを構成する

重要

サービス アカウントが、Web サーバー上の ローカル管理者 または IIS_Users グループの一部であることを確認します。
Web サーバー上のサービス アカウントのグループ。

  1. DefaultAppPool を右クリックし、[詳細設定] を選択します

    アプリケーション プールの詳細設定を構成します。

  2. [ プロセス モデル>ID] を選択し、[ カスタム アカウント] を選択し、[ 設定] を選択します。 サービス アカウントの名前とパスワードを指定します。

    アプリケーション プール ID をカスタム サービス アカウントとして構成します。

  3. [資格情報とアプリケーション プール ID設定] ダイアログ ボックスで [OK] を選択します。

  4. [ 詳細設定] で、[ ユーザー プロファイルの読み込み] を見つけて、True に設定されていることを確認 します

    [ユーザー プロファイルの読み込み] 設定を True に設定します。

  5. コンピューターを再起動します。

シナリオ 2: NetworkService アカウントで制約付き委任を構成する

このセクションでは、Web 登録プロキシ ページに NetworkService アカウントを使用するときに、S4U2Proxy または Kerberos のみの制約付き委任を実装する方法について説明します。

省略可能な手順: 接続に使用する名前を構成する

クライアントが接続に使用できる名前を Web 登録ロールに割り当てることができます。 この構成は、受信要求が Web 登録フロントエンド サーバーのコンピューター名や、DNS 標準名 (CNAME) などの他のルーティング情報を認識する必要がないことを意味します。

たとえば、Web 登録サーバーのコンピューター名が WEBENROLLMAC (Contoso ドメイン内) であるとします。 受信接続で代わりに ContosoWebEnroll という名前を使用する必要があります。 この場合、接続 URL は次のようになります。

https://contosowebenroll.contoso.com/certsrv

次のようなものではありません。

https://WEBENROLLMAC.contoso.com/certsrv

このような構成を使用するには、次の手順に従います。

  1. ドメインの DNS ゾーン ファイルで、新しい接続名を Web 登録ロールの IP アドレスにマップするエイリアス レコードまたはホスト名レコードを作成します。 Ping ツールを使用して、ルーティング構成をテストします。

    前に説明した例では、ゾーン ファイルには、 Contoso.com ContosoWebEnroll を Web 登録ロールの IP アドレスにマップするエイリアス レコードがあります。

  2. Web 登録フロントエンド サーバーの SPN として新しい名前を構成します。 これを行うには、次の手順を実行します。

    1. Active Directory ユーザーとコンピューターで、ドメインに接続し、[コンピューター] を選択します。
    2. Web 登録フロントエンド サーバーのコンピューター アカウントを右クリックし、[ プロパティ] を選択します。

      注:

      このアカウントは"マシン アカウント" とも呼ばれます。

    3. [属性エディター>servicePrincipalName] を選択します
    4. 「HTTP/<ConnectionName」と入力します>。<DomainName.com>、[追加] を選択し、[OK] を選択します

      注:

      この文字列では、 <ConnectionName> は定義した新しい名前、 <DomainName> はドメインの名前です。 この例では、文字列は HTTP/ContosoWebEnroll.contoso.com です。 フロントエンド サーバー コンピューター アカウントに S P N を追加します。

1. 委任を構成する

  1. ドメインにまだ接続していない場合は、Active Directory ユーザーとコンピューターでこれを行い、[コンピューター] を選択します。

  2. Web 登録フロントエンド サーバーのコンピューター アカウントを右クリックし、[ プロパティ] を選択します。

    注:

    このアカウントは"マシン アカウント" とも呼ばれます。

  3. [ 委任] を選択し、[ 指定されたサービスへの委任に対してのみこのコンピューターを信頼する] を選択します。

    注:

    クライアントがこのサーバーに接続するときに常に Kerberos 認証を使用することを保証できる場合は、[ Kerberos のみを使用する] を選択します。 一部のクライアントが NTLM やフォーム ベースの認証など、他の認証方法を使用する場合は、[ 任意の認証プロトコルを使用する] を選択します。

    Web サーバー コンピューター アカウントで委任を構成します。

2. Web 登録用の SSL 証明書を作成してバインドする

Web 登録ページを有効にするには、Web サイトのドメイン証明書を作成し、既定の最初のサイトにバインドします。 これを行うには、次の手順を実行します。

  1. IIS マネージャーを起動します。

  2. コンソール ツリーで [HostName>] を選択<し、操作ウィンドウで [サーバー証明書] を選択します。

    注:

    <ホスト> はフロントエンド Web サーバーの名前です。 Web サイトのドメイン証明書を追加します。

  3. [ アクション ] メニューの [ ドメイン証明書の作成] を選択します。

  4. 証明書が作成されたら、[既定の Web サイト] を選択し、[ バインド] を選択します。

  5. [ポート][443] に設定されていることを確認します。 次に、[ SSL 証明書] で、手順 3 で作成した証明書を選択します。 [ OK] を選択 して、証明書をポート 443 にバインドします。

    証明書を追加し、ポート 443 にバインドします。

3. NetworkService アカウントを使用するように Web 登録フロントエンド サーバーを構成する

  1. DefaultAppPool を右クリックし、[詳細設定] を選択します

    既定のアプリケーション プールの [詳細設定] を選択します。

  2. [ プロセス モデル>ID] を選択します[組み込みアカウント] が選択されていることを確認し、[NetworkService] を選択します。 次に、[OK] を選択します。

    組み込みの NetworkService アカウントとしてアプリケーション プール ID を構成します。

  3. [ 詳細プロパティ] で、[ ユーザー プロファイルの読み込み] を見つけて、True に設定されていることを確認 します

    [詳細設定] の [ユーザー プロファイルの読み込み] を [True] に設定します。

  4. IIS サービスを再起動します。

これらのプロセスの詳細については、「 Web アプリケーション ユーザーの認証」を参照してください。

S4U2self および S4U2proxy プロトコル拡張機能の詳細については、次の記事を参照してください。