# Cliente Linux Gerenciado pelo Intune

{% hint style="info" %}
Aplicável à versão 2.9 do SCEPman e posteriores
{% endhint %}

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

Este método pode ser usado para inscrever certificados para usuários e dispositivos gerenciados pelo Intune.

O Intune, neste caso, irá enviar um script para aproveitar a API REST do SCEPman que, por sua vez, irá inscrever um novo certificado ou renovar um já existente.

Nosso desenvolvedor Christoph apresentou este recurso e alguns detalhes de fundo no Workplace Ninja Usergroup Germany:

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

## Pré-requisitos

### 1. Inscrição de Autoatendimento

### 2. Configurações do App Service

Este cenário inscreverá certificados do tipo ***IntuneUser*** e ***IntuneDevice*** dependendo da sua escolha.

### **3. Pré-requisitos do Cliente**

#### [**Inscrição no Intune**](https://learn.microsoft.com/en-us/mem/intune/user-help/enroll-device-linux)

Siga a documentação vinculada para inscrever seu cliente Linux no Intune.&#x20;

## Script de Inscrição e Renovação

O [enrollrenewcertificate.sh](https://github.com/scepman/csr-request/blob/main/enroll-certificate/enrollrenewcertificate.sh) o script será usado para receber inicialmente um certificado, bem como para verificá‑lo em uma programação regular e tentar uma renovação caso o limite seja alcançado.

Embora o script geralmente seja operado passando os parâmetros no terminal, precisaremos modificar algumas partes dele para serem implantadas via Intune.

Localize a parte do script que atribui os argumentos passados pelo terminal às variáveis e ajuste‑as conforme suas necessidades:

Exemplo de configuração:

```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

# Adicionalmente adicione as seguintes variáveis
CERT_TYPE="user"
CERT_COMMAND="auto"
```

#### APPSERVICE\_URL

A URL do serviço de aplicativo SCEPman.

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

#### API\_SCOPE

Este é o escopo da API que você pode criar no ***SCEPman-api*** registro do aplicativo em seu ambiente.

O usuário verá a caixa de diálogo de consentimento desejada e poderá então usar a funcionalidade de autoatendimento.

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

<figure><img src="https://3802289327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FKWdXwi8JnKGy27tU384e%2Fimage.png?alt=media&#x26;token=5173dc4b-8981-40e9-8875-e932078c6667" alt=""><figcaption></figcaption></figure>

#### CERT\_DIR

O diretório onde o certificado será criado ou tentado renovar. A chave privada e o certificado raiz também serão colocados aqui.

*Exemplo: \~/certs/*

#### CERT\_NAME

O nome do arquivo (sem extensão) do certificado que será criado ou lido para renovação.

*Exemplo: "myCertificate"*

#### KEY\_NAME

O nome do arquivo da chave privada que será criado ou lido para renovação.

*Exemplo: "myKey"*

#### RENEWAL\_THRESHOLD\_DAYS

A quantidade de dias para o certificado expirar para que o script comece o processo de renovação.

*Exemplo: 30*

#### CERT\_TYPE

O tipo de certificado que será inscrito.

*Pode ser "user" ou "device"*

#### CERT\_COMMAND

Isto define o comportamento do script em relação à inscrição e renovação:

**"auto"** irá criar um certificado inicialmente ou renovar um certificado se ele já existir e estiver prestes a expirar.

**"renewal"** irá renovar um certificado se ele estiver prestes a expirar, mas não criará um certificado inicialmente.

**"initial"** irá apenas inscrever um certificado, mas não renovará um já existente.

{% hint style="warning" %}
Se você estiver inscrevendo ou renovando um certificado de dispositivo, o DeviceId será recuperado de *\~/.config/intune/registration.toml* e o usuário autenticado precisará corresponder ao proprietário do objeto na configuração [DeviceDirectory](https://docs.scepman.com/advanced-configuration/application-settings/intune-validation#appconfig-intunevalidation-devicedirectory).
{% endhint %}

### Considerações

* Este script não criptografa as chaves geradas (isso requer entrada de frase de segurança, então a criptografia foi omitida para permitir renovação automática).
* Se você estiver renovando certificados protegidos por frase de segurança do Certificate Master, precisará inserir essa frase de segurança para renová-los.

## Implantar Script

Usando o Intune, podemos implantar o script modificado em uma programação para inscrever inicialmente um certificado com os parâmetros fornecidos e verificar regularmente se ele precisa ser renovado.

Adicione uma nova implantação de script para Linux e certifique‑se de definir o ***Contexto de execução*** para ***Usuário*** e faça o upload ou cole o conteúdo do script bash modificado que você criou na seção anterior.

Ajuste a ***Frequência de execução*** de acordo com seu limiar de renovação.

{% hint style="info" %}
O usuário será solicitado a entrar no aplicativo Azure CLI na primeira execução, pois é necessário autenticar.&#x20;
{% endhint %}
