繁体   English   中英

在 Azure 中国连接到 KeyVault

[英]Connect to KeyVault in Azure China

我将此代码用于 Azure KeyVault 服务,它适用于常规 Azure

ClientSecretCredential clientCredential = new(options.KeyVaultTenantId, options.KeyVaultClientId, options.KeyVaultClientSecret);
KeyVaultCertificateWithPolicy rootCertificate = new CertificateClient(vaultUri, _clientCredential).GetCertificate(_rootCertificateId).Value;

但是我需要连接到 Azure 中国。 代码失败并显示消息:

AADSTS90002:找不到租户“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”。 检查以确保您拥有正确的租户 ID 并登录到正确的云。 请咨询您的订阅管理员,如果租户没有活动订阅,则可能会发生这种情况

我找到了这个,但我不知道在我的代码中在哪里设置ActiveDirectoryServiceSettings.AzureChina 请建议

<PackageReference Include="Azure.Identity" Version="1.5.0" />
<PackageReference Include="Azure.Security.KeyVault.Certificates" Version="4.2.0" />
<PackageReference Include="Azure.Security.KeyVault.Keys" Version="4.2.0" />
<PackageReference Include="Azure.Security.KeyVault.Secrets" Version="4.2.0" />

您需要使用ClientSecretCredential(String, String, String, ClientSecretCredentialOptions)构造函数覆盖并在ClientSecretCredentialOptions中将AuthorityHost设置为 Azure 中国。

就像是:

var clientSecretCredentialOptions = new ClientSecretCredentialOptions()
{
    AuthorityHost =  AzureAuthorityHosts.AzureChina
};

ClientSecretCredential clientCredential = new(options.KeyVaultTenantId, options.KeyVaultClientId, options.KeyVaultClientSecret, clientSecretCredentialOptions);
KeyVaultCertificateWithPolicy rootCertificate = new CertificateClient(vaultUri, _clientCredential).GetCertificate(_rootCertificateId).Value;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM