> 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/gestion-de-certificados/api-certificates/api-enrollment.md).

# Inscripción mediante API

Usa esta API REST con Identidades de Microsoft para autenticación para inscribir certificados como alternativa a los puntos de conexión SCEP que requieren el estilo de autenticación SCEP.

{% hint style="info" %}
Esta funcionalidad requiere la versión **2.3.689** o superior.
{% endhint %}

{% hint style="warning" %}
Solo SCEPman Enterprise Edition
{% endhint %}

SCEPman cuenta con una API REST para inscribir certificados. Esta es una alternativa a los endpoints SCEP que requieren el estilo de autenticación SCEP, mientras que la API REST utiliza Microsoft Identities para la autenticación. El protocolo también es mucho más simple que SCEP.

## Requisitos previos

### 1. Service Principal

{% stepper %}
{% step %}

### Registro de aplicación

Crear un nuevo *Registro de aplicación* que describa su caso de uso. Su aplicación se autenticará como esta aplicación frente a SCEPman.
{% endstep %}

{% step %}

### Permisos de API

#### CSR.Request.Db

Asigne los permisos requeridos ejecutando el **Register-SCEPmanApiClient** cmdlet del módulo PowerShell de SCEPman.

Ejemplo:

```powershell
Register-SCEPmanApiClient -ServicePrincipalId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

*ServicePrincipalId*

El ***ID de objeto*** de la complementaria ***Aplicación empresarial*** del registro de aplicación que creamos en el paso anterior. Tenga en cuenta que esto no se refiere a la Aplicación empresarial normalmente llamada SCEPman-api, que identifica al propio SCEPman.

Para asignar manualmente este permiso, puede ir a *Permisos de API* y añadir un permiso de los *permisos que usa su organización*. Asigna el ***CSR.Request.Db*** permiso de ***SCEPman-api*** como un *permiso de aplicación*.

#### Application.Read.All (Opcional)

*Service Principals* también requerirá el permiso de Graph ***Application.Read.All*** para permitir la recuperación automática del ámbito de API de SCEPman para la autenticación.

El permiso puede añadirse manualmente así:

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FDcTPqAoP7o03QirKhyMH%2Fimage.png?alt=media&amp;token=7233bb9a-a9c1-49aa-9cbc-21f90931c59c" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Secreto de cliente

Cree un secreto de cliente en "Certificates & Secrets". El secreto de cliente se usará como contraseña para autenticar la aplicación más adelante.
{% endstep %}
{% endstepper %}

### 2. Configuración de App Service

#### Configuración

*Requerido para la renovación de certificados*

Configura tu App Service de SCEPman para aceptar certificados de cliente mTLS. En el panel Configuration de la sección Settings, verifica que el modo de certificado de cliente en Incoming client certificates esté configurado en ***Usuario interactivo opcional***.

<figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2F9UeFFxwefnV8Cb7Zz14u%2Fimage.png?alt=media&amp;token=210ea9b7-ecd5-4b2b-9641-22447246e718" alt=""><figcaption></figcaption></figure>

No establezcas el modo de certificado de cliente en Require o Allow, ya que eso rompería el funcionamiento normal de SCEPman en los endpoints SCEP.

#### Variables de entorno

Para poder hacer uso de este escenario, debes establecer las siguientes variables de entorno en el servicio de aplicaciones de SCEPman.

#### [AppConfig:DbCSRValidation:Enabled](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-enabled)

*Requerido para la inscripción y renovación de certificados*

Establece esta variable en ***true*** para habilitar la validación de las solicitudes de firma de certificados (CSR).

#### [AppConfig:DbCSRValidation:AllowRenewals](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-allowrenewals)

*Requerido para la renovación de certificados*

Establece esta variable en ***true*** para habilitar las renovaciones de certificados.

#### [AppConfig:DbCSRValidation:ReenrollmentAllowedCertificateTypes](https://docs.scepman.com/advanced-configuration/application-settings/dbcsr-validation#appconfig-dbcsrvalidation-reenrollmentallowedcertificatetypes)

*Requerido para la renovación de certificados*

Establece esta variable en una lista de tipos de certificado separados por comas para permitir la renovación. Consulta la documentación enlazada de la variable para obtener una lista de posibles tipos de certificado.

Ejemplo: ***Static,IntuneUser,IntuneDevice***

## Inscripción de certificados

Después de haber preparado los prerrequisitos, puede hacer POST de un PKCS#10/CMS a su SCEPman con la ruta HTTP *api/csr*. La respuesta HTTP será el certificado recién emitido en codificación DER.

SCEPman almacenará automáticamente todos los certificados emitidos en su Storage Account, por lo que puede listarlos y revocarlos cómodamente mediante el componente Certificate Master.

Un método práctico para enviar esas solicitudes es nuestro módulo de PowerShell SCEPmanClient:

{% content-ref url="/pages/53a88a3274a2c93bbc35ad73bc9abe307ee6d80f" %}
[SCEPmanClient](/es/gestion-de-certificados/api-certificates/scepmanclient.md)
{% endcontent-ref %}

## Otros ejemplos

Consulte nuestro [Biblioteca de ejemplos de código abierto en GitHub](https://github.com/scepman/csr-request) para saber cómo usar la API REST de SCEPman.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.scepman.com/es/gestion-de-certificados/api-certificates/api-enrollment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
