c# - Azure RelayManagementClient 的 ManagedIdentityCredential
问题描述
对于 Azure Key Vault,我使用 DefaultAzureCredential。这在本地开发和使用应用标识发布到 Azure 时非常有用。我不需要在应用程序中存储任何 id 或秘密。
我还需要利用 RelayManagementClient 来管理来自应用程序的 (CRUD) 混合连接。我无法使用 Microsoft.Azure.Management.Relay 包找到类似的授权方法。此客户端的构造函数接受一个 ServiceClientCredentials 实例,其中有三个派生类;BasicAuthenticationCredentials、CertificateCredentials 和 TokenCredentials - 没有一个是合适的。
我通过调用创建 ServiceClientCredentials 的实例
SdkContext.AzureCredentialsFactory
.FromServicePrincipal(config.ClientId,
config.ClientSecret,
config.TenantId,
AzureEnvironment.AzureGlobalCloud);
但是这样我在配置中暴露了 azure 租户的详细信息。最初这不是一个大问题,因为配置是安全的,但我想知道是否可以为这个客户端使用 ManagedIdentityCredentials?
我可以将这些值存储在使用托管身份凭据的 KeyVault 中,但也许以前有人这样做过。
解决方案
是的,您可以使用托管标识进行身份验证,只需 在创建 ServiceClientCredentials 实例时使用FromSystemAssignedManagedServiceIdentity
orFromUserAssigedManagedServiceIdentity
而不是。FromServicePrincipal
第一个用于系统分配的托管标识,第二个用于用户分配的托管标识。
推荐阅读
- java - 如何比较保存在 ArrayList 中的对象中的字符串,然后添加这些字符串的值(如果它们彼此相等)
- c# - C# Winform 如何允许面板在面板的父级之外绘制?
- android - Play 服务和 Firebase 版本出错
- php - PHP为什么我只能将1个单一数据插入我的数据库(mysql)
- c# - Unity [Command] 功能不执行 - UNet
- javascript - html,js:使用来自arraylist的值填充表单字段并将此arraylist保存在servlet中
- jquery - 如何根据数据属性隐藏 div
- tsql - T-SQL (AVG) 每 10 行
- macos - 在 mac 上进行选择以看起来像选择窗口
- jquery - Vue2 + jQuery + jQuery UI