You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure B2C集成Google IDP时,如何阻止篡改response_type获取token?

解决Azure B2C对接Google IDP时的response_type篡改安全问题

针对你遇到的这个问题,可以从Google IDP源头限制、Azure B2C端拦截两个维度入手,彻底阻断篡改response_type为token的恶意请求:

一、从Google IDP端限制隐式流请求

  • 登录Google Cloud控制台,找到对应的OAuth 2.0客户端ID,进入设置页面后,仅勾选**授权码流(code)**作为允许的响应类型,直接禁用隐式流(token)选项。这样Google会直接拒绝所有response_type=token的请求,从源头阻断风险。
  • 强制开启**PKCE(Proof Key for Code Exchange)**验证:在Google OAuth客户端设置里启用PKCE要求,由于隐式流不支持PKCE,就算攻击者篡改response_type参数,因无法提供合法的code_challenge和code_verifier,Google会直接拒绝该请求。
  • 限制请求来源:在Google OAuth客户端的"授权来源"设置中,添加Azure B2C的域名作为唯一允许的请求发起方,非B2C域名的请求会被直接拦截。

二、在Azure B2C端拦截非法请求

  • 关闭应用的隐式流支持:在Azure B2C的应用注册页面,进入"身份验证"设置,取消勾选"隐式授权和混合流"下的所有选项(ID令牌、访问令牌),仅保留授权码流的配置。这样Azure B2C本身会直接拒绝任何隐式流的请求,不会将篡改后的请求转发给Google。
  • 自定义策略拦截参数:如果使用Azure B2C自定义策略,可添加一个验证步骤,在请求转发到Google之前检查response_type参数:
    1. 创建一个字符串比较的ClaimsTransformation,判断response_type是否等于code;
    2. 在用户旅程的ClaimsProviderSelection步骤前,添加一个ValidationTechnicalProfile调用该转换,若参数不匹配则直接返回错误,终止登录流程。

三、额外安全加固

  • 缩短Google access_token的有效期:在Google Cloud控制台的OAuth设置里,将access_token的过期时间设置为最短允许值(比如15分钟),就算令牌被窃取,可被滥用的时间窗口也会大幅缩小。

内容的提问来源于stack exchange,提问作者Mi1anovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:01:06