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 que a API REST suporta:

  • Emissão automática de certificados de servidor

  • Certificados de cliente para dispositivos não gerenciados

  • Inscrição de certificados em dispositivos Linux

Instalação

O módulo SCEPmanClient está disponível no PowerShell Gallery 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 o módulo funcionar conforme o esperado, você precisará adicionar uma pequena modificação à sua implantação do SCEPman:

1

Adicionar URL da página inicial

Adicione a URL do App Service do SCEPman: navegue até a Branding & Properties seção do registro do aplicativo. Adicione a URL do App Service do SCEPman ao campo Home page URL:

Isto é necessário para que o módulo possa localizar automaticamente o client id do App Registration que é necessário para a obtenção do token de acesso.

2

Permitir que o Azure PowerShell interaja com o App Registration

No App Registration, navegue até Expose an API e crie um escopo personalizado que possa ser usado para autorizar o client Id 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, o aplicativo Azure PowerShell pode ser autorizado:

Aplicativo Microsoft Azure PowerShell autorizado
3

Habilitar endpoint EST

Permissões

O SCEPman possui diferentes funções que permitirão tipos diferentes de certificados serem inscritos. Você pode atribuí-las no SCEPman-api (nome padrão) Aplicação Empresarial:

Solicitantes de DB CSR

Esta função só é atribuível a service principals (registros de aplicativo, por exemplo) por padrão e permite solicitar certificados com assuntos e usos arbitrários.

Registro via APIchevron-right

Autoatendimento CSR

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

  • Apenas EKU ClientAuth

  • Certificados de usuário precisam corresponder ao UPN do usuário seja no subject ou no subject alternative name UPN

  • Certificados de dispositivo precisam ter um subject ou SAN que o SCEPman possa mapear para um objeto de dispositivo pertencente ao usuário autenticado

Registro de Autoatendimentochevron-right

Exemplos de uso

Usar autenticação do Azure

Autenticação interativa

Ao solicitar um novo certificado sem especificar o mecanismo de autenticação, o usuário será autenticado de forma interativa por padrão. Ao usar o -SubjectFromUserContext parâmetro, o subject do certificado e o UPN SAN serão preenchidos automaticamente com base no contexto do usuário logado:

Login de dispositivo

Se você deseja solicitar um novo certificado em um sistema sem nenhum ambiente de área de trabalho, pode usar o -DeviceCode parâmetro para realizar a autenticação real em outra sessão:

Autenticação por Service Principal

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

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

Autenticar usando certificados

Uma vez que um certificado tenha sido emitido usando um contexto autenticado, podemos usá-lo para renová-lo sem fornecer qualquer contexto novamente.

CertificateBySubject

Interagir com repositórios de chaves é possível apenas no Windows

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

O valor inserido será casado por regex contra os subjects em todos os certificados disponíveis.

Fornecer um certificado específico

CertificateFromFile

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

Ao usar uma chave privada criptografada, você será solicitado a fornecer a senha. Você também pode passar diretamente a senha da chave usando o PlainTextPassword parâmetro.

Usando o SCEPman com um Azure Web Application Firewall

Com Perfis SSL habilitados, o WAF terminará as conexões TLS. Isso, por sua vez, interromperá 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 compatível com o protocolo SCEP.

Observe que isso requer configuração adicional do SCEPman em relação 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?