Skip to content

Commit c72bee9

Browse files
authored
Revise README for improved structure and content
Updated README to enhance clarity and add references.
1 parent e24ccbb commit c72bee9

1 file changed

Lines changed: 48 additions & 17 deletions

File tree

README.md

Lines changed: 48 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,41 @@
11
# Azure Artifact Signing (Azure DevOps + Terraform)
22

3-
This repo is a minimal, demo-friendly setup for:
4-
- Provisioning Azure Artifact Signing (Trusted Signing) resources with Terraform.
5-
- Building a small Windows .NET executable.
6-
- Signing it in Azure DevOps using **SignTool + Artifact Signing dlib** (private key stays in Microsoft-managed HSMs).
3+
Costa Rica
4+
5+
[![GitHub](https://img.shields.io/badge/--181717?logo=github&logoColor=ffffff)](https://github.com/)
6+
[brown9804](https://github.com/brown9804)
7+
8+
Last updated: 2026-02-19
9+
10+
----------
11+
12+
`In Azure DevOps, code signing is an automated pipeline step that runs after build, using a cloud‑hosted certificate where the private key never leaves Azure`
13+
14+
15+
<details>
16+
<summary><b>List of References </b> (Click to expand)</summary>
17+
18+
- [What is Artifact Signing?](https://learn.microsoft.com/en-us/azure/artifact-signing/overview)
19+
- [Artifact Signing](https://azure.microsoft.com/en-us/products/artifact-signing?msockid=38ec3806873362243e122ce086486339)
20+
21+
</details>
22+
23+
> This repo is a minimal, demo-friendly setup for:
24+
> - Provisioning Azure Artifact Signing (Trusted Signing) resources with Terraform.
25+
> - Building a small Windows .NET executable.
26+
> - Signing it in Azure DevOps using **SignTool + Artifact Signing dlib** (private key stays in Microsoft-managed HSMs).
27+
28+
<img width="1523" height="743" alt="image" src="https://github.com/user-attachments/assets/5617dfde-d84b-4dd9-904f-7669b4de9374" />
29+
30+
## Prereqs
31+
32+
- Azure CLI installed and logged in (`az login`)
33+
- Terraform installed
34+
- Permission to register resource providers + create resources in your subscription. One-time provider registration (per subscription):
35+
36+
```pwsh
37+
az provider register --namespace Microsoft.CodeSigning
38+
```
739

840
## What Terraform creates
941

@@ -19,21 +51,13 @@ This repo is a minimal, demo-friendly setup for:
1951
- Pipeline authorizations for the service connection + variable group
2052
- (Optional, Terraform-deployed) RBAC assignment: `Artifact Signing Certificate Profile Signer` at the certificate profile scope
2153

22-
Notes:
23-
- **Identity validation** itself is **portal-only** (service requirement). Terraform can’t complete that workflow; you paste the resulting `identity_validation_id` into `terraform.tfvars`.
24-
- If Terraform creates the Azure DevOps service connection (`ado_enabled = true`), it can also read the generated WIF **Issuer** and **Subject** and create the Entra **federated credential** automatically (no copy/paste).
25-
26-
## Prereqs
27-
28-
- Azure CLI installed and logged in (`az login`)
29-
- Terraform installed
30-
- Permission to register resource providers + create resources in your subscription
54+
<img width="451" height="622" alt="image" src="https://github.com/user-attachments/assets/1306d110-be8f-49a8-96dc-c0354a2a6404" />
3155

32-
One-time provider registration (per subscription):
56+
From [What is Artifact Signing?](https://learn.microsoft.com/en-us/azure/artifact-signing/overview)
3357

34-
```pwsh
35-
az provider register --namespace Microsoft.CodeSigning
36-
```
58+
> [!NOTE]
59+
> - **Identity validation** itself is **portal-only** (service requirement). Terraform can’t complete that workflow; you paste the resulting `identity_validation_id` into `terraform.tfvars`.
60+
> - If Terraform creates the Azure DevOps service connection (`ado_enabled = true`), it can also read the generated WIF **Issuer** and **Subject** and create the Entra **federated credential** automatically (no copy/paste).
3761
3862
## Deploy with Terraform
3963

@@ -128,3 +152,10 @@ If signing fails with 403, validate:
128152

129153
After `terraform apply`, open the resource group:
130154
https://portal.azure.com/#view/HubsExtension/BrowseResourceGroups
155+
156+
<!-- START BADGE -->
157+
<div align="center">
158+
<img src="https://img.shields.io/badge/Total%20views-1280-limegreen" alt="Total views">
159+
<p>Refresh Date: 2026-02-19</p>
160+
</div>
161+
<!-- END BADGE -->

0 commit comments

Comments
 (0)