Problem
azd pipeline config supports OIDC federated credentials for the GitHub provider. The azdo provider does not. The documentation states this directly:
By default, azd pipeline config for Azure Pipelines uses client credentials. OIDC/federated credentials are not currently supported.
Source: Configure a pipeline using Azure Pipelines
Impact
Choosing Azure DevOps forces a long-lived client secret into pipeline configuration, while the same command against the other supported provider produces a secretless configuration. The security posture of a deployment is therefore determined by CI platform choice rather than by any deliberate decision, and the weaker option is the silent default.
For organizations where Azure DevOps is mandated rather than chosen, azd pipeline config is unusable for any workload with a no-stored-secrets requirement. Those users must configure the service connection and app registration by hand, which is the exact work the command exists to eliminate.
This is not a runtime limitation. The runtime half already works: azd auth login --federated-credential-provider azure-pipelines is implemented and supported, reading AZURESUBSCRIPTION_CLIENT_ID, AZURESUBSCRIPTION_TENANT_ID, AZURESUBSCRIPTION_SERVICE_CONNECTION_ID, and SYSTEM_ACCESSTOKEN. Only the configuration half is missing, so the gap is a parity gap, not a capability gap.
Proposed requirement
azd pipeline config --provider azdo must be able to produce a secretless configuration, and should do so by default.
- Create the Azure Resource Manager service connection using workload identity federation.
- Create the matching federated credential on the app registration, using the issuer and subject the service connection requires.
- Make federated credentials the default for
azdo, with client credentials available only behind an explicit opt-in flag.
- Emit the generated pipeline YAML using
azd auth login --federated-credential-provider azure-pipelines.
Acceptance criteria
Problem
azd pipeline configsupports OIDC federated credentials for the GitHub provider. Theazdoprovider does not. The documentation states this directly:Source: Configure a pipeline using Azure Pipelines
Impact
Choosing Azure DevOps forces a long-lived client secret into pipeline configuration, while the same command against the other supported provider produces a secretless configuration. The security posture of a deployment is therefore determined by CI platform choice rather than by any deliberate decision, and the weaker option is the silent default.
For organizations where Azure DevOps is mandated rather than chosen,
azd pipeline configis unusable for any workload with a no-stored-secrets requirement. Those users must configure the service connection and app registration by hand, which is the exact work the command exists to eliminate.This is not a runtime limitation. The runtime half already works:
azd auth login --federated-credential-provider azure-pipelinesis implemented and supported, readingAZURESUBSCRIPTION_CLIENT_ID,AZURESUBSCRIPTION_TENANT_ID,AZURESUBSCRIPTION_SERVICE_CONNECTION_ID, andSYSTEM_ACCESSTOKEN. Only the configuration half is missing, so the gap is a parity gap, not a capability gap.Proposed requirement
azd pipeline config --provider azdomust be able to produce a secretless configuration, and should do so by default.azdo, with client credentials available only behind an explicit opt-in flag.azd auth login --federated-credential-provider azure-pipelines.Acceptance criteria
azd pipeline config --provider azdocreates a workload identity federation service connectionazure-pipelinesfederated provider