This guide is to help you connect to Azure with OIDC, instead of using a Service Principal.Documentation Index
Fetch the complete documentation index at: https://docs.envzero.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This guide will show you how to create an Azure AD App, configure a Federated Credential, and configure env zero to utilize OIDC. The federated credential within the Azure AD app will be configured to accept env zero’s OIDC token. Refer to OIDC Integrations for more background on env zero’s OIDC configuration.Azure AD App + Federated Credential
The Azure AD App will be configured with a Federated Credential to accept the env zero OIDC token. Using the Azure Portal:- Microsoft Entra ID > App registrations > ”+ New Registration”
- Enter Name: e.g., “env zero OIDC app”
- Select Supported account types if you’re unsure, choose “Single tenant”
- Skip Redirect URI
- Register the app.
- Under the “env zero OIDC app” > “Certificates and Secrets” > “Federated credentials”
- “+ Add credential”
- Federated Credential Scenario - Other issuer
- Issuer -
https://login.app.env0.com/ - Subject Identifier -
auth0|xxxxxx(see the section below on “Retrieving your Subject Identifier”) - Name - enter a name (e.g., “env0 OIDC”)
- Audience -
https://prod.env0.com
- For using the Azure Provider in Terraform, we need to specify the following variables:
ARM_TENANT_ID- you can find the value in your app registration summary (“env zero OIDC app”) under “Directory (tenant) ID”ARM_CLIENT_ID- you can find the value in your app registration summary (“env zero OIDC app”) under “Application (client) ID”ARM_SUBSCRIPTION_ID- You can retrieve the Subscription ID from the Azure Subscription, or in a Resource Group that you want to use.
Azure AD App Permissions
In order for Terraform to be able to deploy and manage the resources, we need to associate your Azure AD App with your Subscription or Resource Group- In this example, I will give the “env zero OIDC app” the “Contributor” role in my “sales-acme-demo” resource group. This means that env zero will only be able to create and manage resources within this resource group.
- Go to the Resource Group (”sales-acme-demo”) > Access Control (IAM)
- Click on “+ Add” > “Add role assignment”\

- Select a role (the level of privilege to give to Terraform) - in this case, we choose “Contributor” and hit “Next”
- Assign access to “User, group, or service principal”
- Select a member by “+ Select Members”
- Search for “env zero OIDC app” and hit “Select”
- Hit “Review + assign”\

Configure env0 OIDC Credential
Go to the organization’s credentials page and create a new deployment credential. SelectAzure OIDC type and enter the following fields:
Subscription ID- Azure subscription idTenant ID- Azure tenant idClient ID- Azure client id

Assign your Credential in your Project
After creating your Organization Credential - don’t forget to go into your Project Settings to use the OIDC credential you just created.Deploying to multiple Azure Subscriptions
Sometimes you want to deploy to multiple Azure Subscriptions in one Terraform workspace. In Terraform / OpenTofu, you can specify multiple azure provider blocks to target multiple subscriptions, see example below:Terraform / OpenTofu (hcl)
Next steps
- Retrieve OIDC Subject Identifier - Find the subject identifier for your OIDC token.
- OIDC for AWS - Set up OIDC for AWS as an alternative cloud provider.
- OIDC for GCP - Set up OIDC for Google Cloud Platform.