# Configuración general

Para permitir que SCEPman gestione correctamente las solicitudes SOAP entrantes, necesitamos seguir algunos pasos:

{% stepper %}
{% step %}

### Dominio personalizado y BaseUrl

Para una autenticación correcta con SCEPman, asegúrese de que un dominio personalizado que utilice un `registro A` apunte al App Service. De lo contrario, el cliente no podrá solicitar un ticket Kerberos válido al controlador de dominio.

{% hint style="info" %}
El dominio personalizado no tiene que parecerse al FQDN de su dominio de AD. Así que tener un dominio `ad.contoso.local` no significa que necesite un dominio personalizado idéntico o similar para SCEPman.

Consulte el siguiente problema conocido sobre [WS\_E\_ENDPOINT\_ACCESS\_DENIED](#ws_e_endpoint_access_denied) para obtener más información sobre esto.
{% endhint %}

Asegúrese de que SCEPman esté configurado para ser accesible mediante un dominio personalizado:

{% content-ref url="../../configuracion-de-azure/custom-domain" %}
[custom-domain](https://docs.scepman.com/es/configuracion-de-azure/custom-domain)
{% endcontent-ref %}

El mismo requisito también se aplica después de la solicitud inicial de directiva (listar las plantillas de certificado) para inscribir certificados. Para permitir una autenticación correcta, asegúrese de que la [AppConfig:BaseUrl](https://docs.scepman.com/es/configuracion-de-scepman/application-settings/basics#appconfig-baseurl) variable coincida con su dominio personalizado o use la dedicada [AppConfig:ActiveDirectory:BaseUrl](https://docs.scepman.com/es/configuracion-de-scepman/application-settings/active-directory/general#appconfig-activedirectory-baseurl) configuración si prefiere acceder al endpoint de AD en una Url diferente a la de sus otros endpoints de SCEPman.
{% endstep %}

{% step %}

### Crear Service Principal

Usa el `New-SCEPmanADPrincipal` cmdlet del módulo SCEPman PowerShell para crear el service principal en su dominio local de Active Directory. También exportará un keytab de esta cuenta y lo cifrará con el certificado CA de SCEPman.

Puede ejecutar este comando en un controlador de dominio o en un servidor unido al dominio que tenga instalado el [`RSAT-AD-Tools`](#user-content-fn-1)[^1] característica. También necesitará los siguientes permisos en la OU en la que desea crear el principal:

En la propia OU:

* Crear objetos de equipo

En objetos de equipo descendientes:

* Restablecer contraseña
* Escribir `msDS-SupportedEncryptionTypes`
* Escribir `servicePrincipalName`
* Escribir `userPrincipalName`

La variante a continuación también requiere acceso de red HTTPS saliente a su instancia de SCEPman.

{% hint style="info" %}
Si su equipo con acceso a un Controlador de Dominio no tiene acceso a la red, existen variantes del CMDlet que funcionan sin él, pero requieren cierta preparación adicional, como descargar el certificado CA de SCEPman y copiar la CA a la máquina que ejecuta el CMDlet.
{% endhint %}

{% code overflow="wrap" lineNumbers="true" expandable="true" %}

```powershell
Install-Module SCEPman -Force
New-SCEPmanADPrincipal -Name "SCEPmanAD" -AppServiceUrl "scepman.contoso.com" -OU "OU=Example,DC=contoso,DC=local"
```

{% endcode %}

Ejecutar este comando realizará lo siguiente:

1. Crear un objeto de equipo en la `OU=Example,DC=contoso,DC=com` Unidad Organizativa.
2. Descargar el certificado CA de SCEPman para cifrar el keytab en el paso 5.
3. Agregar un nombre principal de servicio (SPN) al objeto de equipo.
4. Crear un keytab para la cuenta de equipo que contenga la clave de cifrado basada en la contraseña del equipo.
5. Cifrar el keytab con el certificado CA de SCEPman, de modo que solo SCEPman pueda descifrarlo de nuevo usando la clave privada de la CA.
6. Generar el keytab cifrado, para que pueda transferirse a la configuración de SCEPman.

La salida codificada en Base64 debe añadirse después a la variable de entorno **AppConfig:ActiveDirectory:Keytab** de su SCEPman App Service.
{% endstep %}

{% step %}

### Agregar Keytab a SCEPman

La integración puede habilitarse fácilmente agregando las siguientes variables de entorno en el **SCEPman App Service.** Según su caso de uso, habilite una o más de las plantillas de certificado disponibles:

*Ejemplo con todas las plantillas de certificado habilitadas:*

<table data-full-width="true"><thead><tr><th>Configuración</th><th>Valor</th></tr></thead><tbody><tr><td>AppConfig:ActiveDirectory:Keytab</td><td>Keytab codificado en Base64 para el service principal creado en el Paso 1</td></tr><tr><td>AppConfig:ActiveDirectory:Computer:Enabled</td><td>verdadero</td></tr><tr><td>AppConfig:ActiveDirectory:User:Enabled</td><td>verdadero</td></tr><tr><td>AppConfig:ActiveDirectory:DC:Enabled</td><td>verdadero</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

## Problemas conocidos

### WS\_E\_ENDPOINT\_ACCESS\_DENIED

```
Error: WS_E_ENDPOINT_ACCESS_DENIED 
Hex: 0x803d0005
Dec: -2143485947
```

Se sabe que este error ocurre durante la validación del servidor CEP cuando está utilizando los *predeterminados* URI del Azure App Service. Este error es causado por el protocolo Kerberos al solicitar un nombre principal de servicio del registro A del servicio al que se accederá. En el caso de los dominios predeterminados de App Service, por ejemplo `contoso.azurewebsites.net` es solo un CNAME y apunta a un registro A similar a:

```
waws-prod-ab1-234-c56d.westeurope.cloudapp.azure.com
```

Como no se garantiza que este registro A de un host de infraestructura sea coherente en el futuro, agregar un nombre principal de servicio para este host **no se recomienda**.

Asegúrese de agregar un dominio personalizado a su app service y use un registro A dentro de su proveedor de DNS para apuntarlo al app service en lugar de un CNAME.

{% content-ref url="../../configuracion-de-azure/custom-domain" %}
[custom-domain](https://docs.scepman.com/es/configuracion-de-azure/custom-domain)
{% endcontent-ref %}

### ERROR\_INVALID\_PARAMETER

```
Error: ERROR_INVALID_PARAMETER
Hex: 0x80070057
Dec: -2147024809
```

Este error ocurre durante el registro del servidor CEP si introduce un URI que comienza con `http://`. Asegúrese de registrar un servidor CEP usando solo `https://`

### ERROR\_ACCESS\_DENIED

```
Error: ERROR_ACCESS_DENIED
Hex: 0x80070005
Dec: -2147024891
```

Al registrar un servidor CEP en contexto de máquina, el usuario que actúa (la cuenta que inició `gpmc.msc`) debe ser miembro del grupo local Administradores en el equipo mientras edita la GPO.

Asegúrese de iniciar `gpmc.msc` con permisos elevados en este caso.

[^1]: {% code fullWidth="true" %}

    ```powershell
    Install-WindowsFeature -Name RSAT-AD-Tools
    ```

    {% endcode %}
