クライアント証明書を検証する
適用対象: すべての API Management レベル
validate-client-certificate
ポリシーを使用して、クライアントから API Management インスタンスに提示された証明書が、1つまたは複数の証明書 ID のサブジェクトや発行者などの指定した検証規則と要求に一致することを強制します。
クライアント証明書は、有効と見なされるために、最上位要素の属性で定義されているすべての検証規則と一致し、定義済みの ID の少なくとも 1 つに対して定義されているすべての要求と一致している必要があります。
このポリシーを使用して、受信証明書のプロパティと必要なプロパティを確認します。 また、このポリシーを使用して、次のような場合にクライアント証明書の既定の検証を上書きします。
- マネージド ゲートウェイへのクライアント要求を検証するためにカスタム CA 証明書をアップロードした場合
- セルフマネージド ゲートウェイへのクライアント要求を検証するようにカスタム証明機関を構成した場合
カスタム CA 証明書と証明機関の詳細については、「Azure API Management でカスタム CA 証明書を追加する方法」を参照してください。
Note
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
ポリシー ステートメント
<validate-client-certificate
validate-revocation="true | false"
validate-trust="true | false"
validate-not-before="true | false"
validate-not-after="true | false"
ignore-error="true | false">
<identities>
<identity
thumbprint="certificate thumbprint"
serial-number="certificate serial number"
common-name="certificate common name"
subject="certificate subject string"
dns-name="certificate DNS name"
issuer-subject="certificate issuer"
issuer-thumbprint="certificate issuer thumbprint"
issuer-certificate-id="certificate identifier"/>
</identities>
</validate-client-certificate>
属性
Name | 説明 | 必要 | Default |
---|---|---|---|
validate-revocation | ブール値。 オンライン失効リストに対して証明書を検証するかどうかを指定します。 ポリシー式は使用できません。 | いいえ | true |
validate-trust | ブール値。 信頼された証明機関にチェーンを正常に構築できない場合に検証が失敗するかどうかを指定します。 ポリシー式は使用できません。 | No | true |
validate-not-before | ブール型。 現在の時刻に対して値を検証します。 ポリシー式は使用できません。 | なし | true |
validate-not-after | ブール値。 現在の時刻に対して値を検証します。 ポリシー式は使用できません。 | なし | true |
ignore-error | ブール値。 ポリシーを次のハンドラーに進めるか、検証に失敗した場合に ON-ERROR にジャンプするかを指定します。 ポリシー式は使用できません。 | No | false |
要素
要素 | 説明 | 必須 |
---|---|---|
ID | クライアント証明書でクレームが定義されている 1 つ以上の identity 要素を指定するには、この要素を追加します。 |
No |
identity の属性
名前 | 説明 | 必要 | Default |
---|---|---|---|
thumbprint | 証明書のサムプリント。 | いいえ | N/A |
serial-number | 証明書のシリアル番号。 | いいえ | N/A |
common-name | 証明書の共通名 (サブジェクト文字列の一部)。 | いいえ | N/A |
subject | サブジェクト文字列。 識別名の形式に従う必要があります。 | いいえ | N/A |
dns-name | サブジェクトの代替名要求内の dnsName エントリの値。 | いいえ | 該当なし |
issuer-subject | 発行者のサブジェクト。 識別名の形式に従う必要があります。 | いいえ | N/A |
issuer-thumbprint | 発行者の拇印。 | いいえ | N/A |
issuer-certificate-id | 発行者の公開キーを表す既存の証明書エンティティの識別子。 他の発行者属性と同時に指定できません。 | いいえ | 該当なし |
使用法
- ポリシー セクション: inbound
- ポリシー スコープ: グローバル、ワークスペース、製品、API、操作
- ゲートウェイ: クラシック、v2、従量課金、セルフホステッド、ワークスペース
例
次の例では、ポリシーの既定の検証規則に一致するようにクライアント証明書を検証し、サブジェクトと発行者の名前が指定された値に一致するかどうかを確認します。
<validate-client-certificate
validate-revocation="true"
validate-trust="true"
validate-not-before="true"
validate-not-after="true"
ignore-error="false">
<identities>
<identity
subject="C=US, ST=Illinois, L=Chicago, O=Contoso Corp., CN=*.contoso.com"
issuer-subject="C=BE, O=FabrikamSign nv-sa, OU=Root CA, CN=FabrikamSign Root CA" />
</identities>
</validate-client-certificate>
関連ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。
- チュートリアル:API を変換および保護する
- ポリシー ステートメントとその設定の一覧に関するポリシー リファレンス
- ポリシー式
- ポリシーの設定または編集
- ポリシー構成を再利用する
- ポリシー スニペットのリポジトリ
- Azure で Microsoft Copilot を使用してポリシーを作成する