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

Apache中使用mod_auth_openidc为双应用配置多OIDCRedirectURI的方法

关于mod_auth_openidc配置多个应用的OIDC重定向URI问题

首先明确:mod_auth_openidc不支持在同一个Apache服务器/虚拟主机上下文内配置多个独立的OIDCRedirectURI,该参数属于全局(服务器或虚拟主机级)配置,无法按<Location>块单独拆分。

不过可以根据你的需求选择以下两种可行方案:

方案1:同一域名下复用全局回调路径,独立配置客户端参数

如果两个应用只是需要使用不同的OIDC客户端(不同ClientID、密钥、权限范围),可以在各自的<Location>块内覆盖对应配置项,共用同一个全局的OIDCRedirectURI。模块会根据请求上下文自动区分处理:

# 全局基础配置(所有应用共用的回调路径)
OIDCRedirectURI https://your-domain.com/oauth2/callback
OIDCProviderMetadataURL https://your-oidc-provider/.well-known/openid-configuration

# 第一个应用的配置
<Location /application_ONE.html>
  AuthType openid-connect
  Require valid-user
  # 覆盖第一个应用的客户端ID
  OIDCClientID app-one-client-id
  # 覆盖第一个应用的客户端密钥
  OIDCClientSecret app-one-client-secret
  # 覆盖第一个应用的权限范围
  OIDCScope "openid email profile"
</Location>

# 第二个应用的配置
<Location /application_TWO.html>
  AuthType openid-connect
  Require valid-user
  # 覆盖第二个应用的客户端ID
  OIDCClientID app-two-client-id
  # 覆盖第二个应用的客户端密钥
  OIDCClientSecret app-two-client-secret
  # 覆盖第二个应用的权限范围
  OIDCScope "openid profile"
</Location>

方案2:使用独立虚拟主机配置不同回调路径

如果你的业务必须要求两个应用使用完全独立的回调路径,只能通过创建独立的虚拟主机实现,每个虚拟主机拥有自己的mod_auth_openidc全局配置(包括专属的OIDCRedirectURI):

# 第一个应用的虚拟主机
<VirtualHost *:443>
  ServerName app1.your-domain.com
  SSLEngine on
  SSLCertificateFile /path/to/app1-cert.pem
  SSLCertificateKeyFile /path/to/app1-key.pem

  # 第一个应用独立的OIDC配置
  OIDCRedirectURI https://app1.your-domain.com/oauth2/callback
  OIDCProviderMetadataURL https://your-oidc-provider/.well-known/openid-configuration
  OIDCClientID app-one-client-id
  OIDCClientSecret app-one-client-secret

  <Location /application_ONE.html>
    AuthType openid-connect
    Require valid-user
  </Location>
</VirtualHost>

# 第二个应用的虚拟主机
<VirtualHost *:443>
  ServerName app2.your-domain.com
  SSLEngine on
  SSLCertificateFile /path/to/app2-cert.pem
  SSLCertificateKeyFile /path/to/app2-key.pem

  # 第二个应用独立的OIDC配置
  OIDCRedirectURI https://app2.your-domain.com/oauth2/callback
  OIDCProviderMetadataURL https://your-oidc-provider/.well-known/openid-configuration
  OIDCClientID app-two-client-id
  OIDCClientSecret app-two-client-secret

  <Location /application_TWO.html>
    AuthType openid-connect
    Require valid-user
  </Location>
</VirtualHost>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:31:33