> For the complete documentation index, see [llms.txt](https://docs.scepman.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scepman.com/es/administracion-de-certificados/active-directory/general-configuration.md).

# Configuración general

Para permitir que SCEPman gestione correctamente las solicitudes SOAP entrantes, debemos seguir unos pasos:

{% stepper %}
{% step %}

### dominio personalizado

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

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

Consulte el problema conocido a continuación sobre [WS\_E\_ENDPOINT\_ACCESS\_DENIED](/es/administracion-de-certificados/active-directory/general-configuration.md#ws_e_endpoint_access_denied) para obtener más información.
{% endhint %}

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

{% content-ref url="/pages/f95d8259cccc4f926cc78e47a0c8ee8643f454ef" %}
[Dominio personalizado](/es/configuracion-de-azure/custom-domain.md)
{% endcontent-ref %}
{% endstep %}

{% step %}

### BaseUrl

Para permitir autenticaciones correctas, asegúrese de que la [AppConfig:BaseUrl](/es/configuracion-de-scepman/application-settings/basics.md#appconfig-baseurl) variable coincida con su dominio personalizado.

| Configuración     | Valor                        |
| ----------------- | ---------------------------- |
| AppConfig:BaseUrl | Ejemplo: scepman.contoso.com |

**Como alternativa**, si prefiere acceder al extremo de AD usando una URL diferente de sus otros extremos de SCEPman, use la configuración dedicada [AppConfig:ActiveDirectory:BaseUrl](/es/configuracion-de-scepman/application-settings/active-directory/general.md#appconfig-activedirectory-baseurl) configuración.

| Configuración                     | Valor                           |
| --------------------------------- | ------------------------------- |
| AppConfig:ActiveDirectory:BaseUrl | Ejemplo: adendpoint.contoso.com |
| {% endstep %}                     |                                 |

{% step %}

### Crear Service Principal

Use el `New-SCEPmanADPrincipal` Cmdlet del módulo PowerShell de SCEPman 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 Domain Controller o en un servidor unido al dominio que tenga instalada la `RSAT-AD-Tools` 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 los objetos de equipo descendientes:

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

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

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

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

Al ejecutar este comando se realizará lo siguiente:

1. Crear un objeto de equipo en la `OU=Example,DC=contoso,DC=local` unidad organizativa.
2. Descargar el certificado CA de SCEPman para cifrar el keytab en el paso 5.
3. Agregar un nombre de Service Principal (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, para que solo SCEPman pueda descifrarlo de nuevo usando la clave privada de la CA.
6. Generar la salida del keytab cifrado, para que pueda transferirse a la configuración de SCEPman.

A continuación, la salida codificada en Base64 debe agregarse a la variable de entorno **AppConfig:ActiveDirectory:Keytab** en su App Service de SCEPman.
{% endstep %}

{% step %}

### Agregar el Keytab a SCEPman

La integración puede habilitarse fácilmente agregando las siguientes variables de entorno en el **App Service de SCEPman.** 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:*

| Configuración                                                                                                                                                           | Valor                                                                                               |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [AppConfig:ActiveDirectory:Keytab](appconfig:ActiveDirectory:Keytab)                                                                                                    | keytab codificado en Base64 para el Service Principal creado en [Paso 3](#create-service-principal) |
| [AppConfig:ActiveDirectory:Computer:Enabled](/es/configuracion-de-scepman/application-settings/active-directory/computer-template.md#appconfig-activedirectory-enabled) | true                                                                                                |
| [AppConfig:ActiveDirectory:User:Enabled](/es/configuracion-de-scepman/application-settings/active-directory/user-template.md#appconfig-activedirectory-enabled)         | true                                                                                                |
| [AppConfig:ActiveDirectory:DC:Enabled](/es/configuracion-de-scepman/application-settings/active-directory/dc-template.md#appconfig-activedirectory-enabled)             | true                                                                                                |
| [AppConfig:ActiveDirectory:RdpServer:Enabled](/es/configuracion-de-scepman/application-settings/active-directory/rdp-template.md#appconfig-activedirectory-enabled)     | true                                                                                                |
| {% endstep %}                                                                                                                                                           |                                                                                                     |
| {% endstepper %}                                                                                                                                                        |                                                                                                     |

## Problemas conocidos

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

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

Se sabe que este error se produce durante la validación del servidor CEP cuando está usando las *predeterminadas* URI del Azure App Service. Este error se debe a que el protocolo Kerberos solicita un nombre de Service Principal del `registro A` del servicio al que se va a acceder. En el caso de los dominios predeterminados del app service, por ejemplo `contoso.azurewebsites.net` es un `CNAME` y apunta a un `registro A` similar a:

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

Dado que este `registro A` del host de infraestructura no está garantizado que se mantenga consistente en el futuro, agregar un nombre de Service Principal para este host es **no recomendado**.

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

{% content-ref url="/pages/f95d8259cccc4f926cc78e47a0c8ee8643f454ef" %}
[Dominio personalizado](/es/configuracion-de-azure/custom-domain.md)
{% endcontent-ref %}

### ERROR\_INVALID\_PARAMETER

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

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

### ERROR\_ACCESS\_DENIED

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

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

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.scepman.com/es/administracion-de-certificados/active-directory/general-configuration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
