所以我之前是使用B2C进行身份验证。我已经配置了我的功能,以便它们需要通过 B2C 进行身份验证,并且一切正常。如果您尝试在未经身份验证的情况下调用他们,则不会发生任何事情(或者更确切地说,您收到错误)。
我想使用第三方提供商,例如 Auth0,因为目前 B2C 存在一些限制和问题,这些限制和问题似乎只能非常缓慢地得到解决。无论如何,我不确定应该如何为此配置我的功能。我转到“身份验证/授权设置”边栏选项卡,并将“应用程序服务身份验证”设置为“打开”,将“ token 存储”设置为“打开”,并将“请求未经身份验证时采取的操作”设置为“允许匿名”请求(无行动)”。在“身份验证提供程序”下,所有这些都设置为“未配置”。我的第一个问题是,在这个阶段,如果我使用 Postman 调用任何函数,我可以在没有任何身份验证信息的情况下很好地调用它们。就像如果他们完全没有受到保护。
我不确定应该设置什么,以便我的功能需要通过第三方进行身份验证,而不是通过 5 个默认列出的提供商进行身份验证。
或者我的想法是错误的?解决方案是否是允许未经身份验证的访问我的函数,但在函数本身中进行我的 token 验证/等,而不是依赖 Microsoft 在幕后所做的任何事情来验证请求(例如当您使用 B2C 时)? p>
最佳答案
您的最终想法是正确的,如果您使用应用服务身份验证不支持的第 3 方身份验证提供商,则最好的选择是允许未经身份验证的访问并自行验证请求。
但是,请记住,任何输入绑定(bind)都将在函数代码执行(并且发生身份验证验证)之前运行,因此您需要小心使用输入绑定(bind)和自定义身份验证。
<小时/>更新:应用服务身份验证确实有“自带身份验证提供程序”的待办事项,因此希望这种方案很快能得到更好的支持。
关于azure - 将第三方身份验证提供程序与 Azure Functions 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42235843/