クライアント証明書を検証する

適用対象: すべての 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 発行者の公開キーを表す既存の証明書エンティティの識別子。 他の発行者属性と同時に指定できません。 いいえ 該当なし

使用法

次の例では、ポリシーの既定の検証規則に一致するようにクライアント証明書を検証し、サブジェクトと発行者の名前が指定された値に一致するかどうかを確認します。

<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> 

ポリシーに対する処理の詳細については、次のトピックを参照してください。