Cliente Linux gerido pelo Intune
apenas na Edição Enterprise do SCEPman
Este método pode ser usado para inscrever certificados para utilizadores e dispositivos geridos pelo Intune.
Neste caso, o Intune enviará um script para utilizar a API REST do SCEPman, que por sua vez irá inscrever um novo certificado ou renovar um já existente.
O nosso programador Christoph apresentou esta funcionalidade e alguns detalhes de contexto no Workplace Ninja Usergroup Germany:
Pré-requisitos
1. Inscrição de autoatendimento
Para inscrever certificados, os utilizadores têm de ser autenticados para verificar a respetiva elegibilidade. Siga este guia para obter instruções passo a passo sobre como configurar isto
2. Definições do App Service
Configuração
Necessário para renovação de certificado
Configure o seu SCEPman App Service para aceitar certificados de cliente mTLS. No painel Configuration da seção Settings, verifique se o Client certificate mode em Incoming client certificates está definido como Utilizador interativo opcional.

Não defina o Client certificate mode como Require ou Allow, pois isso quebraria o funcionamento normal do SCEPman nos endpoints SCEP!
Variáveis de ambiente
Para usar este cenário, você deve definir as seguintes Variáveis de Ambiente no serviço de aplicativo SCEPman.
AppConfig:DbCSRValidation:Enabled
Necessário para inscrição e renovação de certificado
Defina esta variável como true para ativar a validação de solicitações de assinatura de certificado (CSRs).
AppConfig:DbCSRValidation:AllowRenewals
Necessário para renovação de certificado
Defina esta variável como true para ativar renovações de certificado.
AppConfig:DbCSRValidation:ReenrollmentAllowedCertificateTypes
Necessário para renovação de certificado
Defina esta variável como uma lista separada por vírgulas de tipos de certificado para os quais você deseja permitir a renovação. Consulte a documentação da variável vinculada para ver uma lista de tipos de certificado possíveis.
Exemplo: Static,IntuneUser,IntuneDevice
Este cenário irá inscrever certificados do tipo IntuneUser e IntuneDevice dependendo da sua escolha.
3. Pré-requisitos do cliente
Os seguintes pré-requisitos devem estar presentes no cliente/host de execução para poder utilizar a API REST de inscrição.
Azure CLI ( versão 2.61 e superior)
O Azure CLI é usado para autenticar o utilizador em processo de inscrição, verificar a sua elegibilidade e obter o token de acesso.
cURL
Usado para enviar o CSR criado para o endpoint da API de inscrição do SCEPman e receber o certificado.
OpenSSL
O OpenSSL é usado para gerar uma chave privada e criar um CSR para inscrever ou renovar um certificado.
Inscrição no Intune
Siga a documentação ligada para inscrever o seu cliente Linux no Intune.
Script de inscrição e renovação
O enrollrenewcertificate.sh O script será usado para obter 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, precisaremos de modificar algumas partes 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:
APPSERVICE_URL
O URL do serviço de aplicações da SCEPman.
Exemplo: "https://scepman.contoso.net/"
API_SCOPE
Este é o âmbito da API que pode criar no SCEPman-api registo da aplicação no seu ambiente.
Ao utilizador será apresentado o diálogo de consentimento desejado e, posteriormente, poderá usar a funcionalidade de autoatendimento.
Exemplo: "api://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll"

CERT_DIR
O diretório onde o certificado será criado ou onde se tentará renová-lo. A chave privada e o certificado raiz também serão colocados aqui.
Exemplo: ~/certs/
CERT_NAME
O nome do ficheiro (sem extensão) do certificado que será criado ou lido para renovação.
Exemplo: "myCertificate"
KEY_NAME
O nome do ficheiro da chave privada que será criado ou lido para renovação.
Exemplo: "myKey"
RENEWAL_THRESHOLD_DAYS
O número de dias em que o certificado terá de 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" criará um certificado inicialmente ou renovará um certificado se ele já existir e estiver prestes a expirar.
"renewal" renovará um certificado se ele estiver prestes a expirar, mas não criará um certificado inicialmente.
"initial" inscreverá apenas um certificado, mas não renovará um existente.
Se você estiver inscrevendo ou renovando um certificado de dispositivo, o DeviceId será obtido a partir de ~/.config/intune/registration.toml e o utilizador autenticado precisará corresponder ao proprietário do objeto no DeviceDirectory.
Considerações
Este script não encripta as chaves geradas (isto requer introdução de frase-passe, pelo que a encriptação foi omitida para permitir a renovação automática.)
Se estiver a renovar certificados protegidos por frase-passe do Certificate Master, terá de introduzir essa frase-passe para os renovar.
Implementar script
Usando o Intune, podemos implementar o script modificado de forma agendada para inscrever inicialmente um certificado com os parâmetros fornecidos e verificar regularmente se ele precisa de ser renovado.
Adicione uma nova implementação de script Linux e certifique-se de definir o contexto de execução para Usuário e faça upload 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.
Última atualização
Isto foi útil?