代码之家  ›  专栏  ›  技术社区  ›  Code Monkey

将authorization.json与Azure函数一起使用会破坏门户

  •  1
  • Code Monkey  · 技术社区  · 6 年前

    我使用Azure函数,我使用AAD进行身份验证。但是,我有一个函数使用EventGrid触发器,因此我需要禁用该函数的身份验证。为了实现这一点,我在function应用程序中设置了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" }
        }
      ]
    }
    

    0 回复  |  直到 6 年前
        1
  •  2
  •   guest    6 年前

    我使用了下面的方法,它很有效。

    {
      "routes": [
        {
          "path_prefix": "/api",
          "policies": { "unauthenticated_action": "RejectWith401" }
        },
        {
          "path_prefix": "/runtime/webhooks/EventGrid",
          "policies": { "unauthenticated_action": "AllowAnonymous" }
        }
      ]
    }
    

    即使没有指定/admin,/admin url也受到保护。我尝试通过浏览器访问它,它返回未经授权的401。

        2
  •  0
  •   Sandeep sharma    3 年前

    最近此authorization.json文件不起作用。我正在尝试使用easy AUTH enabled function app以匿名方式执行我的swagger函数。根据规则,这里有两个结果

    enter image description here

    (1). 轻松身份验证已启用

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

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

    这个设置将允许swagger函数调用(直到这个罚款和我们的swagger页面加载)以及api函数调用,而不提供令牌(我想用令牌保护)。

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