控制台应用程序是否使用 Azure Key Vault Secrets 的登录凭据

Does a console app use login credentials for Azure Key Vault Secrets

我正在通过从另一个应用程序复制代码将测试控制台应用程序转换为使用 Azure Key Vault,我很惊讶地看到控制台应用程序能够在 Azure 门户中没有任何配置的情况下获取机密。我原以为我需要 link 控制台应用程序到机密,以便代码有权提取机密。控制台应用程序是否使用我的登录凭据进行身份验证?这与代码无关,但这是一个快速示例。

        string _dbString = "";
        _dbString = GetSecrets(ConfigurationManager.AppSettings["DatabaseSecretUrl"]).Result.Value;

        private static async Task<SecretBundle> GetSecrets(string Url)
        {
            AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
            KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
            return await keyVaultClient.GetSecretAsync(Url).ConfigureAwait(false);
        }
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();

此行确实尝试使用现有的 Azure 帐户登录会话。例如,如果您之前做过 az login,它将能够使用它。此外,如果您的计算机已加入 AzureAD,它也可以使用这些凭据。