启用用户分配的身份时获取访问令牌

Son*_*ite 1 azure-functions azure-managed-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);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我切换到用户分配的身份时,相同的代码会引发异常。 在此处输入图片说明

Joy*_*ang 5

如果要使用用户分配的身份,则需要AzureServicesAuthConnectionString在函数中指定环境变量,如下所示,然后AzureServiceTokenProvider将使用用户分配的身份获取令牌。

RunAs=App;AppId={ClientId of user-assigned identity} 
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明