gpt4 book ai didi

c# - Azure RelayManagementClient 的 ManagedIdentityCredential

转载 作者:行者123 更新时间:2023-12-03 02:27:04 28 4
gpt4 key购买 nike

对于 Azure Key Vault,我使用 DefaultAzureCredential。当本地开发以及使用应用程序身份发布到 Azure 时,这非常有用。我不需要在应用程序中存储任何 ID 或 secret 。

我还需要利用 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 中,但也许以前有人这样做过。

编辑:这是将 AzureCredentials 添加到 DI 容器的代码。

services.AddSingleton(SdkContext.AzureCredentialsFactory.FromSystemAssignedManagedServiceIdentity(MSIResourceType.AppService, AzureEnvironment.AzureGlobalCloud));

最佳答案

是的,您可以使用托管身份进行身份验证,只需使用 FromSystemAssignedManagedServiceIdentityFromUserAssigedManagedServiceIdentity而不是在创建 ServiceClientCredentials 实例时使用 FromServicePrincipal。第一个用于系统分配的托管标识,第二个用于用户分配的托管标识。

关于c# - Azure RelayManagementClient 的 ManagedIdentityCredential,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66552217/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com