C# Azure RelayManagementClient的ManagedEntityCredential
对于Azure密钥库,我使用DefaultAzureCredential。这在本地开发和使用应用程序标识发布到Azure时非常有效。我不需要在应用程序中存储任何id或机密 我还需要利用RelayManagementClient来管理来自应用程序的(CRUD)混合连接。我无法使用Microsoft.Azure.Management.Relay包找到类似的授权方法。此客户端的构造函数接受ServiceClientCredentials实例,该实例有三个派生类;基本身份验证凭据、证书凭据和令牌凭据—所有这些都不适用 我通过调用C# Azure RelayManagementClient的ManagedEntityCredential,c#,azure,identity,relay,C#,Azure,Identity,Relay,对于Azure密钥库,我使用DefaultAzureCredential。这在本地开发和使用应用程序标识发布到Azure时非常有效。我不需要在应用程序中存储任何id或机密 我还需要利用RelayManagementClient来管理来自应用程序的(CRUD)混合连接。我无法使用Microsoft.Azure.Management.Relay包找到类似的授权方法。此客户端的构造函数接受ServiceClientCredentials实例,该实例有三个派生类;基本身份验证凭据、证书凭据和令牌凭据—所
SdkContext.AzureCredentialsFactory
.FromServicePrincipal(config.ClientId,
config.ClientSecret,
config.TenantId,
AzureEnvironment.AzureGlobalCloud);
但通过这种方式,我在配置中公开了azure租户的详细信息。这在一开始并不是什么大问题,因为配置是安全的,但是我想知道是否可以为这个客户机使用ManagedEntityRedentials
我可以将这些值存储在使用托管标识凭据的KeyVault中,但可能以前有人这样做过。是的,在创建ServiceClientCredentials实例时,您可以使用托管标识进行身份验证,只需使用或代替
来自ServicePrincipal
。第一个用于系统分配的托管标识,第二个用于用户分配的托管标识。谢谢,它的工作原理与您所说的相同。AzureCredentials似乎有DefaultAzureCredential,但似乎可以创建一个行为方式相同的装饰器,首先尝试托管服务,然后尝试VS凭据(如果可能)。