在Azure函数中使用authorization.json会破坏门户

时间:2019-01-31 14:39:28

标签: azure authentication azure-functions

我正在使用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函数外的所有内容都安全?

2 个答案:

答案 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 启用函数应用程序。这里基于规则有两个结果

enter image description here

(1)。使用身份验证启用轻松身份验证:需要身份验证。

结果:Swagger 函数(匿名函数)未调用,因此我们的 swagger 页面未加载。可以使用 postman 使用令牌调用 API。

(2)。使用身份验证启用轻松身份验证:允许未经身份验证的访问enter image description here

此设置将允许 swagger 函数调用(直到这很好并且我们的 swagger 页面加载)以及 api 函数调用而不提供令牌(这是我想用令牌保护的)。

我不知道authorization.json 是否被其他方法取代。我正在寻找那个。任何帮助将不胜感激。