Google Identity Platform能否向Apache返回JWT声明令牌以集成mod_auth_openidc?
Google Identity Platform与Apache mod_auth_openidc集成指南及疑问解答
可行性确认
完全可以实现集成,Google Identity Platform(以下简称GIP)基于OAuth 2.0/OpenID Connect(OIDC)标准,并非仅支持客户端JavaScript授权,它完全能作为标准OIDC身份提供商(IdP)与mod_auth_openidc对接,实现站点单点登录(SSO)。
自定义声明与JWT返回问题
你的理解有误,GIP支持通过标准OIDC流程向Apache服务器返回包含自定义声明的JWT,具体实现步骤如下:
- 添加自定义用户声明:
- 可直接在GIP控制台的用户管理界面为单个用户添加自定义声明(如
role: editor); - 若需批量操作,使用GIP Admin SDK调用API为用户设置声明,注意指定声明要包含在ID Token中。
- 可直接在GIP控制台的用户管理界面为单个用户添加自定义声明(如
- 配置mod_auth_openidc作为依赖方(RP):
- 在GIP控制台创建Web类型的OIDC客户端ID,设置回调URL为Apache服务器的
/oauth2/callback路径(需与Apache配置一致); - 配置Apache的mod_auth_openidc核心参数,示例如下:
# 指定GIP的OIDC元数据地址 OIDCProviderMetadataURL https://accounts.google.com/.well-known/openid-configuration # GIP控制台获取的客户端ID和密钥 OIDCClientID your-gip-client-id OIDCClientSecret your-gip-client-secret # 回调URL需与GIP配置一致 OIDCRedirectURI https://your-domain.com/oauth2/callback # 请求的权限范围,openid是必须的 OIDCScope "openid email profile" # 未认证用户跳转至登录 OIDCUnAuthAction auth # 基于自定义声明的权限控制示例:仅允许role为admin的用户访问/admin路径 <Location "/admin"> Require claim role:admin </Location>
- 在GIP控制台创建Web类型的OIDC客户端ID,设置回调URL为Apache服务器的
- 验证JWT与自定义声明:
用户完成登录后,GIP会向mod_auth_openidc返回ID Token(JWT格式),其中包含你设置的自定义声明。mod_auth_openidc会自动解析JWT,你可以通过Apache的Require claim指令实现基于权限的访问控制。
注意事项
- 在GIP控制台配置OIDC客户端时,需确保自定义声明被允许包含在ID Token中;
- 若使用Admin SDK设置声明,需指定
id_token作为声明的受众,否则声明不会出现在返回的ID Token里; - 确保Apache服务器能正常访问GIP的OIDC端点,避免网络防火墙限制。
内容的提问来源于stack exchange,提问作者QF0
相关产品推荐
相关产品推荐

