# Cliente Linux Gerido 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="/files/786cb559882ae9aba7a0dc8902423f3ceee252f3" 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 %}


---

# 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/pt/gestao-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.
