将第三方身份验证提供程序与 Azure Functions 结合使用
Using a 3rd party auth provider with Azure Functions
所以我之前是使用B2C进行身份验证的。我已经配置了我的功能,因此它们需要通过 B2C 进行身份验证,并且一切正常。如果您尝试在未经过身份验证的情况下调用它们,则什么也没有发生(或者更确切地说,您遇到了错误)。
我想使用第 3 方提供商,如 Auth0,因为目前 B2C 存在一些限制和问题,似乎只能非常缓慢地解决。无论如何,我不确定我应该如何为此配置我的功能。我转到 Authentication/Authorization 设置 blade 并将 "App Service Authentication" 设置为 "on",将 "Token Store" 设置为 "On",以及 "Action to take when request is not authenticated"设置为 "Allow Anonymous requests (no action)"。在 "Authentication Providers" 下,所有这些都设置为“未配置”。我的第一个问题是,在这个阶段,如果我使用 Postman 调用我的任何函数,我可以在没有任何身份验证信息的情况下调用它们。它是好像他们完全没有受到保护。
我不确定我应该设置什么,以便我的功能需要通过第三方而不是 5 个默认列出的提供商进行身份验证。
还是我想错了?解决方案是允许对我的功能进行未经身份验证的访问,但在功能本身中做我的令牌 validation/etc 而不是依赖微软在幕后所做的任何事情来验证请求(比如当你使用 B2C 时)?
您最后的想法是正确的,如果您要使用应用服务身份验证不支持的第 3 方身份验证提供程序,最好的选择是允许未经身份验证的访问并自行验证请求。
但是,请记住,任何输入绑定都会 运行 在您的函数代码执行之前(并且会进行身份验证),因此您在使用输入绑定和自定义身份验证时需要小心。
更新:应用程序服务身份验证确实有 'bring your own auth provider' 待办事项,希望这种情况能尽快得到更好的支持。
所以我之前是使用B2C进行身份验证的。我已经配置了我的功能,因此它们需要通过 B2C 进行身份验证,并且一切正常。如果您尝试在未经过身份验证的情况下调用它们,则什么也没有发生(或者更确切地说,您遇到了错误)。
我想使用第 3 方提供商,如 Auth0,因为目前 B2C 存在一些限制和问题,似乎只能非常缓慢地解决。无论如何,我不确定我应该如何为此配置我的功能。我转到 Authentication/Authorization 设置 blade 并将 "App Service Authentication" 设置为 "on",将 "Token Store" 设置为 "On",以及 "Action to take when request is not authenticated"设置为 "Allow Anonymous requests (no action)"。在 "Authentication Providers" 下,所有这些都设置为“未配置”。我的第一个问题是,在这个阶段,如果我使用 Postman 调用我的任何函数,我可以在没有任何身份验证信息的情况下调用它们。它是好像他们完全没有受到保护。
我不确定我应该设置什么,以便我的功能需要通过第三方而不是 5 个默认列出的提供商进行身份验证。
还是我想错了?解决方案是允许对我的功能进行未经身份验证的访问,但在功能本身中做我的令牌 validation/etc 而不是依赖微软在幕后所做的任何事情来验证请求(比如当你使用 B2C 时)?
您最后的想法是正确的,如果您要使用应用服务身份验证不支持的第 3 方身份验证提供程序,最好的选择是允许未经身份验证的访问并自行验证请求。
但是,请记住,任何输入绑定都会 运行 在您的函数代码执行之前(并且会进行身份验证),因此您在使用输入绑定和自定义身份验证时需要小心。
更新:应用程序服务身份验证确实有 'bring your own auth provider' 待办事项,希望这种情况能尽快得到更好的支持。