# Cliente Linux gerenciado pelo Intune

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

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

Este método pode ser usado para inscrever certificados para utilizadores e dispositivos geridos pelo Intune.

Neste caso, o Intune irá enviar um script para utilizar a SCEPman REST API, que por sua vez irá inscrever um novo certificado ou renovar um já existente.

O nosso developer Christoph apresentou esta funcionalidade e alguns detalhes de contexto no Workplace Ninja Usergroup Germany:

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

## Pré-requisitos

### 1. Inscrição de Autoatendimento

### 2. Definiçõ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 associada para inscrever o 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 o verificar regularmente e tentar uma renovação caso o limiar seja atingido.

Embora o script seja normalmente executado passando os parâmetros no terminal, teremos de modificar algumas partes dele para ser implementado através do Intune.

Localize a parte do script que atribui os argumentos passados no terminal à variável e ajuste-os às 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

# Além disso, 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 de aplicativo no seu ambiente.

O usuário verá a caixa de diálogo de consentimento desejada e depois poderá 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 será tentada a sua renovação. 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 os quais o certificado precisará estar prestes a expirar para que o script inicie 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 inicialmente um certificado ou renovar um certificado, se este já existir e estiver prestes a expirar.

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

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

{% hint style="warning" %}
Se estiver a inscrever ou a renovar um certificado de dispositivo, o DeviceId será obtido de *\~/.config/intune/registration.toml* e o utilizador autenticado terá de corresponder ao proprietário do objeto no [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 a entrada de uma senha, portanto a criptografia foi omitida para permitir a renovação automática).
* Se você estiver renovando certificados protegidos por senha do Certificate Master, precisará informar essa senha para renová-los.

## Implementar Script

Usando o Intune, podemos implementar o script modificado com um agendamento para inscrever inicialmente um certificado com os parâmetros fornecidos e verificar regularmente se precisa de ser renovado.

Adicione uma nova implementação de script Linux e certifique-se de definir o ***Contexto de execução*** para ***Utilizador*** e carregue ou cole o conteúdo do script bash modificado que criou na secção anterior.

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

{% hint style="info" %}
O utilizador será solicitado a iniciar sessão na aplicação Azure CLI na primeira execução, uma vez que é necessário autenticar-se.&#x20;
{% endhint %}
