0

我们最近在 Rails 应用程序集成环境上执行了 DNS Flip。我们将 example-1.com 设置为指向 A 记录 example-2.com 的 CNAME。example-2.com 上的服务是一个带有 Apache 和 Passenger Phusion 的 Ruby on Rails 应用程序。在 Apache 之上,我们使用 OpenId-Connect(特别是 mod_auth_openidc 模块)。

当我们尝试直接访问 example-1.com 时,一切正常。但是当我们尝试通过 example-2.com 这样做时,我们会收到以下错误:

[Thu Aug 27 19:56:37.202141 2020] [auth_openidc:error] [pid 23165] 
[client xx.xx.xxx.xx:29188] oidc_authenticate_user: the URL hostname 
(example-1.com) of the configured OIDCRedirectURI does not match the URL hostname 
of the URL being accessed (example-2.com): the "state" and "session" cookies will 
not be shared between the two!

在我们的 .confd 文件中,我们有OIDC_REDIRECT_URI = "https://example-1.com/redirect".

我们认为我们可能必须使用 Apache 重写部分请求来解决这个问题,但我们并不完全确定。有谁知道最好的前进方式?

4

1 回答 1

1

您可以使用 的相对值OIDCRedirectURI,因此:

OIDCRedirectURI /redirect

正如文档所述:

(强制)此 OpenID Connect 客户端的 redirect_uri;这是一个虚 URL,它只能指向受此模块保护的服务器上的路径,但不能指向任何需要提供的实际内容。如果您想以动态方式支持属于同一安全域的多个虚拟主机,则可以使用 /protected/redirect_uri 之类的相对 URL

#OIDCRedirectURI https://www.example.com/protected/redirect_uri

于 2020-08-29T18:50:16.630 回答