首页 > 解决方案 > Azure 函数和容器审计

问题描述

我在 Azure 容器中有一个文件,可通过 Azure 函数访问。

调用该函数时 - 首先是针对 Azure AD 的 AuthD,然后才加载文件。

识别“谁”访问了我的文件的最简单方法是什么?

任何用户 ID 都不会作为参数传递。该广告中有 1000 多个用户。

请指导。

标签: azureazure-functions

解决方案


应用服务使用特殊标头将用户声明传递给您的应用程序。不允许外部请求设置这些标头,因此它们仅在由应用服务设置时才存在。一些示例标题包括:

X-MS-CLIENT-PRINCIPAL-NAME

X-MS-CLIENT-PRINCIPAL-ID

可以request.headers['your-header-name']用来获取对应的值。代码示例如下:

public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
HttpRequest httpRequest, 
ILogger logger)
{   
    var name1=httpRequest.Headers["X-MS-CLIENT-PRINCIPAL-NAME"].ToString();
}

更详细的可以参考这个官方文档,也可以参考这个帖子


推荐阅读