SCEPmanClient

SCEPmanClient es un módulo de PowerShell diseñado para interactuar con la API REST de SCEPman. Al ser independiente de la plataforma y compatible con Windows PowerShell v5, puedes usar este módulo para solicitar certificados para todos los casos de uso para los que se puede usar la API REST:

  • Emisión automática de certificados de servidor

  • Certificados de cliente para dispositivos no administrados

  • Inscripción de certificados en dispositivos Linux

Instalación

El módulo SCEPmanClient está disponible en la PowerShell Gallery y se puede instalar usando el siguiente comando:

Install-Module -Name SCEPmanClient
circle-info

Sigue la guía de Microsoft sobre cómo instalar PowerShell en Linuxarrow-up-right o MacOSarrow-up-right.

Requisitos previos

Para que el módulo funcione como se espera, deberás añadir una pequeña modificación a tu implementación de SCEPman:

1

Agregar URL de la página principal

Agregar la URL del App Service de SCEPman: Navega a la Branding & Properties sección del registro de la aplicación. Agrega la URL del App Service de SCEPman al campo URL de la página principal:

Esto es necesario para que el módulo pueda buscar automáticamente el client id del App Registration, que se necesita para la obtención del token de acceso.

2

Permitir que Azure PowerShell interactúe con el App Registration

En el App Registration, navega a Exponer una API y crea un ámbito personalizado que pueda usarse para autorizar el client Id 1950a258-227b-4e31-a9cf-717495945fc2 (Microsoft Azure PowerShell)

Información de ejemplo para un ámbito de API personalizado

Después de crear un ámbito de API, la aplicación Azure PowerShell puede autorizarse:

Aplicación Microsoft Azure PowerShell autorizada
3

Habilitar el endpoint EST

Permisos

SCEPman tiene distintos roles que permitirán inscribir distintos tipos de certificados. Puedes asignarlos en la SCEPman-api Enterprise Application (nombre predeterminado):

CSR DB Requesters

Este rol solo se puede asignar a service principals (por ejemplo, App Registrations) de forma predeterminada y permite solicitar certificados con subjects y usos arbitrarios.

Inscripción mediante APIchevron-right

CSR Self Service

Este rol se puede asignar a usuarios y permitirá inscribir certificados con las siguientes restricciones:

  • Solo EKU de ClientAuth

  • Los certificados de usuario deben coincidir con el UPN del usuario en el subject o en el nombre alternativo del subject UPN

  • Los certificados de dispositivo deben tener un subject o SAN que SCEPman pueda asociar a un objeto de dispositivo propiedad del usuario autenticado

Autoinscripción de autoserviciochevron-right

Ejemplos de uso

Usar autenticación de Azure

Autenticación interactiva

Al solicitar un nuevo certificado sin especificar el mecanismo de autenticación, el usuario se autenticará de forma interactiva de manera predeterminada. Usando el -SubjectFromUserContext parámetro, el subject y el SAN UPN del certificado se completarán automáticamente según el contexto del usuario que haya iniciado sesión:

Inicio de sesión del dispositivo

Si quieres solicitar un nuevo certificado en un sistema sin entorno de escritorio, puedes usar el -DeviceCode parámetro para realizar la autenticación real en otra sesión:

Autenticación con Service Principal

En escenarios totalmente automatizados, un App Registration puede usarse para la autenticación. En este caso no será posible inferir el subject a partir del contexto autenticado.

El uso de splatting de parámetros también hará que la ejecución sea más legible:

Autenticarse usando certificados

Una vez que se ha emitido un certificado usando un contexto autenticado, podemos usarlo para renovarlo sin proporcionar de nuevo ningún contexto.

CertificateBySubject

Interactuar con los almacenes de claves solo es posible en Windows

Al proporcionar el CertificateBySubject parámetro, el módulo intentará automáticamente encontrar un certificado adecuado para la renovación en los almacenes de claves CurrentUser y LocalMachine .

El valor introducido se comparará con expresiones regulares contra los subjects de todos los certificados disponibles.

Proporcionar un certificado específico

CertificateFromFile

En sistemas Linux, la renovación de un certificado puede realizarse pasando las rutas de un certificado existente y su clave privada.

Cuando uses una clave privada cifrada, se te pedirá la contraseña. También puedes pasar directamente la contraseña de la clave usando el PlainTextPassword parámetro.

Usar SCEPman con un Azure Web Application Firewall

Con los perfiles SSL habilitados, el WAF terminará las conexiones TLS. Esto a su vez romperá las renovaciones de certificados usando EST, ya que el procedimiento depende de mTLS para la autenticación. En este caso, el UseSCEPRenewal parámetro puede usarse para realizar en su lugar una renovación de certificado que cumpla con el protocolo SCEP.

Ten en cuenta que esto requiere configuración adicional de SCEPman con respecto al endpoint SCEP estático:

  • AppConfig:StaticValidation:Enabled : true

  • AppConfig:StaticValidation:AllowRenewals : true

  • AppConfig:StaticValidation:ReenrollmentAllowedCertificateTypes: Static (dependiendo de los tipos destinados a la renovación)

Última actualización

¿Te fue útil?