Este tutorial ofrece una introducción a la firma de código con Azure DevOps, mediante un certificado almacenado en Azure Key Vault. Para seguir estas instrucciones necesitará:
- An Cuenta de Azure
- A Proyecto DevOps
- A Bóveda de llaves
- A certificado de firma de código instalado en su Key Vault. Tu también puedes:
Diríjase a este artículo para obtener una guía sobre cómo integrar eSigner con Azure DevOps: Guía de integración de la firma en la nube de Azure DevOps.
Registrar una aplicación de Azure
Primero, deberá registrar una nueva aplicación de Azure para que pueda conectarse a su Key Vault para firmar.
- Iniciar sesión en el Portal Azure.
- Navegar a Directorio activo de Azure. (Hacer clic Más servicios si el icono de Azure Active Directory no está visible).
- Haga clic en Registros de aplicaciones, en la columna de la izquierda.
- Haga clic en Nuevo registro.
- Dale a tu solicitud un Nombre Y haga clic en el Registro botón. Deje las demás configuraciones en sus valores predeterminados.
- Se ha registrado su nueva aplicación. Copie y guarde el valor mostrado para ID de aplicación (cliente), porque lo necesitarás más tarde.
Crear un secreto de cliente
A continuación, genere un secreto de cliente, que servirá como credencial al firmar.
- Haga clic en Certificados y secretos en el menú de la izquierda.
- Haga clic en Nuevo secreto de cliente.
- Dale a tu cliente un secreto Descripción, establezca la caducidad como desee y haga clic en el Añadir el archivo del botón.
- Copia el Valor de su nuevo secreto de cliente inmediatamente y guárdelo en un lugar seguro. La próxima vez que se actualice la página, este valor estará enmascarado y será irrecuperable.
Habilitar el acceso en Key Vault
Ahora, deberá habilitar el acceso para su aplicación en Azure Key Vault.
- Navegue hasta Key Vault que contiene el certificado que desea usar para firmar y haga clic en el Políticas de acceso .
- Haga clic en Agregar política de acceso.
- bajo Permisos clave, habilitar
Verify
,Sign
,Get
yList
.
- bajo Permisos secretos, habilitar
Get
yList
.
- bajo Permisos de certificado, habilitar
Get
yList
.
- Haga clic en el Ninguna seleccionada enlace, debajo Seleccionar principal, luego use el campo de búsqueda para ubicar y seleccionar la aplicación que creó en la sección anterior.
- Haga clic en el Seleccione del botón.
- Haga clic en el Añadir el archivo del botón.
- Haga clic en Guardado.
- Su política de acceso está establecida.
Configurar la compilación de DevOps
Ahora puedes configurar tu build. Abra su proyecto en Azure DevOps.
Almacenar las credenciales de la aplicación como variables
Puede incluir su ID de aplicación y secreto de cliente directamente en su archivo de canalización YAML, pero es más seguro si los almacena como variables en DevOps.
- Haga clic en Pipelines.
- Haga clic en Biblioteca.
- Haga clic en + Grupo variable.
- Dale un nombre a tu grupo de variables.
- Haga clic en Añadir el archivo .
- Ingrese un nombre de variable para su ID de aplicación, luego pegue el valor. Haga clic en el candado para cifrar la variable cuando haya terminado.
- Repita el proceso para agregar una variable para su secreto de cliente.
- Haga clic en Guardado.
- Vincula el grupo de variables en tu canalización. (reemplace VARIABLE-GROUP con el nombre de su grupo de variables real).
variables: - grupo: 'VARIABLE-GROUP'
Agregar paso de canalización para instalar la herramienta Azure Sign
Herramienta Azure Sign es una utilidad de código abierto que ofrece Herramienta de señalización funcionalidad para certificados y claves almacenados en Azure Key Vault. Agregue el siguiente paso en su canalización para instalar Azure Sign Tool:
- tarea: DotNetCoreCLI @ 2 entradas: comando: 'personalizado' personalizado: 'herramienta' argumentos: 'instalar --global azuresigntool' displayName: instalar AzureSignTool
Agregar el comando de la herramienta Azure Sign a la canalización
- Ahora puede agregar una tarea para firmar su código en la canalización. Necesitará la siguiente información:
- Agregue la llamada de Azure Sign Tool a su canalización. Reemplace los valores que se muestran en MAYÚSCULAS con sus valores reales:
- tarea: CmdLine @ 2 entradas: script: AzureSignTool sign -kvu "KEY-VAULT-URI" -kvi "$ (APPLICATION-ID-VAR)" -kvs "$ (CLIENT-SECRET-VAR)" -kvc CERTIFICATE-NAME -tr "http://ts.ssl.com" -td sha256 "ARCHIVO PARA FIRMAR" displayName: Código de firma
- Debería ver un resultado como este si la firma es exitosa:
información: AzureSignTool.Program [0] => Archivo: D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe Archivo de firma D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe información: AzureSignTool. Programa [0] => Archivo: D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe La firma se completó correctamente para el archivo D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe.