信頼されたドメインの Active Directory で証明書を発行するための証明機関の構成
この記事では、証明機関 (CA) として子ドメインのユーザーが証明書を要求したときに、発行された証明書が Active Directory で発行されない問題を解決します。
適用対象: サポートされているすべてのバージョンの Windows Server
元の KB 番号: 281271
現象
次のシナリオでは、CA と同じドメインのユーザーが証明書を要求すると、発行された証明書が Active Directory で発行されます。 ユーザーが子ドメインの場合、このプロセスは成功しません。 また、CA と同じドメインのユーザーが証明書を要求すると、発行された証明書が Active Directory で発行されない場合があります。
シナリオ 1
このシナリオでは、次の条件に該当する場合、CA は発行された証明書を子ドメインのユーザーの DS オブジェクトに発行しません。
- ユーザーは、親ドメインと子ドメインを持つ 2 レベルのドメイン階層にあります。
- Enterprise CA は親ドメインにあり、ユーザーは子ドメインにあります。
- 子ドメインのユーザーが親 CA に登録されます。
親ドメインと子ドメインを持つ 2 レベルのドメイン階層では、Enterprise CA は親ドメインにあります。 また、ユーザーは子ドメインにいます。 子ドメインのユーザーは親 CA に登録し、CA は発行された証明書を子ドメインのユーザーの DS オブジェクトに発行します。
さらに、次のイベントが CA サーバーに記録されます。
ログ名: アプリケーション
ソース: Microsoft-Windows-CertificationAuthority
イベント ID: 80
タスク カテゴリ: なし
レベル: 警告
キーワード:
ユーザー: SYSTEM
コンピューター: CA.CONTOSO.COM
説明:
Active Directory 証明書サービスは、サーバー DC.CHILD.CONTOSO.COM 上の次の場所に要求 XXX の証明書を発行できませんでした:CN=CHILDSRV、CN=Computers、DC=CHILD、DC=CONTOSO、DC=COM。 操作を実行するためのアクセス権が不十分です。 0x80072098 (WIN32: 8344 ERROR_DS_INSUFF_ACCESS_RIGHTS)。
ldap: 0x32: 00002098: SecErr: DSID-XXXXXXXX, 問題 4003 (INSUFF_ACCESS_RIGHTS), データ 0
シナリオ 2
次のような状況で問題が発生します。
- ユーザーが単一レベル のドメインまたは親ドメインにいます。
- Enterprise CA は親ドメインにあります。
- ドメイン コントローラーに修正プログラム 327825 インストールされていません。
- ユーザーは、単一レベルまたは親ドメインで、単一レベルの証明機関または親証明機関に登録します。
このシナリオでは、証明機関は、発行された証明書を、単一レベル ドメインまたは親ドメイン内のユーザーのドメイン サーバー オブジェクトに発行しません。
原因
シナリオ 1: 2 レベルのドメイン階層の場合
子ドメインのユーザーには、登録するための適切なアクセス許可がありません。 その場合でも、CA には、証明書を Active Directory に発行するためのアクセス許可がありません。
既定では、CA と同じドメインのドメイン ユーザーのみが登録アクセス許可を持ちます。
既定では、CA にはドメイン内のユーザーに対して次の必要なアクセス許可が付与されます。
を読み取る
userCertificate
。を記述
userCertificate
します。親ドメインの CA には、子ドメイン内のユーザーの
userCertificate
プロパティに対するアクセス許可がありません。
シナリオ 2: 単一レベル ドメインまたは親ドメインの場合
既定では、Windows では、AdminSDHolder オブジェクトは、AdminSDHolder プロセスの対象となるユーザー アカウントに必要なアクセス許可を Cert Publishers グループに付与しません。 次の一覧には、Windows で保護されたユーザー アカウント グループが含まれています。
エンタープライズの管理者
Schema Admins
Domain Admins
管理者
修正プログラム KB327825を適用した後、Windows のユーザー アカウント グループの次の一覧が保護されたユーザー アカウント グループになりました。
管理者
アカウントオペレーター
サーバー演算子
印刷演算子
Backup Operators
Domain Admins
Schema Admins
エンタープライズの管理者
証明書発行元
解決方法
シナリオに応じて、次の解決策を試してください。
シナリオ 1: 2 レベルのドメイン階層の場合
子ドメイン ユーザーが証明書を取得し、Active Directory に発行できるようにするには、次の手順に従います。
CA のテンプレートに対するアクセス許可を設定して、登録要求を許可します。 CA が証明書を発行できるように、ユーザー オブジェクトのアクセス許可を設定します。 AdminSDHolder を変更して、管理者であるユーザーにユーザー オブジェクトのアクセス許可をプッシュします。
CA が証明書を発行できるように、ユーザー オブジェクトのアクセス許可を設定します。 AdminSDHolder を変更して、管理者であるユーザーにユーザー オブジェクトのアクセス許可をプッシュします。
AdminSDHolder を変更して、管理者であるユーザーにユーザー オブジェクトのアクセス許可をプッシュします。
注:
最初に、Windows Professional または Windows Server CD-ROM からサポート ツールをインストールする必要があります。
子ドメイン ユーザーが証明書を取得し、Active Directory に発行できるようにする
CA に対するアクセス許可を設定して、子ドメイン内のユーザーが証明書を要求できるようにします。 既定では、配置する必要があります。
- 証明機関スナップインを開き、CA を右クリックし、[プロパティ] を選択 します。
- [ セキュリティ ] タブで、認証されたユーザー グループが証明書の要求を許可されていることを確認します。
子ドメインのユーザーが登録できるように、該当する証明書テンプレートに対するアクセス許可を設定します。
注:
ドメイン管理者権限を持つルート ドメインにログオンする必要があります。
- Active Directory サイトとサービス スナップインを開きます。
- [ 表示] を選択し、[ サービス ノードの表示] を選択します。
- [サービス ノード] フォルダーを展開し、[公開キー サービス] を展開して、[証明書テンプレート] を選択します。
- [ 詳細 ] ウィンドウで、目的のテンプレートまたはテンプレートを選択します。 たとえば、[ ユーザー証明書 ] テンプレートを右クリックし、[プロパティ] を選択 します。
- [ セキュリティ ] タブで、目的のグループ (認証されたユーザーなど) に登録アクセス許可を付与します。
証明書を Active Directory に発行するように CA Exit モジュールを構成します。
- 証明機関スナップインで、CA を右クリックし、[プロパティ] を選択 します。
- [ モジュールの終了 ] タブで、[構成] を選択 します。
- 終了モジュールのプロパティで、[Active Directory] ボックス で [証明書の発行を許可する ] を選択します。
子ドメイン コントローラーで、次の手順を実行します。
注:
Windows Server ドメインでは、Cert Publishers グループはドメイン グローバル グループです。 Cert Publishers グループを各子ドメインに手動で追加する必要があります。
子ドメイン ユーザーが証明書を取得し、Windows Server ドメインで発行できるように設定できます。 これを行うには、グループの種類を [ドメイン ローカル] に変更し、親ドメインの CA サーバーを含めます。 この手順では、新しくインストールされた Windows Server ドメインに存在するのと同じ構成を作成します。 ユーザー インターフェイス (UI) では、グループの種類を変更できません。 ただし、 コマンドを
dsmod
使用して、Cert Publishers グループをドメイン グローバル グループからドメイン ローカル グループに変更できます。dsmod group Group Distinguished Name -scope l
場合によっては、groupType をグローバルからドメイン ローカル グループに直接変更することはできません。 この場合、グローバル グループをユニバーサル グループに変更し、ユニバーサル グループをドメイン ローカル グループに変更する必要があります。 そのために、以下の手順に従ってください。
次のコマンドを入力し、Enter キーを押します。
dsmod group Group Distinguished Name -scope u
このコマンドは、グローバル グループをユニバーサル グループに変更します。
次のコマンドを入力し、Enter キーを押します。
dsmod group Group Distinguished Name -scope l
このコマンドは、ユニバーサル グループをドメイン ローカル グループに変更します。
シナリオ 2: 単一レベル ドメインまたは親ドメインの場合
単一レベルのドメイン コントローラーまたは親ドメイン コントローラーで、引用符を付けて次の 2 つのコマンドを実行します。
dsacls "cn=adminsdholder,cn=system, dc=<your domain>,dc=<com>" /G "<CA's domain> \Cert Publishers:WP;userCertificate"
dsacls "cn=adminsdholder,cn=system, dc=<your domain>,dc=<com>" /G "<CA's domain> \Cert Publishers:RP;userCertificate"
ここで、dc=<your domain,dc>=<com> は子ドメインの識別名 (DN) です。 ここで <、CA のドメイン> は、CA が配置されているドメイン名です。
状態
Microsoft は、Windows Server の問題であることを確認しました。
詳細
子ドメインのユーザーが登録に成功しなかった場合、CA アプリケーション イベント ログに次のエラーが生成されます。
イベントの種類: 警告
イベント ソース: CertSvc
イベント カテゴリ: なし
イベント ID: 53
日付: 2000 年 8 月 14 日
時間: 05:13:00
ユーザー: N/A
コンピューター: <ルート CA 名>
説明:
アクセスが拒否されているため、Certificate Services によって要求 <要求が拒否されました #> 。
0x80070005 (WIN32: 5)。 要求は (不明なサブジェクト) でした。 追加情報: ポリシー モジュールによって拒否されました
ユーザーが登録できるように ACL が設定されていても、CA にユーザーの Active Directory に発行するアクセス許可がない場合、CA アプリケーション イベント ログに次のエラーが生成されます。
イベントの種類: エラー
イベント ソース: CertSvc
イベント カテゴリ: なし
イベント ID: 46
日付: 2000 年 8 月 14 日
時間: 05:13:00
ユーザー: N/A
コンピューター: <ルート CA 名>
説明:
"Enterprise and Stand-alone Exit Module" Exit Module "Notify" メソッドはエラーを返しました。 アクセスが拒否されました。 返された状態コードは 0x80070005 (5) です。 証明機関は、Child\User の証明書をディレクトリ サービスに発行できませんでした。 アクセスが拒否されました。
(0x80070005)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示