# Autenticación basada en certificados para Entra ID

La autenticación basada en certificados ofrece una sólida alternativa de seguridad para acceder a recursos de Entra ID. Este artículo proporciona una guía paso a paso sobre cómo configurar este método, utilizando SCEPman como la autoridad certificadora para agilizar la gestión de certificados.

## Habilitar SCEPman CRL

{% content-ref url="../../../administracion-de-certificados/manage-certificates/enabling-crl" %}
[enabling-crl](https://docs.scepman.com/es/administracion-de-certificados/manage-certificates/enabling-crl)
{% endcontent-ref %}

Entra ID requerirá una CRL para validar los certificados. Asegúrate de establecer las siguientes variables de entorno en tu servicio de aplicación para que la CRL esté disponible:

[AppConfig:CRL:RequestToken](https://docs.scepman.com/scepman-configuration/application-settings/crl#appconfig-crl-requesttoken)

Establézcalo en una cadena personalizada que se utilizará en la URL para permitir que se descargue la CRL.

[AppConfig:CRL:Source](https://docs.scepman.com/scepman-configuration/application-settings/crl#appconfig-crl-source)

Esta es la fuente a partir de la cual SCEPman genera la CRL. Asegúrate de que esto esté establecido en `Storage`

## Configurar Entra ID

{% stepper %}
{% step %}

### Crear PKI en Entra Security Center

En Entra ID, navega a **Protección** > **Centro de seguridad** > [**Infraestructura de clave pública**](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/SecurityMenuBlade/~/PublicKeyInfrastructure/menuId/SecurityCenter/fromNav/)**,** haz clic en *Crear PKI* y selecciona un nombre para mostrar coincidente.
{% endstep %}

{% step %}

### Agregar Autoridad de Certificación

Navega hasta la PKI recién creada y haz clic en *Agregar autoridad certificadora* para cargar el certificado de la CA de tu instancia de SCEPman. Este certificado se puede obtener en su página de inicio, en el menú del lado derecho (*Obtener certificado de CA*).

Para la URL de la lista de revocación de certificados puedes introducir la URL en el siguiente formato:

```
https://scepman.contoso.com/crl/pem/{YourCrlRequestToken}
```

{% hint style="warning" %}
Asegúrate de incluir la `/pem/` ruta en tu URL, ya que Entra podría tener problemas de compatibilidad al usar el formato DER predeterminado.
{% endhint %}

Ahora deberías tener una autoridad certificadora similar a la siguiente:

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FJ8NIUb0d7eyJ6VLQboOr%2Fimage.png?alt=media&#x26;token=9db3a6e0-f62a-4b5d-9225-3fd9df3d00cd" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Habilitar CBA en Métodos de autenticación

Con la CA en su lugar, podemos continuar y habilitar la autenticación basada en certificados en **Protección** > **Métodos de autenticación** > [**Políticas**](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods/fromNav/)

Ve a la *autenticación basada en certificados* política, actívala y permite que todos los usuarios o grupos específicos usen este método:

![](https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FA5JQWoky2wn9xy7BK384%2Fimage.png?alt=media\&token=be93a02a-0a8d-4e54-a816-d003d6b05c41)
{% endstep %}

{% step %}

### Configurar la autenticación basada en certificados

Cambia a la pestaña *Configurar* y revisa las opciones:

**Requerir validación de CRL**: ✅

Esta es una parte esencial de la seguridad que ofrece este método, ya que la CRL indicará a Entra ID qué certificados han sido revocados y, por lo tanto, no se permitirá su autenticación.

**Sugerencias del emisor** : ✅

Al habilitar las sugerencias del emisor, solo se mostrarán durante la autenticación los certificados emitidos por la CA configurada.

Deja la configuración predeterminada para el enlace de autenticación y continúa creando una regla para permitir la autoridad certificadora creada anteriormente:

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FE8UtFEErL3Into71bGui%2Fimage.png?alt=media&#x26;token=17f860ed-2f4d-492d-b574-dd56f7cff9b4" alt=""><figcaption></figcaption></figure>

**Fortaleza de autenticación**:

Esto define el peso de la autenticación mediante esta CA. Si seleccionas *autenticación de factor único*, es posible que se necesite otro método de autenticación dependiendo de la aplicación a la que se acceda.

**Enlace de afinidad**:

El enlace de afinidad define los detalles requeridos en el certificado, que deben coincidir con los datos correspondientes en el objeto de usuario para que se permita la autenticación. Como actualmente SCEPman no puede agregar ninguna información del certificado en el objeto de usuario, recomendamos establecer esto en **Low** a menos que configures la información requerida manualmente.

{% hint style="warning" %}
La configuración de la fortaleza de autenticación y del enlace de afinidad depende en gran medida del caso de uso específico y del tipo de cuentas que quieras proteger con este método de autenticación. En caso de que quieras proteger usuarios con altos privilegios, deberías considerar agregar manualmente la información del certificado en sus cuentas de usuario para una alta afinidad.
{% endhint %}
{% endstep %}
{% endstepper %}

## Uso

Con la configuración establecida, un usuario puede seleccionar *Usar un certificado o tarjeta inteligente*:

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FadOI8hZm2kOoKAOvi0vq%2Fimage.png?alt=media&#x26;token=bba5bfbd-6577-48b6-adc7-66a49edbdf35" alt=""><figcaption></figcaption></figure>

Lo que a su vez solicitará el certificado que se utilizará para la autenticación.

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FsNh5rtPY52gnNZCkq9X4%2Fimage.png?alt=media&#x26;token=85568bc1-3daa-4691-827d-f002b0701bf2" alt=""><figcaption></figcaption></figure>

## Agregar manualmente la asignación de certificados para un enlace de alta afinidad

En caso de que quieras habilitar CBA solo usando enlace de alta afinidad, puedes introducir manualmente los detalles del certificado en la información autorizada del usuario.

Navega hasta las propiedades de los usuarios en Entra ID, edítalas y ahora edita los **ID de usuario de certificado**:

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FyGzQlmHC4nv6yzEKBwZG%2Fimage.png?alt=media&#x26;token=9ab1a272-df75-46c0-b2ca-51c18420e823" alt=""><figcaption></figcaption></figure>

El formato requerido de estos ID depende de los campos que se hayan configurado en el enlace de usuario de los métodos de autenticación. Se puede encontrar una lista de formatos en el correspondiente [documentación de Microsoft](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-certificate-based-authentication-certificateuserids#supported-patterns-for-certificate-user-ids).

Ejemplo para el *SHA1PublicKey* enlace:

```
X509:<SHA1-PUKEY>9600e49d740011187e5c734bab4a3d5d18d2a87a
```

Esto utiliza la huella digital del certificado para asignar fuertemente la identidad del usuario.
