如何让App Service认证兼容b2clogin.com与自定义域名的令牌?
无需代码变更兼容多Issuer的App Service认证方案
针对你的场景,有两种无需修改代码的方法让App Service认证(EasyAuth)同时处理新旧Issuer声明的令牌:
方法1:添加多个B2C身份提供商实例
在Azure门户的App Service认证面板里,给同一个B2C租户配置两个OpenID Connect身份提供商:
- 第一个沿用旧配置:颁发者URL填
https://xxxx.b2clogin.com/xxxx.onmicrosoft.com/v2.0/.well-known/openid-configuration?p={mySigninPolicy},对应老版本应用的令牌Issuer。 - 第二个适配自定义域名:颁发者URL填
https://mycustomdomain.com/11111111-1111-1111-1111-111111111111/v2.0/,对应新版本应用的令牌Issuer。
配置细节:
- 两个身份提供商可以共用同一个客户端ID和密钥,因为本质指向同一个B2C应用。
- 确保两个身份提供商都被设置为允许的身份来源,这样EasyAuth会自动校验来自任一Issuer的有效令牌。
方法2:通过应用设置自定义Issuer验证规则
直接在App Service的应用配置里添加规则,允许多个合法Issuer:
- 进入App Service的「配置」→「应用程序设置」
- 添加配置项:
- 键:
WEBSITE_AUTH_OPENID_ISSUER_VALIDATION_POLICY - 值:
AllowMultipleIssuers
- 键:
- 再添加允许的Issuer列表:
- 键:
WEBSITE_AUTH_OPENID_ALLOWED_ISSUERS - 值:
https://xxxx.b2clogin.com/xxxx.onmicrosoft.com/v2.0/,https://mycustomdomain.com/11111111-1111-1111-1111-111111111111/v2.0/
- 键:
注意:该方法要求App Service使用的Runtime版本支持该配置,目前Azure默认的Runtime均已兼容。
验证步骤
配置完成后,分别用老版本和新版本应用获取的令牌调用Azure Function,确认两者都能正常通过认证、返回200响应即可。
内容的提问来源于stack exchange,提问作者Phil Hopkins
相关产品推荐
相关产品推荐

