启用用户分配标识时获取访问令牌

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} 

参考 - https://docs.microsoft.com/en-us/azure/key-vault/general/service-to-service-authentication#connection-string-support