azure - Azure 函数和容器审计
问题描述
我在 Azure 容器中有一个文件,可通过 Azure 函数访问。
调用该函数时 - 首先是针对 Azure AD 的 AuthD,然后才加载文件。
识别“谁”访问了我的文件的最简单方法是什么?
任何用户 ID 都不会作为参数传递。该广告中有 1000 多个用户。
请指导。
解决方案
应用服务使用特殊标头将用户声明传递给您的应用程序。不允许外部请求设置这些标头,因此它们仅在由应用服务设置时才存在。一些示例标题包括:
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();
}
推荐阅读
- java - 在 jar 的类路径中添加 com.sun.tools.jar
- mysql - 与 Mariadb 10.2 相比,Mysql 5.5 中的查询非常慢
- java - 如何在 springbatch 项目阅读器中读取多于文本文件
- javascript - Monaco Editor 自定义语言智能感知
- .net - 使用针对 .net 4.5 / .net 标准 2.0 的 nuget 包时,在 .net 框架 4.7.1 / 4.7.2 中缺少对 .net 核心 dll 的引用
- c# - DropDownList 选择发布为空 ASP.NET MVC
- android - Android-TV 应用显示白屏
- javascript - 为什么'toPromise()'对我不起作用
- javascript - 在子状态更改时触发父组件的更新
- python - 在python中创建一定范围内的随机数字列表