Compartir a través de


Protección de servicios back-end mediante la autenticación de certificados de cliente en Azure API Management

SE APLICA A: todos los niveles de API Management

API Management permite proteger el acceso al servicio back-end de una API mediante certificados de cliente y autenticación TLS mutua. En este artículo se muestra cómo administrar certificados en API Management mediante Azure Portal. También se explica cómo configurar una API para que use un certificado para acceder a un servicio back-end.

También puede administrar certificados de API Management mediante la API REST de API Management.

Opciones de certificado

API Management proporciona dos opciones para administrar certificados que se usan para proteger el acceso a los servicios back-end:

  • Haga referencia a un certificado administrado en Azure Key Vault.
  • Agregue un archivo de certificado directamente en API Management.

Se recomienda usar certificados del almacén de claves, ya que, al hacerlo, se mejora la seguridad de API Management:

  • Los certificados almacenados en almacenes de claves se pueden reutilizar en todos los servicios.
  • Las directivas de acceso granulares se pueden aplicar a los certificados almacenados en almacenes de claves.
  • Los certificados actualizados en el almacén de claves se rotan automáticamente en API Management. Después de una actualización en el almacén de claves, se actualiza un certificado en API Management en un plazo de cuatro horas. También puede actualizar manualmente el certificado mediante Azure Portal o a través de la API rest de administración.

Requisitos previos

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Requisitos previos para la integración de un almacén de claves

Nota:

Actualmente, esta característica no está disponible en las áreas de trabajo.

  1. Si aún no tiene un almacén de claves, créelo. Para obtener información sobre cómo crear un almacén de claves, consulte Inicio rápido: Creación de un almacén de claves mediante Azure Portal.

  2. Habilite una identidad administrada asignada por el sistema o asignada por el usuario en API Management.

Configuración del acceso al almacén de claves

  1. En el portal, vaya al almacén de claves.
  2. En el menú de la izquierda, seleccione Configuración de acceso. Tenga en cuenta el modelo de permisos configurado.
  3. En función del modelo de permisos, configure una directiva de acceso al almacén de claves o el acceso de Azure RBAC para una identidad administrada de API Management.

Para agregar una directiva de acceso del almacén de claves:

  1. En el menú de la izquierda, seleccione Directivas de acceso.
  2. En la página Directivas de acceso, seleccione + Crear.
  3. En la pestaña Permisos , en Permisos secretos, seleccione Obtener y enumerar y, a continuación, seleccione Siguiente.
  4. En la pestaña Principal, seleccione Principal, busque el nombre del recurso de su identidad administrada y, a continuación, seleccione Siguiente. Si usa una identidad asignada por el sistema, la entidad de seguridad es el nombre de la instancia de API Management.
  5. Seleccione Siguiente de nuevo. En la pestaña Revisar y crear, seleccione Crear.

Para crear un certificado en el almacén de claves o importar un certificado en el almacén de claves, consulte Inicio rápido: Establecimiento y recuperación de un certificado de Azure Key Vault mediante Azure Portal.

Requisitos de firewall de Key Vault

Si el firewall de Key Vault está habilitado en el almacén de claves, debe cumplir estos requisitos:

  • Debe usar la identidad administrada asignada por el sistema de la instancia de API Management para acceder al almacén de claves.

  • En el firewall de Key Vault, establezca la opción ¿Quiere permitir que los servicios de confianza de Microsoft puedan omitir este firewall?

  • Asegúrese de que la dirección IP del cliente local tenga permiso para acceder al almacén de claves temporalmente mientras selecciona un certificado o secreto para agregar a Azure API Management. Para más información, vea Configuración de redes de Azure Key Vault.

    Después de completar la configuración, puede bloquear la dirección del cliente en el firewall del almacén de claves.

Requisitos de red virtual

Si la instancia de API Management se ha implementado en una red virtual, configure también las siguientes opciones de red:

Para más información, consulte Configuración de red al configurar API Management en una red virtual.

Adición de un certificado del almacén de claves

Consulte Requisitos previos para la integración de un almacén de claves.

Importante

Para agregar un certificado de almacén de claves a la instancia de API Management, debe tener permisos para enumerar los secretos del almacén de claves.

Precaución

Al usar un certificado de almacén de claves en API Management, tenga cuidado de no eliminar el certificado, el almacén de claves o la identidad administrada que se usa para acceder al almacén de claves.

Para agregar un certificado del almacén de claves a API Management:

  1. En Azure Portal, vaya a la instancia de API Management.

  2. En Seguridad, seleccione Certificados.

  3. Seleccione Certificados>+ Agregar.

  4. En Id., escriba un nombre.

  5. En Certificado, seleccione Almacén de claves.

  6. Escriba el identificador de un certificado de almacén de claves o elija Seleccionar para seleccionar un certificado de un almacén de claves.

    Importante

    Si escribe un identificador de certificado del almacén de claves usted mismo, asegúrese de que no tiene información de versión. De lo contrario, el certificado no se rotará automáticamente en API Management después de una actualización en el almacén de claves.

  7. En Identidad de cliente, seleccione una identidad asignada por el sistema o una identidad administrada asignada por el usuario existente. Para obtener más información, vea Uso de identidades administradas en Azure API Management.

    Nota:

    La identidad debe tener permisos para obtener y enumerar certificados del almacén de claves. Si aún no ha configurado el acceso al almacén de claves, API Management le pedirá que pueda configurar automáticamente la identidad con los permisos necesarios.

  8. Seleccione Agregar.

    Captura de pantalla que muestra cómo agregar un certificado de almacén de claves a API Management en el portal.

  9. Seleccione Guardar.

Carga de un certificado

Para cargar un certificado de cliente en API Management:

  1. En Azure Portal, vaya a la instancia de API Management.

  2. En Seguridad, seleccione Certificados.

  3. Seleccione Certificados>+ Agregar.

  4. En Id., escriba un nombre.

  5. En Certificado, seleccione Personalizado.

  6. Navegue para seleccionar el archivo .pfx del certificado y escriba su contraseña.

  7. Seleccione Agregar.

    Captura de pantalla de la carga de un certificado cliente a API Management en el portal.

  8. Seleccione Guardar.

Una vez cargado el certificado, se muestra en la ventana Certificados. Si tiene muchos certificados, anote la huella digital del certificado que acaba de cargar. Necesitará configurar una API para usar el certificado de cliente para la autenticación de puerta de enlace.

Configuración de una API para usar un certificado de cliente para la autenticación de puerta de enlace

  1. En Azure Portal, vaya a la instancia de API Management.

  2. En API, seleccione API.

  3. Seleccione una API en la lista.

  4. En la pestaña Diseño , seleccione el icono de lápiz en la sección Back-end .

  5. En Credenciales de puerta de enlace, seleccione Certificado de cliente y, a continuación, seleccione el certificado en la lista Certificado de cliente .

  6. Seleccione Guardar.

    Uso de un certificado de cliente para la autenticación de puerta de enlace

Precaución

Este cambio es efectivo inmediatamente. Las llamadas a las operaciones de la API usarán el certificado para autenticarse en el servidor back-end.

Sugerencia

Cuando se especifica un certificado para la autenticación de puerta de enlace para el servicio back-end de una API, se convierte en parte de la directiva de esa API y se puede ver en el editor de directivas.

Deshabilitación de la validación de la cadena de certificados para los certificados autofirmados

Si usa certificados autofirmados, debe deshabilitar la validación de la cadena de certificados para permitir que API Management se comunique con el sistema back-end. De lo contrario, obtendrá un código de error 500. Para deshabilitar esta validación, puede usar los cmdlets de PowerShell New-AzApiManagementBackend (para un nuevo back-end) o Set-AzApiManagementBackend (para un back-end existente) y establecer el parámetro -SkipCertificateChainValidation en True:

$context = New-AzApiManagementContext -ResourceGroupName 'ContosoResourceGroup' -ServiceName 'ContosoAPIMService'
New-AzApiManagementBackend -Context  $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true

También puede deshabilitar la validación de la cadena de certificados mediante la API REST de back-end.

Eliminar un certificado de cliente

Para eliminar un certificado, seleccione Eliminar en el menú de puntos suspensivos (...):

Eliminar un certificado

Importante

Si cualquier directiva hace referencia al certificado, aparecerá una pantalla de advertencia. Para eliminar el certificado, primero debe quitarlo de las políticas configuradas para usarlo.