Azure B2C中Authorization Code Flow配置问题求助
授权码流配置问题解决与疑问解答
一、为啥设置了授权码流还直接返回ID Token?按这几步改
- 修正B2C应用注册的配置
别直接把Access Token和ID Token的勾选全取消,得这么操作:- 进入B2C应用注册的「身份验证」页面,找到Web平台的配置项
- 把「隐式授权流」下的“ID tokens”和“Access tokens”都取消勾选
- 同时确认「授权码流」的选项已经勾选(不同版本的B2C界面可能在“高级设置”或“授权流”分组中)
- 检查用户流/自定义策略的支持
- 用内置用户流的话,进入用户流的「属性」页面,确认“支持的流”列表里包含“授权码流”
- 用自定义策略的话,要确保策略的
UserJourney和RelyingParty部分,配置了授权码流的响应类型支持
- 调整Angular端的配置
- 如果使用
angular-oauth2-oidc这类OAuth库,得明确禁用隐式流:OAuthService.configure({ responseType: 'code', implicitFlowInUse: false, // 其他必填配置:clientId、issuer、redirectUri等 }); - 检查请求参数,别携带隐式流相关参数,比如如果不需要即时获取ID Token,可以把scope里的
openid去掉(后续用code兑换时仍能拿到ID Token)
- 如果使用
二、关于重定向URI的PKCE提示是什么意思?
那句英文翻译为:你的重定向URI符合使用带PKCE的授权码流的条件
显示“eligible”(符合条件)的原因:
- PKCE是专门给SPA这类无法安全存储客户端密钥的应用设计的,用来提升授权码流的安全性,防止授权码被劫持
- Azure B2C会自动识别重定向URI的类型,如果是
http://localhost或者纯前端路由类的地址,就会判定该URI适合使用PKCE增强的授权码流 - 这意味着你的应用无需额外配置,直接就能开启PKCE模式,保护授权码交换的过程
内容的提问来源于stack exchange,提问作者buzzripper
相关产品推荐
相关产品推荐

