Validación del certificado de cliente
SE APLICA A: todos los niveles de API Management
Use la directiva validate-client-certificate
para exigir que un certificado presentado por un cliente a una instancia de API Management coincida con notificaciones y reglas de validación especificadas como un firmante o un emisor de certificado para una o varias identidades de certificación.
Para considerarlo válido, un certificado de cliente debe coincidir con todas las reglas de validación que se definen en los atributos en el elemento de nivel superior y coincidir con todas las notificaciones definidas para, al menos, una de las identidades definidas.
Use esta directiva para comprobar las propiedades del certificado entrante con respecto a las propiedades deseadas. Use esta directiva también para invalidar la validación predeterminada de los certificados de cliente en estos casos:
- Si cargó certificados de entidades de certificación personalizados para validar solicitudes de cliente en la puerta de enlace administrada.
- Si configuró entidades de certificación personalizadas para validar solicitudes de cliente en una puerta de enlace autoadministrada.
Para más información sobre las entidades de certificación y los certificados de entidades de certificación personalizadas, consulte Incorporación de un certificado de entidad de certificación personalizado a Azure API Management.
Nota:
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<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>
Atributos
Asignar nombre | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
validate-revocation | booleano. Especifica si el certificado se valida con la lista de revocación en línea. No se permiten expresiones de directiva. | No | true |
validate-trust | booleano. Especifica si se debe generar un error de validación en caso de que la cadena no se pueda crear correctamente en una entidad de certificación de confianza. No se permiten expresiones de directiva. | No | true |
validate-not-before | booleano. Valida el valor con respecto a la hora actual. No se permiten expresiones de directiva. | No | true |
validate-not-after | booleano. Valida el valor con respecto a la hora actual. No se permiten expresiones de directiva. | No | true |
ignore-error | booleano. Especifica si la directiva debe continuar con el controlador siguiente o pasar al error si se genera un error en la validación. No se permiten expresiones de directiva. | No | false |
Elementos
Elemento | Descripción | Obligatorio |
---|---|---|
Identidades | Agregue este elemento para especificar uno o varios elementos identity con notificaciones definidas en el certificado de cliente. |
No |
atributos de identidad
Nombre | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
thumbprint | Huella digital del certificado. | No | N/D |
serial-number | Número de serie del certificado. | No | N/D |
common-name | Nombre común del certificado (parte de la cadena del firmante). | No | N/D |
subject | Cadena del firmante. Debe seguir el formato de nombre distintivo (DN). | No | N/D |
dns-name | Valor de la entrada dnsName dentro de la notificación Nombre alternativo del firmante. | No | N/D |
issuer-subject | Firmante del emisor. Debe seguir el formato de nombre distintivo (DN). | No | N/D |
issuer-thumbprint | Huella digital del emisor. | No | N/D |
issuer-certificate-id | Identificador de la entidad de certificación existente que representa la clave pública del emisor. Mutuamente excluyente con otros atributos del emisor. | No | N/D |
Uso
- Secciones de la directiva: inbound (entrada)
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásica, v2, consumo, autohospedada y área de trabajo
Ejemplo
En el ejemplo siguiente se valida un certificado de cliente para que coincida con las reglas de validación predeterminadas de la directiva y se comprueba si el nombre del firmante y el emisor coinciden con los valores especificados.
<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>
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Kit de herramientas de directivas de Azure API Management
- Creación de directivas mediante Microsoft Copilot en Azure