启用用户分配标识时获取访问令牌
Obtaining access token when User Assigned Identity is enabled
我正在尝试使用托管标识通过 Azure 门户访问 Azure Function。如果我使用系统分配的身份,下面的代码行效果很好。
[FunctionName("FunctionDemo")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req,
ILogger log)
{
log.LogInformation("Starting to get accessToken through client id");
string accessToken = await azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com/")
return req.CreateResponse(HttpStatusCode.OK);
}
但是,当我切换到用户分配的标识时,相同的代码会抛出异常。
如果你想使用用户分配的身份,你需要像下面这样在你的函数中指定AzureServicesAuthConnectionString
环境变量,然后AzureServiceTokenProvider
将使用用户分配的身份来获取令牌。
RunAs=App;AppId={ClientId of user-assigned identity}
我正在尝试使用托管标识通过 Azure 门户访问 Azure Function。如果我使用系统分配的身份,下面的代码行效果很好。
[FunctionName("FunctionDemo")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req,
ILogger log)
{
log.LogInformation("Starting to get accessToken through client id");
string accessToken = await azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com/")
return req.CreateResponse(HttpStatusCode.OK);
}
但是,当我切换到用户分配的标识时,相同的代码会抛出异常。
如果你想使用用户分配的身份,你需要像下面这样在你的函数中指定AzureServicesAuthConnectionString
环境变量,然后AzureServiceTokenProvider
将使用用户分配的身份来获取令牌。
RunAs=App;AppId={ClientId of user-assigned identity}