3

我们有一个函数,在 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 Unauthorized错误。相反,如果我们将颁发者 URL 更改为指向新的 Signin_Only 自定义策略,则使用新策略登录的用户的请求可以正常工作,但使用内置策略登录会失败并出现 401 错误。

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

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

4

1 回答 1

0

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

例如我的内置策略 jwk 在此处输入图像描述

我的自定义政策 jwk 在此处输入图像描述

于 2020-02-27T02:29:11.800 回答