SCEPmanClient

SCEPmanClient é um módulo PowerShell destinado a interagir com a API REST do SCEPman. Sendo independente de plataforma e compatível com o Windows PowerShell v5, você pode usar este módulo para solicitar certificados para todos os casos de uso para os quais a API REST pode ser usada:

  • Emissão automática de certificados de servidor

  • Certificados de cliente para dispositivos não geridos

  • Inscrição de certificados em dispositivos Linux

Instalação

O módulo SCEPmanClient está disponível na Galeria do PowerShell e pode ser instalado usando o seguinte comando:

Install-Module -Name SCEPmanClient
circle-info

Siga o guia da Microsoft sobre como instalar o PowerShell em Linuxarrow-up-right ou MacOSarrow-up-right.

Pré-requisitos

Para que o módulo funcione como esperado, você precisará fazer uma pequena modificação na sua implementação do SCEPman:

1

Adicionar URL da página inicial

Adicione a URL do App Service do SCEPman: Navegue até a Branding & Properties secção do registo da aplicação. Adicione a URL do App Service do SCEPman ao campo URL da página inicial:

Isto é necessário para que o módulo possa procurar automaticamente o ID de cliente do registo da aplicação, que é necessário para a obtenção do token de acesso.

2

Permitir que o Azure PowerShell interaja com o Registo da Aplicação

No Registo da Aplicação, navegue até Expor uma API e crie um escopo personalizado que possa ser usado para autorizar o ID do cliente 1950a258-227b-4e31-a9cf-717495945fc2 (Microsoft Azure PowerShell)

Informações de exemplo para um escopo de API personalizado

Após criar um escopo de API, a aplicação Azure PowerShell pode ser autorizada:

Aplicação Microsoft Azure PowerShell autorizada
3

Ativar o endpoint EST

Permissões

O SCEPman tem diferentes funções que permitirão que diferentes tipos de certificados sejam inscritos. Pode atribuí-las na SCEPman-api Aplicação Empresarial (nome predefinido):

CSR DB Requesters

Esta função, por predefinição, só pode ser atribuída a principais de serviço (por exemplo, Registos de Aplicações) e permite solicitar certificados com assuntos e utilizações arbitrários.

Inscrição por APIchevron-right

CSR Self Service

Esta função pode ser atribuída a utilizadores e permitirá que os certificados sejam inscritos com as seguintes restrições:

  • Apenas EKU ClientAuth

  • Os certificados de utilizador precisam corresponder ao UPN do utilizador no assunto ou no nome alternativo do assunto UPN

  • Os certificados de dispositivo precisam de ter um assunto ou SAN que o SCEPman possa mapear para um objeto de dispositivo pertencente ao utilizador autenticado

Inscrição de Autoatendimentochevron-right

Exemplos de utilização

Usar autenticação do Azure

Autenticação interativa

Ao solicitar um novo certificado sem especificar o mecanismo de autenticação, o utilizador será autenticado interativamente por predefinição. Ao usar o -SubjectFromUserContext parâmetro, o assunto do certificado e o SAN UPN serão preenchidos automaticamente com base no contexto do utilizador com sessão iniciada:

Início de sessão do dispositivo

Se quiser solicitar um novo certificado num sistema sem qualquer ambiente de trabalho, pode usar o -DeviceCode parâmetro para realizar a autenticação propriamente dita noutra sessão:

Autenticação por principal de serviço

Em cenários totalmente automatizados, um Registo de Aplicação pode ser usado para autenticação. Inferir o assunto a partir do contexto autenticado não será possível neste caso.

O uso de splatting de parâmetros também tornará a execução mais legível:

Autenticar usando certificados

Depois de um certificado ter sido emitido usando um contexto autenticado, podemos usá-lo para renová-lo sem fornecer novamente qualquer contexto.

CertificateBySubject

Interagir com keystores só é possível no Windows

Ao fornecer o CertificateBySubject parâmetro, o módulo tentará automaticamente encontrar um certificado adequado para renovação nos keystores CurrentUser e LocalMachine .

O valor introduzido será correspondido por regex com os assuntos de todos os certificados disponíveis.

Fornecer um certificado específico

CertificateFromFile

Em sistemas Linux, a renovação de um certificado pode ser realizada passando os caminhos de um certificado existente e da respetiva chave privada.

Ao usar uma chave privada encriptada, ser-lhe-á pedida a palavra-passe. Também pode passar diretamente a palavra-passe da chave usando o PlainTextPassword parâmetro.

Usar o SCEPman com uma Firewall de Aplicação Web do Azure

Com os Perfis SSL ativados, o WAF terminará as ligações TLS. Isto, por sua vez, quebrará as renovações de certificados usando EST, pois o procedimento depende de mTLS para autenticação. Neste caso, o UseSCEPRenewal parâmetro pode ser usado para, em vez disso, realizar uma renovação de certificado em conformidade com o protocolo SCEP.

Tenha em atenção que isto requer configuração adicional do SCEPman relativamente ao endpoint SCEP estático:

  • AppConfig:StaticValidation:Enabled : true

  • AppConfig:StaticValidation:AllowRenewals : true

  • AppConfig:StaticValidation:ReenrollmentAllowedCertificateTypes: Static (Dependendo dos tipos destinados à renovação)

Last updated

Was this helpful?