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

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

元の 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 プロトコル拡張機能の詳細については、次の記事を参照してください。