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

如何在Kubernetes中让多个Azure应用通过oauth2_proxy完成身份认证

配置方案:OAuth2_Proxy校验Azure AD签发的跨应用AccessToken

要实现用第二个应用的AccessToken访问受oauth2_proxy保护的第一个应用的API,按以下步骤配置即可:

1. Azure AD侧前置配置

  • 两个应用均需提前在目标Azure AD租户中注册为独立的应用注册项
  • 为受保护的第一个应用暴露自定义API作用域,示例作用域值为api://<第一个应用的客户端ID>/access_as_user
  • 在第二个应用的「API权限」配置页,添加上述第一个应用暴露的自定义作用域,且完成管理员同意授权,确保第二个应用请求令牌时可获取对应作用域声明

2. OAuth2_Proxy核心参数配置

需调整oauth2_proxy的启动参数(或Helm values配置),启用JWT令牌校验能力,必选配置如下:

  • 指定身份提供商为Azure AD:--provider=azure
  • 绑定Azure AD租户ID:--azure-tenant=<你的Azure AD租户ID>
  • 配置令牌受众校验规则,匹配第一个应用的标识:--audience=<第一个应用的客户端ID>,也可填写自定义API前缀api://<第一个应用的客户端ID>
  • 开启Authorization头Bearer令牌校验,跳过Cookie会话校验逻辑:--skip-jwt-bearer-tokens=true
  • 配置JWT签发方白名单,关联Azure AD租户的令牌签发地址:--extra-jwt-issuers=https://sts.windows.net/<你的Azure AD租户ID>/=<第一个应用的客户端ID>,如果使用v2.0端点申请令牌,签发地址改为https://login.microsoftonline.com/<你的Azure AD租户ID>/v2.0
  • (可选)开启作用域强校验,确保令牌仅包含授权作用域可访问:--scope=api://<第一个应用的客户端ID>/access_as_user

3. 校验逻辑注意事项

oauth2_proxy对AccessToken的默认校验规则无需额外调整,自动覆盖以下校验项:

  1. 令牌签名有效性:自动拉取Azure AD公开的JWKS公钥集完成签名校验,无需手动配置公钥
  2. 令牌有效期:自动拒绝过期令牌
  3. 受众一致性:令牌的aud声明必须匹配配置的audience值
  4. 签发方一致性:令牌的iss声明必须匹配配置的extra-jwt-issuers中的签发地址

4. 第二个应用侧令牌请求调整

第二个应用请求AccessToken时,请求参数中的scope必须显式指定为第一个应用暴露的自定义作用域api://<第一个应用的客户端ID>/access_as_user,不能使用默认的Graph API或者其他资源的作用域,否则获取到的令牌受众不符合校验要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:21:01