# Cliente Linux administrado por Intune

{% hint style="info" %}
Aplicable a la versión 2.9 y posteriores de SCEPman
{% endhint %}

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

Este método se puede usar para inscribir certificados para usuarios y dispositivos que son administrados por Intune.

En este caso, Intune enviará un script para aprovechar la API REST de SCEPman, que a su vez inscribirá un nuevo certificado o renovará uno ya existente.

Nuestro desarrollador Christoph presentó esta funcionalidad y algunos detalles de contexto en el Workplace Ninja Usergroup Germany:

{% embed url="<https://www.youtube.com/watch?v=dQcVl1vS3lg>" %}

## Requisitos previos

### 1. Inscripción de autoservicio

### 2. Configuración de App Service

Este escenario inscribirá certificados del tipo ***IntuneUser*** y ***IntuneDevice*** dependiendo de tu elección.

### **3. Requisitos del cliente**

#### [**Inscripción en Intune**](https://learn.microsoft.com/en-us/mem/intune/user-help/enroll-device-linux)

Sigue la documentación enlazada para inscribir tu cliente Linux en Intune.&#x20;

## Script de inscripción y renovación

El [enrollrenewcertificate.sh](https://github.com/scepman/csr-request/blob/main/enroll-certificate/enrollrenewcertificate.sh) El script se usará para obtener inicialmente un certificado, así como para comprobarlo con un intervalo regular e intentar una renovación en caso de que se alcance el umbral.

Aunque normalmente el script se ejecuta pasando los parámetros en la terminal, necesitaremos modificar algunas partes para implementarlo mediante Intune.

Localiza la parte del script que asigna los argumentos de terminal recibidos a la variable y ajústalos a tus necesidades:

Ejemplo de configuración:

```bash
APPSERVICE_URL="https://scepman.contoso.net/"
API_SCOPE="api://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll"
CERT_DIR=~/certs
CERT_NAME="myCertificate"
KEY_NAME="myKey"
RENEWAL_THRESHOLD_DAYS=30

# Además, añade las siguientes variables
CERT_TYPE="user"
CERT_COMMAND="auto"
```

#### APPSERVICE\_URL

La URL del servicio de aplicación SCEPman.

*Ejemplo: "<https://scepman.contoso.net/>"*

#### API\_SCOPE

Este es el ámbito de API que puedes crear en el ***SCEPman-api*** registro de aplicación en tu entorno.

Al usuario se le presentará el cuadro de diálogo de consentimiento deseado y después podrá usar la funcionalidad de autoservicio.

*Ejemplo: "api://*&#x62;7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enrol&#x6C;*"*

<figure><img src="/files/0eff7fc9ac87dce000505b1fc3aff142cd0f1429" alt=""><figcaption></figcaption></figure>

#### CERT\_DIR

El directorio donde se creará el certificado o donde se intentará renovarlo. La clave privada y el certificado raíz también se colocarán aquí.

*Ejemplo: \~/certs/*

#### CERT\_NAME

El nombre de archivo (sin extensión) del certificado que se creará o se leerá para la renovación.

*Ejemplo: "myCertificate"*

#### KEY\_NAME

El nombre de archivo de la clave privada que se creará o se leerá para la renovación.

*Ejemplo: "myKey"*

#### RENEWAL\_THRESHOLD\_DAYS

La cantidad de días que deben quedar para que venza el certificado para que el script comience el proceso de renovación.

*Ejemplo: 30*

#### CERT\_TYPE

El tipo de certificado que se inscribirá.

*Puede ser "user" o "device"*

#### CERT\_COMMAND

Esto define el comportamiento del script en relación con la inscripción y la renovación:

**"auto"** creará un certificado inicialmente o renovará un certificado si ya existe y está a punto de expirar.

**"renewal"** renovará un certificado si está a punto de expirar, pero no creará inicialmente un certificado.

**"initial"** solo inscribirá un certificado, pero no renovará uno existente.

{% hint style="warning" %}
Si estás inscribiendo o renovando un certificado de dispositivo, el DeviceId se obtendrá desde *\~/.config/intune/registration.toml* y el usuario autenticado deberá coincidir con el propietario del objeto en el [DeviceDirectory](https://docs.scepman.com/advanced-configuration/application-settings/intune-validation#appconfig-intunevalidation-devicedirectory).
{% endhint %}

### Consideraciones

* Este script no cifra las claves generadas (esto requiere la introducción de una frase de contraseña, por lo que se ha omitido el cifrado para permitir la renovación automática).
* Si estás renovando certificados protegidos con frase de contraseña de Certificate Master, deberás introducir esta frase de contraseña para poder renovarlos.

## Implementar script

Usando Intune, podemos implementar el script modificado según una programación para inscribir inicialmente un certificado con los parámetros dados y comprobar periódicamente si necesita renovarse.

Añade una nueva implementación de script de Linux y asegúrate de establecer el ***Contexto de ejecución*** a ***Usuario*** y luego carga o pega el contenido del script bash modificado que creaste en la sección anterior.

Ajusta la ***Frecuencia de ejecución*** de acuerdo con tu umbral de renovación.

{% hint style="info" %}
Se pedirá al usuario que inicie sesión en la aplicación Azure CLI en la primera ejecución, ya que es necesario autenticarse.&#x20;
{% endhint %}


---

# Agent Instructions: 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:

```
GET https://docs.scepman.com/es/administracion-de-certificados/api-certificates/self-service-enrollment/intune-managed-linux-client.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
