驗證用戶端憑證
適用於:所有 APIM 層
使用原則 validate-client-certificate
來強制用戶端對 API 管理執行個體呈現的憑證符合指定的驗證規則和宣告,例如一個或多個憑證身分識別的主體或簽發者。
若要視為有效,用戶端憑證必須符合最上層元素之屬性所定義的全部驗證規則,並符合至少其中一個已定義身分識別的全部已定義宣告。
使用此原則來檢查傳入的憑證屬性是否符合所需的屬性。 此外,在此案例中,使用此原則來覆寫用戶端憑證的預設驗證:
- 如果您已上傳自訂 CA 憑證,藉以驗證對受控閘道的用戶端要求
- 如果您已設定自訂憑證授權單位單位來驗證對自我管理閘道的用戶端要求
如需自訂 CA 憑證和憑證授權單位單位的詳細資訊,請參閱如何在 Azure API 管理中新增自訂 CA 憑證。
注意
請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則。
原則陳述式
<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>
屬性
名字 | 描述 | 是必要欄位 | 預設 |
---|---|---|---|
validate-revocation | 布林值。 指定是否針對線上撤銷清單驗證憑證。 不允許使用原則運算式。 | No | true |
validate-trust | 布林值。 指定驗證是否應該在鏈結無法成功組建至受信任的 CA 的情況下失敗。 不允許使用原則運算式。 | No | true |
validate-not-before | 布林值。 根據目前時間驗證值。 不允許使用原則運算式。 | 否 | true |
validate-not-after | 布林值。 根據目前時間驗證值。 不允許使用原則運算式。 | 否 | true |
ignore-error | 布林值。 指定原則是否應該繼續進行下一個處理常式,或在驗證失敗時跳至 on-error。 不允許使用原則運算式。 | No | false |
元素
元素 | 描述 | 必要 |
---|---|---|
身分識別 | 新增此元素,以使用已在用戶端憑證上定義的宣告來指定一或多個 identity 元素。 |
No |
身分識別屬性
名稱 | 描述 | 是必要欄位 | 預設 |
---|---|---|---|
thumbprint | 憑證指紋。 | No | N/A |
序號 | 憑證序號。 | No | N/A |
一般名稱 | 憑證一般名稱 (主體字串) 的一部分。 | No | N/A |
subject | 主體字串。 必須遵循辨別名稱的格式。 | No | N/A |
dns-name | 主體別名宣告內的 dnsName 項目值。 | No | N/A |
issuer-subject | 簽發者的主體。 必須遵循辨別名稱的格式。 | No | N/A |
issuer-thumbprint | 簽發者指紋 | No | N/A |
issuer-certificate-id | 代表簽發者公開金鑰的現有憑證實體識別碼。 與其他簽發者屬性互斥。 | No | N/A |
使用方式
範例
下列範例會驗證用戶端憑證以符合原則的預設驗證規則,並檢查主體和簽發者名稱是否符合指定的值。
<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 API 管理 原則工具組
- 使用 Microsoft Azure Copilot 撰寫原則