【问题标题】:Azure URL authorization rules not being applied未应用 Azure URL 授权规则
【发布时间】:2021-02-07 23:36:19
【问题描述】:

我想在 Web 应用程序上为除一个以外的所有页面启用身份验证/授权。我有一个元数据页面,我希望在应用程序的其余部分需要身份验证时保持公开。

基于许多其他stackoverflowpostsblogs,我在应用程序上启用了身份验证/授权,并将“请求未通过身份验证时采取的操作”设置为“允许匿名请求(无操作)”。我创建了一个 authorization.json 文件并将其放在站点根目录中:

{
    "routes": 
    [{
        "path_prefix": "/",
        "policies": 
        {
            "unauthenticated_action": "RedirectToLoginPage" 
        }
    },{
        "path_prefix": "/metadata",
        "policies": 
        { 
            "unauthenticated_action": "AllowAnonymous" 
        }
    }]
}

我预计通过此设置,对基本站点和除/metadata 之外的所有页面的未经身份验证的请求都需要登录。但是,我没有被重定向到从任何页面登录。我已确保我已退出 Azure 并使用私人会话,但我仍然可以直接进入。 作为一个实验,我更改了身份验证设置以将未经身份验证的请求重定向到 AD 登录,并且所有页面都重定向到登录,正如预期的那样,但这确实破坏了其他功能,因为 /metadata 页面受到保护。

【问题讨论】:

    标签: azure azure-active-directory azure-web-app-service


    【解决方案1】:

    按照您提供的posts,在wwwroot 下设置authorization.json,并将webapp Action to take when request is not authenticated 设置为Allow Anonymous requests (no action),然后重新启动webapp 即可正常工作。

    注意:请记住重启您的应用服务以使更改生效。

    【讨论】:

    • 我已经完成了所有这些。我已经重新启动了几次。我还完全停止了该应用程序并重新启动它。
    • 这很奇怪。我在我的网站上进行测试并与您得到相同的结果,然后我重新启动应用程序并且它工作正常。
    【解决方案2】:

    我不知道为什么,但 EasyAuth 无法与我的应用程序一起使用。我尝试重新排列文件和 URL 结构,将 authentication.json 放在文件树中的不同位置......没有任何效果。我最终开始寻找其他解决方案。
    我登陆的是使用 Microsoft Identity 平台的 OpenID Connect v2。回购和教程here。使用它,您可以使用AuthorizeAllowAnonymous 属性装饰类或方法以定义授权行为。
    让这个工作起来肯定需要更多的努力(并且头撞墙),但它正在工作,所以这很酷。我也相信这种设置将允许我应用基于角色的限制,这是理想的。

    【讨论】:

      【解决方案3】:

      我也遇到了这个问题,原因显然是我将authorization.json放在了网站wwwroot文件夹中,而不是Azure创建的wwwroot文件夹中。如果其他人遇到此问题,请确保您已将 json 文件放在正确的文件夹中:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-15
        • 1970-01-01
        • 2019-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-15
        • 2022-09-23
        相关资源
        最近更新 更多