Denna handledning ger en introduktion till kodsignering med Azure DevOps med hjälp av ett certifikat lagrat i Azure Key Vault. För att följa dessa instruktioner behöver du:
- An Azure-konto
- A DevOps-projekt
- A Nyckelvalv
- A kodsigneringscertifikat installerat i ditt Key Vault. Du kan antingen:
Gå över till den här artikeln för en guide om hur du integrerar eSigner med Azure DevOps: Integrationsguide för Azure DevOps Cloud Signing.
Registrera en Azure-applikation
Först måste du registrera en ny Azure-applikation så att du kan ansluta till ditt Key Vault för signering.
- Logga in på Azur portalen.
- Navigera till Azure Active Directory. (Klick Fler tjänster om Azure Active Directory-ikonen inte är synlig.)
- Klicka App-registreringar, i den vänstra kolumnen.
- Klicka Ny registrering.
- Ge din ansökan en Namn och klicka på Registrera knapp. Lämna de andra inställningarna vid standardvärdena.
- Din nya ansökan har registrerats. Kopiera och spara det värde som visas för Program (klient) ID, för du kommer att behöva det senare.
Skapa en kundhemlighet
Skapa sedan en klienthemlighet som fungerar som referens när du signerar.
- Klicka Certifikat & hemligheter i vänstra menyn.
- Klicka Ny kundhemlighet.
- Ge din klienthemlighet en Beskrivning, ställ in giltighetstid efter önskemål och klicka på Lägg till knapp.
- kopiera Värde av din nya klienthemlighet blir omedelbart och spara den på en säker plats. Nästa gång sidan uppdateras kommer detta värde att maskeras och vara oåterkallelig.
Aktivera åtkomst i Key Vault
Nu måste du aktivera åtkomst för din applikation i Azure Key Vault.
- Navigera till Key Vault som innehåller certifikatet du vill använda för signering och klicka på Åtkomstpolicyer länken.
- Klicka Lägg till åtkomstpolicy.
- Enligt Viktiga behörigheter, Gör det möjligt
Verify
,Sign
,Get
ochList
.
- Enligt Hemliga behörigheter, Gör det möjligt
Get
ochList
.
- Enligt Certifikatbehörigheter, Gör det möjligt
Get
ochList
.
- Klicka på Ingen vald länk, under Välj huvud, använd sedan sökfältet för att hitta och välja det program du skapade i föregående avsnitt.
- Klicka på Välja knapp.
- Klicka på Lägg till knapp.
- Klicka Save.
- Din åtkomstpolicy är inställd.
Konfigurera DevOps Build
Nu kan du konfigurera din build. Öppna ditt projekt i Azure DevOps.
Lagra användaruppgifter som variabler
Du kan inkludera ditt applikations-ID och klienthemlighet direkt i din YAML-pipeline-fil, men det är säkrare om du lagrar dem som variabler i DevOps.
- Klicka Rörledningar.
- Klicka Bibliotek.
- Klicka + Variabel grupp.
- Ge din variabla grupp ett namn.
- Klicka Lägg till.
- Ange ett variabelnamn för ditt applikations-ID och klistra in värdet. Klicka på låset för att kryptera variabeln när du är klar.
- Upprepa processen för att lägga till en variabel för din klienthemlighet.
- Klicka Save.
- Länka variabelgruppen i din pipeline. (ersätt VARIABLE-GROUP med namnet på din faktiska variabelgrupp.)
variabler: - grupp: 'VARIABLE-GROUP'
Lägg till rörledningssteg för att installera Azure Sign Tool
Azure Sign Tool är ett open source-verktyg som erbjuder Signtool funktionalitet för certifikat och nycklar lagrade i Azure Key Vault. Lägg till följande steg i din pipeline för att installera Azure Sign Tool:
- uppgift: DotNetCoreCLI @ 2 ingångar: kommando: 'anpassad' anpassad: 'verktyg' argument: 'install --global azuresigntool' displayName: Install AzureSignTool
Lägg till Azure Sign Tool Command till Pipeline
- Nu kan du lägga till en uppgift för att signera din kod i rörledningen. Du behöver följande information:
- Lägg till Azure Sign Tool-anropet till din pipeline. Ersätt värdena som visas i ALL-CAPS med dina faktiska värden:
- uppgift: CmdLine @ 2 ingångar: skript: 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: Sign Code
- Du bör se utdata så här om signeringen lyckas:
info: AzureSignTool.Program [0] => Fil: D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe Underteckningsfil D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe information: AzureSignTool. Program [0] => Fil: D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe Underteckningen slutfördes för fil D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe.