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

# Inscripción por API

Utilice esta API REST usando identidades de Microsoft para la autenticación para inscribir certificados como alternativa a los puntos de conexión SCEP que requieren la autenticación de estilo SCEP.

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

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

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

## Requisitos previos

### 1. Service Principal

{% stepper %}
{% step %}

### Registro de aplicación

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

{% step %}

### Permisos de API

#### CSR.Request.Db

Asigna 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*** del ***Aplicación empresarial*** del registro de aplicación que creamos en el paso anterior. Ten 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, puedes navegar a *Permisos de API* y agregar un permiso de *los permisos que usa tu 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 la API de SCEPman para la autenticación.

El permiso se puede agregar 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

Crea un secreto de cliente en "Certificates & Secrets." El secreto de cliente se utilizará 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 del certificado*

Configure el servicio de aplicaciones de SCEPman para aceptar certificados de cliente mTLS. En la blade de Configuración de la sección de Ajustes, verifique que el modo de certificado de cliente en Certificados de cliente entrantes 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 establezca el modo de certificado de cliente en Requerir o Permitir, ya que eso rompería el funcionamiento normal de SCEPman en los puntos de conexión SCEP.

#### Variables de entorno

Para poder usar este escenario, debe 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 el registro y la renovación de certificados*

Establezca 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 del certificado*

Establezca 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 del certificado*

Establezca esta variable en una lista separada por comas de tipos de certificado que desea permitir renovar. Consulte la documentación enlazada de la variable para obtener una lista de los tipos de certificado posibles.

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, para que pueda enumerarlos y revocarlos cómodamente mediante el componente Certificate Master.

Una forma cómoda de enviar esas solicitudes es nuestro módulo de PowerShell SCEPmanClient:

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

## Otros ejemplos

Consulte nuestra [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 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/api-certificates/api-enrollment.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.
