Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure RelayManagementClient的ManagedEntityCredential_C#_Azure_Identity_Relay - Fatal编程技术网

C# Azure RelayManagementClient的ManagedEntityCredential

C# Azure RelayManagementClient的ManagedEntityCredential,c#,azure,identity,relay,C#,Azure,Identity,Relay,对于Azure密钥库,我使用DefaultAzureCredential。这在本地开发和使用应用程序标识发布到Azure时非常有效。我不需要在应用程序中存储任何id或机密 我还需要利用RelayManagementClient来管理来自应用程序的(CRUD)混合连接。我无法使用Microsoft.Azure.Management.Relay包找到类似的授权方法。此客户端的构造函数接受ServiceClientCredentials实例,该实例有三个派生类;基本身份验证凭据、证书凭据和令牌凭据—所

对于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凭据(如果可能)。