Skip to content
This repository was archived by the owner on Aug 3, 2024. It is now read-only.

Commit 810a9a2

Browse files
agrerdembayar
authored andcommitted
MSI support for Azure SQL connection test application
1 parent b49d547 commit 810a9a2

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

tools/AzureSqlConnectionTest/TestApplication.cs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class TestApplication : CommandLineApplication
1717
public CommandOption Help { get; }
1818

1919
public CommandOption KeyVaultName { get; }
20-
20+
public CommandOption KeyVaultManaged { get; }
2121
public CommandOption KeyVaultTenantId { get; }
2222

2323
public CommandOption KeyVaultClientId { get; }
@@ -43,6 +43,7 @@ public TestApplication()
4343
Help = HelpOption("-? | -h | --help");
4444

4545
KeyVaultName = Option("-kv | --keyVaultName", "KeyVault name", CommandOptionType.SingleValue);
46+
KeyVaultManaged = Option("-kvm | --keyVaultUseMsi", "Use managed identity for KV authentication", CommandOptionType.NoValue);
4647
KeyVaultTenantId = Option("-kvtid | --keyVaultTenantId", "KeyVault tenant id", CommandOptionType.SingleValue);
4748
KeyVaultClientId = Option("-kvcid | --keyVaultClientId", "KeyVault client id", CommandOptionType.SingleValue);
4849
KeyVaultCertificateThumbprint = Option("-kvct | --keyVaultCertThumbprint", "KeyVault certificate thumbprint", CommandOptionType.SingleValue);
@@ -77,16 +78,25 @@ public async Task<int> ExecuteAsync()
7778
var useAdalOnly = UseAdalOnly.HasValue();
7879

7980
if (KeyVaultName.HasValue()
80-
&& KeyVaultClientId.HasValue()
81-
&& KeyVaultCertificateThumbprint.HasValue())
81+
&& ((KeyVaultClientId.HasValue()
82+
&& KeyVaultCertificateThumbprint.HasValue()) || KeyVaultManaged.HasValue()))
8283
{
83-
using (var kvCertificate = GetKeyVaultCertificate(KeyVaultCertificateThumbprint.Value()))
84+
using (var kvCertificate = KeyVaultManaged.HasValue() ? null : GetKeyVaultCertificate(KeyVaultCertificateThumbprint.Value()))
8485
{
85-
var keyVaultConfig = new KeyVaultConfiguration(
86-
KeyVaultName.Value(),
87-
KeyVaultTenantId.Value(),
88-
KeyVaultClientId.Value(),
89-
kvCertificate);
86+
KeyVaultConfiguration keyVaultConfig;
87+
if (KeyVaultManaged.HasValue())
88+
{
89+
keyVaultConfig = new KeyVaultConfiguration(KeyVaultName.Value());
90+
}
91+
else
92+
{
93+
keyVaultConfig = new KeyVaultConfiguration(
94+
KeyVaultName.Value(),
95+
KeyVaultTenantId.Value(),
96+
KeyVaultClientId.Value(),
97+
kvCertificate,
98+
sendX5c: true);
99+
}
90100

91101
var runner = new TestRunner(
92102
ConnectionString.Value(),

0 commit comments

Comments
 (0)