Dzi*_*ior 5 .net azure bearer-token azure-resource-manager service-principal
我需要获取服务主体的不记名访问令牌。我想在 C# 应用程序中使用它。
鉴于我有主体 ID 和秘密 ID 以及租户 ID,我如何获取它?
编辑:更具体地说:我有 和 的服务client_id主体client_secret。我可以使用以下命令通过 azure cli 获取不记名令牌
az login --service-principal -u client_id --tenant my_tenant_domain -p client_secret
az account set --subscription my_subscription_id
az account get-access-token
Run Code Online (Sandbox Code Playgroud)
我想在不使用 CLI 的情况下获得相同的令牌,即使用 Azure SDK 进行点网或休息调用
我最终得到以下代码:
var adSettings = new ActiveDirectoryServiceSettings
{
AuthenticationEndpoint = new Uri(AzureEnvironment.AzureGlobalCloud.AuthenticationEndpoint),
TokenAudience = new Uri(AzureEnvironment.AzureGlobalCloud.ManagementEndpoint),
ValidateAuthority = true
};
await ApplicationTokenProvider.LoginSilentAsync(
TenantId.Value,
ServicePrincipalId,
ServicePrincipalSecret,
adSettings,
TokenCache.DefaultShared);
var token = TokenCache.DefaultShared.ReadItems()
.Where(t => t.ClientId == ServicePrincipalId)
.OrderByDescending(t => t.ExpiresOn)
.First();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6269 次 |
| 最近记录: |