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) に関連付けます。 これを行うには、次の手順を実行します。
[Active Directory ユーザーとコンピューター] で、ドメインに接続し、[PKI PKI> ユーザー] を選択します。
サービス アカウント (たとえば、web_svc) を右クリックし、[プロパティ] を選択 します。
[ 属性エディター]>servicePrincipalName を選択します。
新しい SPN 文字列を入力し、[ 追加 ] (次の図に示すように) を選択し、[ OK] を選択します。
また、Windows PowerShell を使用して SPN を構成することもできます。 これを行うには、管理者特権の PowerShell ウィンドウを開き、 を実行
setspn -s SPN Accountname
します。 たとえば、次のコマンドを実行します。setspn -s HTTP/webenroll2016.contoso.com web_svc
2. 委任を構成する
サービス アカウントで S4U2proxy (Kerberos のみ) 制約付き委任を構成します。 これを行うには、(前の手順で説明したように) サービス アカウントの [プロパティ] ダイアログ ボックスで、[委任]> [指定されたサービスへの委任のみをこのユーザーに信頼する] を選択します。 [ Kerberos のみを使用する] が選択されていることを確認します。
ダイアログ ボックスを閉じます。
コンソール ツリーで [ コンピューター] を選択し、Web 登録フロントエンド サーバーのコンピューター アカウントを選択します。
注:
このアカウントは"マシン アカウント" とも呼ばれます。
コンピューター アカウントで S4U2self (プロトコル遷移) 制約付き委任を構成します。 これを行うには、コンピューター アカウントを右クリックし、[プロパティ>の委任>] [このコンピューターを信頼して指定されたサービスへの委任のみ] を選択します。 [任意の認証プロトコルを使う] を選択します。
3. Web 登録用の SSL 証明書を作成してバインドする
Web 登録ページを有効にするには、Web サイトのドメイン証明書を作成し、既定の Web サイトにバインドします。 これを行うには、次の手順を実行します。
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
コンソール ツリーで [HostName>] を選択<し、[サーバー証明書] を選択します。
注:
< ホスト> はフロントエンド Web サーバーの名前です。
[ アクション ] メニューの [ ドメイン証明書の作成] を選択します。
証明書が作成されたら、コンソール ツリーで [既定の Web サイト ] を選択し、[ バインド] を選択します。
[ポート] が [443] に設定されていることを確認します。 次に、[ SSL 証明書] で、手順 3 で作成した証明書を選択します。
[ OK] を選択 して、証明書をポート 443 にバインドします。
4. サービス アカウントを使用するように Web 登録フロントエンド サーバーを構成する
重要
サービス アカウントが、Web サーバー上の ローカル管理者 または IIS_Users グループの一部であることを確認します。
DefaultAppPool を右クリックし、[詳細設定] を選択します。
[ プロセス モデル>ID] を選択し、[ カスタム アカウント] を選択し、[ 設定] を選択します。 サービス アカウントの名前とパスワードを指定します。
[資格情報とアプリケーション プール ID の設定] ダイアログ ボックスで [OK] を選択します。
[ 詳細設定] で、[ ユーザー プロファイルの読み込み] を見つけて、True に設定されていることを確認 します。
コンピューターを再起動します。
シナリオ 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
このような構成を使用するには、次の手順に従います。
ドメインの DNS ゾーン ファイルで、新しい接続名を Web 登録ロールの IP アドレスにマップするエイリアス レコードまたはホスト名レコードを作成します。 Ping ツールを使用して、ルーティング構成をテストします。
前に説明した例では、ゾーン ファイルには、
Contoso.com
ContosoWebEnroll を Web 登録ロールの IP アドレスにマップするエイリアス レコードがあります。Web 登録フロントエンド サーバーの SPN として新しい名前を構成します。 これを行うには、次の手順を実行します。
- [Active Directory ユーザーとコンピューター] で、ドメインに接続し、[ コンピューター] を選択します。
- Web 登録フロントエンド サーバーのコンピューター アカウントを右クリックし、[ プロパティ] を選択します。
注:
このアカウントは"マシン アカウント" とも呼ばれます。
- [ 属性エディター]>servicePrincipalName を選択します。
-
「HTTP/<ConnectionName」と入力します>。<DomainName.com>、[追加] を選択し、[OK] を選択します。
注:
この文字列では、 <ConnectionName> は定義した新しい名前、 <DomainName> はドメインの名前です。 この例では、文字列は HTTP/ContosoWebEnroll.contoso.com です。
1. 委任を構成する
ドメインにまだ接続していない場合は、 Active Directory の [ユーザーとコンピューター] でこの操作を行い、[ コンピューター] を選択します。
Web 登録フロントエンド サーバーのコンピューター アカウントを右クリックし、[ プロパティ] を選択します。
注:
このアカウントは"マシン アカウント" とも呼ばれます。
[ 委任] を選択し、[ 指定されたサービスへの委任に対してのみこのコンピューターを信頼する] を選択します。
注:
クライアントがこのサーバーに接続するときに常に Kerberos 認証を使用することを保証できる場合は、[ Kerberos のみを使用する] を選択します。 一部のクライアントが NTLM やフォーム ベースの認証など、他の認証方法を使用する場合は、[ 任意の認証プロトコルを使用する] を選択します。
2. Web 登録用の SSL 証明書を作成してバインドする
Web 登録ページを有効にするには、Web サイトのドメイン証明書を作成し、既定の最初のサイトにバインドします。 これを行うには、次の手順を実行します。
IIS マネージャーを起動します。
コンソール ツリーで [HostName>] を選択<し、操作ウィンドウで [サーバー証明書] を選択します。
注:
< ホスト> はフロントエンド Web サーバーの名前です。
[ アクション ] メニューの [ ドメイン証明書の作成] を選択します。
証明書が作成されたら、[既定の Web サイト] を選択し、[ バインド] を選択します。
[ポート] が [443] に設定されていることを確認します。 次に、[ SSL 証明書] で、手順 3 で作成した証明書を選択します。 [ OK] を選択 して、証明書をポート 443 にバインドします。
3. NetworkService アカウントを使用するように Web 登録フロントエンド サーバーを構成する
DefaultAppPool を右クリックし、[詳細設定] を選択します。
[ プロセス モデル>ID] を選択します。 [組み込みアカウント] が選択されていることを確認し、[NetworkService] を選択します。 次に、[OK] を選択します。
[ 詳細プロパティ] で、[ ユーザー プロファイルの読み込み] を見つけて、True に設定されていることを確認 します。
IIS サービスを再起動します。
関連項目
これらのプロセスの詳細については、「 Web アプリケーション ユーザーの認証」を参照してください。
S4U2self および S4U2proxy プロトコル拡張機能の詳細については、次の記事を参照してください。