我正在使用Azure Functions,并且正在使用AAD进行身份验证。但是,我有一个使用EventGrid触发器的函数,因此我需要为该函数禁用身份验证。为此,我已经在功能应用程序中设置了auth设置以允许匿名请求,并且我正在使用authorization.json文件为所有功能(除了我想匿名的功能)打开身份验证。
如果我使用这样的authorization.json文件,那么当我进入门户网站并单击其中一个功能时,会收到一条错误消息,提示该功能运行时无法启动:
{
"routes": [
{
"path_prefix": "/",
"policies": { "unauthenticated_action": "RejectWith401" }
},
{
"path_prefix": "/runtime/webhooks/EventGrid",
"policies": { "unauthenticated_action": "AllowAnonymous" }
}
]
}
但是,如果我这样更改它,门户将再次起作用,但是我认为管理端点现在将完全开放。
{
"routes": [
{
"path_prefix": "/",
"policies": { "unauthenticated_action": "RejectWith401" }
},
{
"path_prefix": "/runtime/webhooks/EventGrid",
"policies": { "unauthenticated_action": "AllowAnonymous" }
},
{
"path_prefix": "/admin",
"policies": { "unauthenticated_action": "AllowAnonymous" }
}
]
}
我应如何配置我的authorization.json文件,使除EventGrid函数外的所有内容都安全?
答案 0 :(得分:0)
我正在使用以下内容,并且有效。
{
"routes": [
{
"path_prefix": "/api",
"policies": { "unauthenticated_action": "RejectWith401" }
},
{
"path_prefix": "/runtime/webhooks/EventGrid",
"policies": { "unauthenticated_action": "AllowAnonymous" }
}
]
}
在根目录“ /”上没有条目可修复门户。
即使未指定/ admin,/ admin网址也受到保护。我尝试通过浏览器访问它,但返回未经授权的401。
答案 1 :(得分:0)
这个authorization.json 文件最近不起作用。我正在尝试我的swagger 函数以匿名方式执行,使用简单的AUTH 启用函数应用程序。这里基于规则有两个结果
(1)。使用身份验证启用轻松身份验证:需要身份验证。
结果:Swagger 函数(匿名函数)未调用,因此我们的 swagger 页面未加载。可以使用 postman 使用令牌调用 API。
(2)。使用身份验证启用轻松身份验证:允许未经身份验证的访问。
此设置将允许 swagger 函数调用(直到这很好并且我们的 swagger 页面加载)以及 api 函数调用而不提供令牌(这是我想用令牌保护的)。
我不知道authorization.json 是否被其他方法取代。我正在寻找那个。任何帮助将不胜感激。