Identidades administradas
Esta función requiere la versión 2.0 o superior.
SCEPman necesita interactuar con los endpoints de tu Entra Directory e Intune para proporcionar la validación de certificados y OCSP de usuarios y dispositivos. Después del despliegue, SCEPman aún no tiene los permisos necesarios para acceder a estos servicios. El módulo de PowerShell descrito en este artículo agrega los permisos necesarios a la identidad administrada del App Service de SCEPman y completa la instalación.
Además, el módulo de PowerShell agrega el cableado de fondo necesario para el componente SCEPman Certificate Master introducido con SCEPman 2.0. En caso de que hayas actualizado de SCEPman 1.x a SCEPman 2.x, el módulo de PowerShell incluso agrega dos nuevos recursos de Azure para el componente SCEPman Certificate Master.
Obtenga y ejecute el módulo de PowerShell de instalación de SCEPman
Tanto si acabas de instalar una instalación nueva de SCEPman 2.x como si acabas de actualizar de SCEPman 1.x a SCEPman 2.x, y en algunos casos tras cambios en la arquitectura del despliegue, los pasos de instalación son los mismos. Descargas y ejecutas el módulo de PowerShell de SCEPman, que detecta lo que hay que hacer y completa la instalación. Puedes ejecutar el módulo de SCEPman tantas veces como quieras; solo agregará lo que aún falte.
Requisitos previos
Un Administrador global Cuenta para el inquilino en el que deseas instalar SCEPman (u otro rol de AAD como Administrador de roles con privilegios y permisos de escritura en la suscripción de Azure). Existe una opción para usar una cuenta con solo el rol de Administrador de aplicaciones y ejecutar más tarde manualmente los comandos que requieren permisos de Administrador global.
Azure CLI (también conocido como az) instalado. Azure CLI viene preinstalado en Azure Cloud Shell, la forma preferida de ejecutar el módulo.
Ejecutar el CMDlet de instalación de SCEPman
Página de inicio habilitada
Una vez cumplidos los requisitos previos, puedes instalar el módulo de instalación de SCEPman desde PowerShell Gallery y luego ejecutar el CMDlet para completar la instalación de SCEPman y Certificate Master.
Primero, debes ir al App Service de SCEPman y hacer clic en dominio predeterminado (ver captura de pantalla abajo). Esto te llevará a la página de inicio de SCEPman.

Ejecuta el comando de PowerShell mostrado en la página de inicio de tu instancia de SCEPman en tu PowerShell o Azure Cloud Shell (ver captura de pantalla abajo). Esto incluye un parámetro para identificar tu instancia de SCEPman, de modo que el código pueda ejecutarse idealmente sin ninguna interacción del usuario.

Después de ejecutar el CMDlet, es posible que aparezca "Servicio no disponible" o "Error del servidor 502" en la página de inicio de SCEPman; espera 2-3 minutos y actualiza la página de nuevo.
Página de inicio deshabilitada
Si has deshabilitado la página de inicio de SCEPman o necesitas ejecutar el CMDlet nuevamente, haz lo siguiente:
Pega el siguiente código en tu PowerShell o Azure Cloud Shell:
Rellena las indicaciones para:
En qué suscripción de Azure se ejecuta SCEPman (si hay más de una a la que tienes acceso)
El nombre del App Service de SCEPman (no es necesario si usaste el código de la página de inicio de SCEPman)
(Solo para actualizaciones de SCEPman), necesitas dos confirmaciones adicionales:
El nombre del nuevo App Service de SCEPman Certificate Master (puedes confirmar la sugerencia pulsando Enter o escribiendo un nuevo nombre para el recurso)
El nombre del nuevo recurso de Storage Account (de nuevo, puedes confirmar la sugerencia pulsando Enter o escribiendo un nuevo nombre para el recurso)
Ejecutar el CMDlet de instalación de SCEPman sin rol de Administrador global
Usa el -SkipAppRoleAssignments indicador de Complete-SCEPmanInstallation para ejecutar el CMDlet sin permisos de Administrador global. Esto omitirá la asignación de los App Roles requeridos a las identidades administradas de los App Services de SCEPman y Certificate MasterApp. Luego puedes asignar los App Roles manualmente como Administrador global. El CMDlet imprimirá los comandos requeridos en la consola.
Consideraciones al usar slots de despliegue
El módulo de SCEPman actualiza la configuración en todos los slots de despliegue, a menos que le indiques que use solo un slot de despliegue específico con el parámetro -DeploymentSlotName (que no puede ser el principal, porque técnicamente no es un slot de despliegue). La actualización de la configuración cambia los ajustes de SCEPman para usar autenticación con identidad administrada en lugar de autenticación de Enterprise App.
SCEPman 1.x no admite autenticación con identidad administrada y, por lo tanto, el CMDlet deja inutilizables los slots de despliegue que todavía ejecutan una versión 1.x. Así que, si tienes varios slots de despliegue y no quieres actualizarlos todos a la vez, deberías actualizar el slot de producción al final -- su actualización también afecta a todos los demás slots de despliegue.
Para otros slots de despliegue, usa el -DeploymentSlotName parámetro para dirigirte solo a esos slots de despliegue individuales. Esto es lo que muestran los comandos de PowerShell en la página de inicio de SCEPman del slot de despliegue, así que puedes simplemente copiar los comandos.
Una vez que todos tus slots de despliegue estén ejecutando 2.x, solo ejecuta una vez más el CMDlet Complete-SCEPmanInstallation y entonces todos usarán identidades administradas.
Si por accidente actualizaste un slot de despliegue a autenticación con identidad administrada que todavía ejecuta SCEPman 1.x, consulta la guía de degradación para que vuelva a funcionar.
Consideraciones al instalar SCEPman varias veces en un mismo inquilino
El CMDlet Complete-SCEPmanInstallation crea dos registros de aplicación: SCEPman-api y SCEPman-CertMaster. La sección "Cómo el CMDlet configura SCEPman Certificate Master" explica qué hacen estos registros de aplicación. El CMDlet requiere que sus nombres sean únicos, por lo que, si tienes varias instalaciones de SCEPman en un mismo inquilino, compartirán estos registros de aplicación por defecto. Esto significa que los usuarios tienen los mismos roles en todos los Certificate Masters y que, técnicamente, cada instancia de Certificate Master puede enviar solicitudes de certificado a cualquier SCEPman (aunque eso no ocurre a menos que configures SCEPman Certificate Master para hacerlo).
Si no quieres ese comportamiento, por ejemplo, porque las instalaciones de SCEPman pertenecen a distintas partes de tu organización, o una instalación de SCEPman es un entorno de preproducción, o quieres una PKI multinivel con una SCEPman Root CA y una SCEPman Issuing CA, necesitas indicar a las instancias de SCEPman que usen otros registros de aplicación.
Para este propósito, el CMDlet Complete-SCEPmanInstallation cuenta con los dos parámetros -AzureADAppNameForSCEPman y -AzureADAppNameForCertMaster. Estos parámetros te permiten definir nombres distintos para tus registros de aplicación. Por ejemplo, podrías llamar al CMDlet así para tu Root CA:
Complete-SCEPmanInstallation -SCEPmanAppServiceName app-scepmanroot -SearchAllSubscriptions -AzureAdAppNameForSCEPman SCEPman-api-root -AzureAdAppNameForCertMaster -SCEPman-CertMaster-root 6>&1
Y luego lo llamas otra vez para tu Subordinate CA así:
Complete-SCEPmanInstallation -SCEPmanAppServiceName app-scepmansub -SearchAllSubscriptions -AzureAdAppNameForSCEPman SCEPman-api-sub -AzureAdAppNameForCertMaster -SCEPman-CertMaster-sub 6>&1
Detalles de fondo del módulo de PowerShell de SCEPman
Esta sección describe el funcionamiento interno del módulo de PowerShell. Esto puede ayudar si tienes una configuración especial que requiere modificar el script, si necesitas conceder algún permiso especial, si estás solucionando problemas de una instalación de SCEPman o si quieres entender su funcionamiento interno para escribir un script de instalación para tu propio proyecto. Ten en cuenta que el módulo de PowerShell es software de código abierto. Puedes revisar el código fuente en su repositorio de GitHub. ¡Las solicitudes de incorporación son bienvenidas!
Recomendamos ejecutar el comandolet con 6>&1, lo que redirige el flujo de información y lo imprime en la pantalla, lo que da más información sobre el estado del programa que si omites la redirección. Si agregas -Verbose, habrá aún más información sobre lo que hace el script.
Cómo el CMDlet configura SCEPman
El CMDlet de PowerShell busca el App Service de SCEPman. El App Service usa una identidad administrada asignada por el sistema, que ya tiene derechos de acceso al Azure Key Vault de SCEPman en una instalación normal. El CMDlet agrega permisos para acceder a Microsoft Graph para buscar usuarios y dispositivos en AAD e Intune para las solicitudes OCSP entrantes y a Intune en sí para verificar las solicitudes SCEP entrantes.
Cómo el CMDlet gestiona las actualizaciones desde SCEPman 1.x
Además de otorgar los permisos a SCEPman, el módulo agrega dos nuevos recursos de Azure al realizar una actualización:
El App Service de SCEPman Certificate Master
El Storage Account compartido por SCEPman y SCEPman Certificate Master para certificados creados manualmente
Incluso para la Community Edition, que no usa el componente SCEPman Certificate Master, se agregan los dos nuevos recursos. Esto permite cambiar a la Enterprise Edition más fácilmente si lo deseas, y no agrega ningún costo adicional: el Storage Account estará vacío y Microsoft lo factura por la cantidad de almacenamiento, y el App Service de Certificate Master comparte un plan de App Service con SCEPman, lo que tampoco añade costo adicional.
SCEPman 1.x usaba un registro de aplicación para autenticarse frente a Microsoft Graph e Intune, mientras que SCEPman 2.x puede usar su identidad administrada. El CMDlet cambia a la identidad administrada modificando estos ajustes:
AppConfig:AuthConfig:ApplicationId se establece en un registro de aplicación recién creado sin ningún permiso. Se utiliza para autenticar contra SCEPman, no para que SCEPman se autentique en otro lugar. El valor antiguo se guarda como respaldo en
Backup:AppConfig:AuthConfig:ApplicationId.AppConfig:AuthConfig:ApplicationKey se elimina, el valor antiguo se guarda como respaldo en
Backup:AppConfig:AuthConfig:ApplicationKey. Ya no es necesario, porque SCEPman no se autentica como la aplicación.AppConfig:AuthConfig:ManagedIdentityEnabledOnUnixTime contiene el momento en que se ejecutó el CMDlet. SCEPman obtiene un token usando la identidad administrada solo después de un breve retraso tras ejecutarse el CMDlet, porque solo entonces los roles en el token reflejan los permisos correctos agregados por el CMDlet.
Cómo el CMDlet configura SCEPman Certificate Master
El App Service de SCEPman permite acceso anónimo a su página de inicio, ya que solo muestra información de solo lectura no sensible. En cambio, el componente SCEPman Certificate Master permite a los usuarios emitir certificados. Por lo tanto, solo permite acceso autenticado y solo si tienes los permisos adecuados. Esto requiere un registro de aplicación de Azure con permisos delegados para ver quién ha iniciado sesión y con la configuración correcta de la URL de inicio de sesión. El módulo registra este registro de aplicación como SCEPman-CertMaster en tu inquilino de Azure.
Además, el App Service de SCEPman Certificate Master necesita permiso para enviar Certificate Signing Requests (CSRs) al App Service principal de SCEPman para emitir certificados. El mecanismo de autenticación detrás de esto se basa en otro registro de aplicación: SCEPman-api. SCEPman usa SCEPman-api para gestionar los permisos de envío de CSR. El script registra SCEPman-api y agrega el permiso de envío a la identidad administrada de SCEPman Certificate Master.
En caso de actualizar SCEPman de 1.x a 2.x y después de ejecutar correctamente el script de PowerShell, puedes eliminar el registro de aplicación que se usaba en SCEPman 1.x
SCEPman V2.x utiliza dos nuevos registros de aplicación: "SCEPman-api" y "SCEPman-CertMaster"
Última actualización
¿Te fue útil?