azure-functions - Azure 应用服务 - 使用两个 B2C 策略保护功能

标签 azure-functions openid-connect azure-ad-b2c azure-web-app-service

我们有一个功能,在 Azure 应用服务中运行,通过 Easyauth 为托管在 Azure AD B2C 租户中的用户帐户处理经过身份验证的调用。

这些帐户以前是通过 B2C 内置注册和登录政策自助服务的。我们正在转向仅限邀请的模型,并且我们已经根据 Microsoft 示例实现了 B2C SignIn_Only 自定义策略

我的问题专门针对应用服务配置。在身份验证/授权设置中,我们为我们的功能打开了应用服务身份验证。 “请求未通过身份验证时采取的操作”设置为“允许匿名请求(无操作)”。 Azure Active Directory Provider 配置了我们功能的客户端 ID,目标受众设置为我们的移动应用程序。 颁发者 URL 设置为:

https://login.microsoftonline.com/ {OurTenantName}/v2.0/.well-known/openid-configuration?p={OurBuiltinSignUpSignInPolicy}

使用此配置,来自使用内置策略登录的用户的请求工作正常,但使用自定义策略登录的用户将返回 401 未经授权 错误。相反,如果我们更改颁发者 URL 以指向新的 Signin_Only 自定义策略,则使用新策略登录的用户请求可以正常工作,但使用内置策略登录会失败并出现 401 错误。

我已经使用 login.microsoft.com 和 {ourtenant}.b2clogin.com 端点进行了尝试,结果相同。我还检查了 JWT token ,一切正常。当然,发行者不同,但包括签名 key 在内的其他一切看起来都是正确的。

是否可以支持用户通过内置和自定义策略登录?非常感谢。

最佳答案

据我所知,我们不能在 Azure 函数中使用内置和自定义策略。因为内置和自定义策略具有不同的颁发者元数据。比如jwk。因此,我们将使用这两种策略获得不同的访问 token 签名。但是,我们只能在 Azure 函数中提供一个元数据端点。因此,该函数只能接受具有您配置的策略的访问 token 。

例如 我的内置策略 jwk enter image description here

我的自定义策略jwk enter image description here

关于azure-functions - Azure 应用服务 - 使用两个 B2C 策略保护功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60418833/

相关文章:

AzureSQLDB-发送表更新以调用函数

azure - 配置 Postman 以测试从 Azure AD B2C 获取新的访问 token

azure - 使用 Azure B2C 对用户进行身份验证,以访问 API 管理背后的微服务

Azure函数部署错误: Error: ENOENT: no such file or directory,统计 '/home/site/repository/node_modules/.bin/semver'

java - 这需要 dotnet cli 位于路径上。确保安装 .NET Core SDK 2.0 https ://www. microsoft.com/net/core eclipse azure 函数错误

.net - Azure函数路由参数为空

Keycloak 注销响应 414

c# - 将 login_hint 与 OpenID 结合使用

java - 从 Java API 访问 keycloak 角色/用户属性

c# - 如何以编程方式通过 Microsoft Graph 获取 Azure AD b2c 登录日志