Skip to content

Commit 7ac67f3

Browse files
keegan-carusoKeegan Caruso
andauthored
Provide an env var to disable interactive auth for AKV (#2824)
Co-authored-by: Keegan Caruso <[email protected]>
1 parent dc47b22 commit 7ac67f3

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

src/Microsoft.Identity.Web.Certificate/KeyVaultCertificateLoader.cs

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,40 @@ public async Task LoadIfNeededAsync(CredentialDescription credentialDescription,
4545
string? managedIdentityClientId,
4646
X509KeyStorageFlags x509KeyStorageFlags)
4747
{
48-
Uri keyVaultUri = new Uri(keyVaultUrl);
49-
DefaultAzureCredentialOptions options = new()
48+
Uri keyVaultUri = new(keyVaultUrl);
49+
50+
bool disableInteractiveCreds = false;
51+
var disableInteractiveCredsEnvVar = Environment.GetEnvironmentVariable("IDWEB_DISABLE_INTERACTIVE_AKV_CREDENTIALS");
52+
53+
if (disableInteractiveCredsEnvVar != null && (disableInteractiveCredsEnvVar == "1" || disableInteractiveCredsEnvVar.Equals("true", StringComparison.OrdinalIgnoreCase)))
54+
{
55+
disableInteractiveCreds = true;
56+
}
57+
58+
DefaultAzureCredentialOptions options;
59+
60+
if (disableInteractiveCreds)
61+
{
62+
options = new DefaultAzureCredentialOptions
63+
{
64+
ManagedIdentityClientId = managedIdentityClientId,
65+
ExcludeAzureCliCredential = true,
66+
ExcludeAzureDeveloperCliCredential = true,
67+
ExcludeAzurePowerShellCredential = true,
68+
ExcludeInteractiveBrowserCredential = true,
69+
ExcludeSharedTokenCacheCredential = true,
70+
ExcludeVisualStudioCodeCredential = true,
71+
ExcludeVisualStudioCredential = true
72+
};
73+
}
74+
else
5075
{
51-
ManagedIdentityClientId = managedIdentityClientId,
52-
};
76+
options = new DefaultAzureCredentialOptions
77+
{
78+
ManagedIdentityClientId = managedIdentityClientId,
79+
};
80+
}
81+
5382
DefaultAzureCredential credential = new(options);
5483
CertificateClient certificateClient = new(keyVaultUri, credential);
5584
SecretClient secretClient = new(keyVaultUri, credential);

0 commit comments

Comments
 (0)