この記事では、ユーザー フォレストとリソース フォレストが相互に信頼していない場合に、フォレスト間の証明書ベースの認証にスマート カードを使用するように Web サーバーを設定する方法について説明します。
適用対象: Windows Server 2016
元の KB 番号: 4509680
環境のコンフィギュレーション
次の構成を使用する環境を考えてみましょう。
-
Contoso.com
という名前のユーザー フォレスト。 -
Fabrikam.com
という名前のリソース フォレスト。 フォレストTailspintoys.com
代替ユーザー プリンシパル名 (UPN) として追加されています。 - 2 つのフォレスト間に信頼はありません。
- ユーザー スマート カードは、
user@tailspintoys.com
形式のサブジェクト代替名 (SAN) エントリを持つ証明書を使用します。 - Active Directory 証明書ベースの認証用に構成された IIS Web サーバー。
次の手順で説明するように、Active Directory と Web サーバーを構成します。
Active Directory を構成する
スマート カードを認証するようにリソース フォレストを構成するには、次の手順に従います。
KDC 認証拡張キー使用法 (EKU) を持つ Kerberos 認証証明書がドメイン コントローラーに発行されていることを確認します。
ユーザーの証明書の発行元 CA 証明書が Enterprise NTAUTH ストアにインストールされていることを確認します。
発行元 CA 証明書をドメインに発行するには、コマンド プロンプトで次のコマンドを実行します。
certutil -dspublish -f <filename> NTAUTHCA
このコマンドでは、 <filename> は、.cer拡張子を持つ CA 証明書ファイルの名前を表します。
ユーザーには、リソース フォレストの代替 UPN を使用するアカウントが必要です。
ユーザー フォレストを構成するには、次の手順に従います。
証明書にスマート カード ログオンとクライアント認証 EKU が定義されていることを確認します。
証明書の SAN がユーザーの UPN を使用していることを確認します。
Enterprise NTAUTH ストアにユーザー証明書の発行元 CA 証明書をインストールしていることを確認します。
注
フロントエンド サーバーで委任を設定する場合、または証明書の SAN 属性 (AltSecID ルート) で UPN の使用をスキップする場合は、「詳細情報」セクションを参照してください。
Web サーバーを構成する
リソース フォレストで IIS Web サーバーを構成するには、次の手順に従います。
IIS Web サーバーの役割をインストールし、 Client 証明書マッピング認証のセキュリティ 機能を選択します。
IIS Web サーバーで、 Active Directory クライアント証明書認証を有効にします。
Web サイトで、SSL をするように SSL 設定を構成し次に Client 証明書で Require を選択します。
Web サイトで他の認証の種類が有効になっていないことを確認します。 他の認証の種類で証明書ベースの認証を有効にすることはお勧めしません。これは、ユーザーが提示した証明書を Active Directory のユーザー アカウントにマッピングする DS マッパー サービスが、 Active Directory クライアント証明書認証 の種類でのみ動作するように設計されているためです。 匿名認証を有効にすると、予期しない結果が発生する可能性があります。
詳細
データベース サーバーや CA などのバックエンド サーバーに対してクエリを実行するようにこのリソース Web サーバーに委任を設定する場合は、カスタム サービス アカウントを使用して制約付き委任を構成することもできます。 さらに、制約付き委任 (S4U2Self) またはプロトコル遷移用に Web サーバーを設定する必要があります。 詳細については、「Web 登録プロキシ ページの Kerberos 制約付き委任を構成する方法」を参照してください。
ユーザー スマート カード証明書の SAN 属性で UPN をスキップする場合は、AltSecID 属性を使用して明示的にマップするかname ヒントを使用する必要があります。
注
スマート カード証明書を構成する場合、この方法はお勧めしません。
ユーザーの証明書で目的の UPN として SAN 属性を発行する場合は、AltSecID を有効にしないでください。
Web サーバー上の NTAuth ストアを確認するには、コマンド プロンプト ウィンドウを開き、次のコマンドを実行します。
Certutil -viewstore -enterprise NTAUTH