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, puede 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 gestionados

  • Inscripción de certificados en dispositivos Linux

Instalación

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

Install-Module -Name SCEPmanClient
circle-info

Siga 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, necesitará añadir una pequeña modificación a su despliegue de SCEPman:

1

Agregar URL de la página de inicio

Agregue la URL del App Service de SCEPman: Vaya a la Branding & Properties sección del registro de la aplicación. Añada la URL del App Service de SCEPman al campo URL de la página de inicio:

Esto es necesario para que el módulo pueda buscar automáticamente el Id de cliente 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, navegue a Expose an API y cree un scope personalizado que pueda usarse para autorizar el Id del cliente 1950a258-227b-4e31-a9cf-717495945fc2 (Microsoft Azure PowerShell)

Ejemplo de información para un scope de API personalizado

Después de crear un scope de API, se puede autorizar la aplicación Azure PowerShell:

Aplicación Microsoft Azure PowerShell autorizada
3

Habilitar endpoint EST

Permisos

SCEPman tiene diferentes roles que permitirán inscribir distintos tipos de certificados. Puede asignarlos en la SCEPman-api (nombre predeterminado) Aplicación empresarial:

Solicitantes de CSR de la base de datos

Este rol, por defecto, solo es asignable a entidades de servicio (por ejemplo, App Registrations) y permite solicitar certificados con sujetos y usos arbitrarios.

Inscripción por APIchevron-right

CSR Autoservicio

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

  • Solo EKU ClientAuth

  • Los certificados de usuario deben coincidir con el UPN del usuario ya sea en el subject o en el subject alternative name UPN

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

Inscripció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 por defecto. Usando el -SubjectFromUserContext parámetro, el subject del certificado y el UPN SAN se completarán automáticamente según el contexto del usuario conectado:

Inicio de sesión del dispositivo

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

Autenticación con entidad de servicio

En escenarios totalmente automatizados se puede usar un App Registration para la autenticación. Inferir el subject desde el contexto autenticado no será posible en este caso.

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

Autenticar usando certificados

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

CertificateBySubject

Interactuar con 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 CurrentUser y LocalMachine almacenes de claves.

El valor introducido se comparará mediante regex con los subjects de todos los certificados disponibles.

Proporcionar un certificado específico

CertificateFromFile

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

Al usar una clave privada cifrada se le pedirá la contraseña. También puede 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 que usan EST ya que el procedimiento se basa en mTLS para la autenticación. En este caso, el UseSCEPRenewal parámetro puede usarse para, en su lugar, realizar una renovación de certificado conforme al protocolo SCEP.

Tenga en cuenta que esto requiere configuración adicional de SCEPman 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?