后台:我使用AAD启用了应用服务身份验证(easyauth)部署的Azure功能应用,连接到Azure AD B2C租户。这一切都很好,正如预期的那样。这就是说我遇到了一个新的场景,我想支持使用相同的功能应用但没有打开身份验证。具体来说,我希望匿名调用一个特定的函数(甚至可能在函数代理后面)。
问题:是否可以在同一个功能应用中禁用其他所有其他功能验证的特定功能的auth?
我已经想过将“请求未经过身份验证时采取的操作”更改为“允许匿名请求(无操作)”的想法然后在我需要auth的其他所有函数中以某种方式完成任务,执行某事以确保请求实际上已经过身份验证。请注意,在这种情况下,我不知道某些是什么我必须做的。
最糟糕的情况我会设置一个完全独立的功能应用程序,只暴露我需要匿名调用的单个函数...但是感觉应该有一个更好的解决方案,不要求我在两个项目之间共享源代码。
答案 0 :(得分:3)
像URL授权规则这样的东西会有帮助吗?它适用于Web应用程序和功能应用程序。
https://blogs.msdn.microsoft.com/appserviceteam/2016/11/17/url-authorization-rules/
对于您的方案,您首先需要允许在门户中进行匿名访问。接下来,您需要在站点的根目录中创建authorization.json文件并定义两个路由:
尝试一下,看看它是否适合你。通常,我们希望改进我们的身份验证功能与Azure功能的集成,这是我们正在研究的一种方法。