使用不记名令牌/OAuth2 的 Azure Functions 根 URL 身份验证

Posted

技术标签:

【中文标题】使用不记名令牌/OAuth2 的 Azure Functions 根 URL 身份验证【英文标题】:Azure Functions root URL authentication with bearer token/OAuth2 【发布时间】:2021-06-12 17:43:24 【问题描述】:

我创建了一个函数应用程序。假设应用的根 URL 是:https://mycompanyportal.azurewebsites.net。我想验证根 URL 并在没有来自浏览器或任何地方的适当令牌的情况下返回“401 未授权”。

请注意,我已经可以成功验证(承载/OAuth2)对应用程序中托管的不同功能(但不是根 URL)的请求。假设“默认”是我的应用程序中的功能之一,那么我可以在调用 URL(https://mycompanyportal.azurewebsites.net/api/Default) 时验证请求。当控件到达函数代码的第一行时,我借助在 if 条件中调用的验证器方法完成了此操作。

请告诉我如何在代码中使用不记名/OAuth2 验证来验证函数应用的根 URL。 TIA

【问题讨论】:

你能显示代码吗? 【参考方案1】:

一种方法是使用函数代理并将根 URL 重新路由到特定函数,其中配置了不记名令牌验证。在您的 proxies.json 中,您可以添加以下 json。因此,当您点击“https://example.com”(根 URL)时,它将被重新路由到您指定的函数并启用不记名令牌身份验证。

#proxies.json
    
      "proxies": 
        "EmptyRouteProxy": 
          "matchCondition": 
            "route": "/"
          ,
          "backendUri": "http://localhost:7071/api/SampleFunc"
        
      
    

【讨论】:

【参考方案2】:

根 url 指向一个静态网页。看起来像这样:

可以禁用此页面。但是您无法对其进行身份验证 - 在此端点上不能有任何代码。

【讨论】:

以上是关于使用不记名令牌/OAuth2 的 Azure Functions 根 URL 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

OAUTH2.0 不记名令牌不工作

OAuth2 不记名令牌是不是已签名?

使用不记名令牌授权 Azure 请求?

使用 Spring Security OAuth2 进行访问令牌请求的 JWT 不记名交换

在标头中传递 openid-connect oauth2 不记名令牌

如何诊断尝试在 c# .NET Core 中获取 OAuth2 不记名令牌的 401 错误?