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 SCEPmanClientPré-requisitos
Para o módulo funcionar conforme o esperado, você precisará adicionar uma pequena modificação à sua implantação do SCEPman:
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.
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)

Após criar um escopo de API, o aplicativo Azure PowerShell pode ser autorizado:

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 APIAutoatendimento 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
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?