brainy-guitar-22719
10/14/2025, 9:08 PMsilly-whale-25966
10/15/2025, 5:18 PMbrainy-guitar-22719
10/15/2025, 5:19 PMsilly-whale-25966
10/15/2025, 5:20 PMbrainy-guitar-22719
10/15/2025, 5:24 PMstocky-restaurant-98004
10/15/2025, 5:27 PMaz in this case) if you can't find a more elegant solution using other Pulumi resources.
https://www.pulumi.com/registry/packages/command/api-docs/local/command/brainy-guitar-22719
10/15/2025, 5:44 PMbrainy-guitar-22719
10/15/2025, 5:48 PMsilly-whale-25966
10/15/2025, 5:50 PMsilly-whale-25966
10/15/2025, 5:53 PMbrainy-guitar-22719
10/15/2025, 6:15 PMaz login error when my pulumi program is executed by Pulumi Deployments . Previously I'd been doing everything from local with a valid az login session already established. When running pulumi up that way I did not get any errors. I don't have my head fully wrapped around what an ESC env is, but yes, I converted my config to ESC. Not sure what you mean by 'ESC env performing the login for your Pulumi code's context'. The connection to Azure is managed through OIDC to a azure service principal with roles appropriate for deployment. I'm not confident that the roles are setup correctly for the Entra group role assignments that I tried to do, but the error message indicates to me that the failure is happening at authentication (no token), not with the authorization.silly-whale-25966
10/15/2025, 6:18 PMstocky-restaurant-98004
10/15/2025, 6:28 PMazure-native:* or as env vars. If you're only outputting Pulumi config, then you also need to emit the values as env vars that can be consumed by the az CLI.silly-whale-25966
10/15/2025, 6:36 PMvalues:
azure:
login:
fn::open::azure-login:
clientId: your-client-id
tenantId: your-tenant-id
subscriptionId: your-sub-id
oidc: true
environmentVariables:
ARM_USE_OIDC: 'true'
ARM_CLIENT_ID: ${azure.login.clientId}
ARM_TENANT_ID: ${azure.login.tenantId}
ARM_OIDC_REQUEST_TOKEN: ${azure.login.oidc.token}
ARM_OIDC_TOKEN: ${azure.login.oidc.token}
ARM_SUBSCRIPTION_ID: ${azure.login.subscriptionId}
ARM_OIDC_REQUEST_URL: <https://api.pulumi.com/oidc>
pulumiConfig:
azure-native:useOidc: 'true'
azure-native:clientId: ${azure.login.clientId}
azure-native:tenantId: ${azure.login.tenantId}
azure-native:subscriptionId: ${azure.login.subscriptionId}
azure-native:oidcRequestToken: ${azure.login.oidc.token}
azure-native:oidcToken: ${azure.login.oidc.token}
azure-native:oidcRequestUrl: <https://api.pulumi.com/oidc>brainy-guitar-22719
10/15/2025, 7:15 PMsilly-whale-25966
10/16/2025, 6:38 AMsilly-whale-25966
10/16/2025, 6:54 AMbrainy-guitar-22719
10/16/2025, 2:00 PMbrainy-guitar-22719
10/16/2025, 5:29 PMvalues:
azure:
login:
fn::open::azure-login:
clientId: <redacted>
tenantId: <redacted>
subscriptionId: <redacted>
oidc: true
environmentVariables:
ARM_USE_OIDC: 'true'
ARM_CLIENT_ID: ${azure.login.clientId}
ARM_TENANT_ID: ${azure.login.tenantId}
ARM_OIDC_TOKEN: ${azure.login.oidc.token}
ARM_SUBSCRIPTION_ID: ${azure.login.subscriptionId}
ARM_OIDC_REQUEST_TOKEN: ${azure.login.oidc.token}
ARM_OIDC_REQUEST_URL: <https://api.pulumi.com/oidc>
pulumiConfig:
azure-native:location: eastus
azure-native:useOidc: 'true'
azure-native:clientId: ${azure.login.clientId}
azure-native:tenantId: ${azure.login.tenantId}
azure-native:subscriptionId: ${azure.login.subscriptionId}
azure-native:oidcRequestToken: ${azure.login.oidc.token}
azure-native:oidcToken: ${azure.login.oidc.token}
azure-native:oidcRequestUrl: <https://api.pulumi.com/oidc>
And here's the error:
error: Running program '/deployment/PlatformEnvironment/bin/Debug/net9.0/PlatformEnvironment.dll' failed with an unhandled exception:
Grpc.Core.RpcException: Status(StatusCode="Unknown", Detail="invocation of azuread:index/getGroup:getGroup returned an error: 1 error occurred:
* building client: unable to obtain access token: running Azure CLI: exit status 1: ERROR: Please run 'az login' to setup account.
My guess is that azuread is using a different auth mechanism. Advice on how I can give it what it needs?silly-whale-25966
10/16/2025, 7:12 PMsilly-whale-25966
10/16/2025, 7:28 PMvalues:
azure:
login:
fn::open::azure-login:
clientId: <redacted>
tenantId: <redacted>
subscriptionId: <redacted>
oidc: true
region: eastus
environmentVariables:
ARM_USE_OIDC: 'true'
ARM_CLIENT_ID: ${azure.login.clientId}
ARM_TENANT_ID: ${azure.login.tenantId}
ARM_OIDC_TOKEN: ${azure.login.oidc.token}
ARM_SUBSCRIPTION_ID: ${azure.login.subscriptionId}
ARM_OIDC_REQUEST_TOKEN: ${azure.login.oidc.token}
ARM_OIDC_REQUEST_URL: <https://api.pulumi.com/oidc>
pulumiConfig:
azure-native:location: ${azure.region}
azure-native:useOidc: 'true'
azure-native:clientId: ${azure.login.clientId}
azure-native:tenantId: ${azure.login.tenantId}
azure-native:subscriptionId: ${azure.login.subscriptionId}
azure-native:oidcRequestToken: ${azure.login.oidc.token}
azure-native:oidcToken: ${azure.login.oidc.token}
azure-native:oidcRequestUrl: <https://api.pulumi.com/oidc>
azurerm:location: ${azure.region}
azurerm:clientId: ${azure.login.clientId}
azurerm:tenantId: ${azure.login.tenantId}
azurerm:subscriptionId: ${azure.login.subscriptionId}
azurerm:oidcToken: ${azure.login.oidc.token}silly-whale-25966
10/16/2025, 7:36 PMvalues:
azure:
login:
fn::open::azure-login:
clientId: <redacted>
tenantId: <redacted>
subscriptionId: <redacted>
oidc: true
region: eastus
environmentVariables:
ARM_USE_OIDC: 'true'
ARM_CLIENT_ID: ${azure.login.clientId}
ARM_TENANT_ID: ${azure.login.tenantId}
ARM_OIDC_TOKEN: ${azure.login.oidc.token}
ARM_SUBSCRIPTION_ID: ${azure.login.subscriptionId}
pulumiConfig:
azure-native:location: ${azure.region}
azure-native:clientId: ${azure.login.clientId}
azure-native:tenantId: ${azure.login.tenantId}
azure-native:subscriptionId: ${azure.login.subscriptionId}
azure-native:oidcToken: ${azure.login.oidc.token}
azurerm:location: ${azure.region}
azurerm:clientId: ${azure.login.clientId}
azurerm:tenantId: ${azure.login.tenantId}
azurerm:oidcToken: ${azure.login.oidc.token}brainy-guitar-22719
10/17/2025, 12:29 AMazuread not azurerm . In case someone searches this channel: Make sure your dependencies are current. Somehow I was using an ancient version of the azuread provider.