Ce didacticiel donne une introduction à la signature de code avec Azure DevOps, à l'aide d'un certificat stocké dans Azure Key Vault. Pour suivre ces instructions, vous aurez besoin de:
- An Compte Azure
- A Projet DevOps
- A Coffre à clés
- A certificat de signature de code installé dans votre Key Vault. Vous pouvez soit:
Rendez-vous sur cet article pour un guide sur la façon d'intégrer eSigner avec Azure DevOps : Guide d'intégration Azure DevOps Cloud Signing.
Inscrire une application Azure
Tout d'abord, vous devez enregistrer une nouvelle application Azure afin de pouvoir vous connecter à votre Key Vault pour la signature.
- Connectez-vous à la Portail Azure.
- Accédez à Azure Active Directory. (Cliquez Plus de services si l'icône Azure Active Directory n'est pas visible.)
- Cliquez sur Inscriptions d'applications, dans la colonne de gauche.
- Cliquez sur Nouvelle inscription.
- Donnez à votre candidature un Nom Et cliquez sur le Enregistrés bouton. Laissez les autres paramètres à leurs valeurs par défaut.
- Votre nouvelle application a été enregistrée. Copiez et enregistrez la valeur indiquée pour ID de l'application (client), car vous en aurez besoin plus tard.
Créer un secret client
Ensuite, générez un secret client, qui servira d'informations d'identification lors de la signature.
- Cliquez sur Certificats et secrets dans le menu de gauche.
- Cliquez sur Nouveau secret client.
- Donnez à votre client un secret Description, définissez l'expiration comme vous le souhaitez et cliquez sur le Ajouter .
- Copiez le Valeur de votre nouveau secret client immédiatement et enregistrez-le dans un endroit sûr. La prochaine fois que la page sera actualisée, cette valeur sera masquée et irrécupérable.
Activer l'accès dans Key Vault
Vous devez maintenant activer l'accès pour votre application dans Azure Key Vault.
- Accédez au Key Vault contenant le certificat que vous souhaitez utiliser pour la signature et cliquez sur le bouton Politiques d'accès lien.
- Cliquez sur Ajouter une politique d'accès.
- Sous Autorisations clés, activer
Verify
,Sign
,Get
etList
.
- Sous Autorisations secrètes, activer
Get
etList
.
- Sous Autorisations de certificat, activer
Get
etList
.
- Cliquez Aucune sélection lien, sous Sélectionnez le principal, puis utilisez le champ de recherche pour localiser et sélectionner l'application que vous avez créée dans la section précédente.
- Cliquez Choisir .
- Cliquez Ajouter .
- Cliquez sur Enregistrer.
- Votre politique d'accès est définie.
Configurer la version DevOps
Vous pouvez maintenant configurer votre build. Ouvrez votre projet dans Azure DevOps.
Stocker les informations d'identification de l'application en tant que variables
Vous pouvez inclure votre ID d'application et votre secret client directement dans votre fichier de pipeline YAML, mais c'est plus sécurisé si vous les stockez en tant que variables dans DevOps.
- Cliquez sur Pipelines.
- Cliquez sur Bibliothèque.
- Cliquez sur + Groupe variable.
- Donnez un nom à votre groupe de variables.
- Cliquez sur Ajouter.
- Entrez un nom de variable pour votre ID d'application, puis collez la valeur. Cliquez sur le verrou pour crypter la variable lorsque vous avez terminé.
- Répétez le processus pour ajouter une variable pour votre secret client.
- Cliquez sur Enregistrer.
- Liez le groupe de variables dans votre pipeline. (remplacez VARIABLE-GROUP par le nom de votre groupe de variables réel.)
variables: - groupe: 'VARIABLE-GROUP'
Ajouter une étape de pipeline pour installer l'outil de signature Azure
Outil de signature Azure est un utilitaire open source qui offre Outil de signature fonctionnalité pour les certificats et les clés stockés dans Azure Key Vault. Ajoutez l'étape suivante dans votre pipeline pour installer Azure Sign Tool:
- tâche: DotNetCoreCLI @ 2 entrées: commande: 'custom' custom: 'tool' arguments: 'install --global azuresigntool' displayName: Install AzureSignTool
Ajouter la commande de l'outil de signature Azure au pipeline
- Vous pouvez maintenant ajouter une tâche pour signer votre code dans le pipeline. Vous aurez besoin des informations suivantes:
- Ajoutez l'appel Azure Sign Tool à votre pipeline. Remplacez les valeurs affichées en MAJUSCULES par vos valeurs réelles:
- tâche: CmdLine @ 2 entrées: 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 "FILE-TO-SIGN" displayName: Code de signe
- Vous devriez voir une sortie comme celle-ci si la signature réussit:
info: AzureSignTool.Program [0] => Fichier: D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe Fichier de signature D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe info: AzureSignTool. Programme [0] => Fichier: D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe Signature réussie pour le fichier D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe.