您可以使用 Apache 的 OAuth 模块执行此操作。查看页面上的示例,只需配置使用 mod_proxy 来对请求进行内部代理。不幸的是,我不得不重新创建升级到 apache 2.4 问题的部署原因。(它应该仍然可以工作,但在 OpenID 支持方面存在一些构建问题。)
http://findingscience.com/mod_auth_openid/
该页面上还有一个示例,用于限制可用于身份验证的域。基本上:
<Directory />
AuthType OpenID
AuthOpenIDSecureCookie on
require valid-user
AuthOpenIDTrusted ^https://www.google.com/accounts/o8/ud
AuthOpenIDAXRequire email http://openid.net/schema/contact/email @mydomain\.com
AuthOpenIDSingleIdP https://www.google.com/accounts/o8/id
AuthOpenIDAXUsername email
AuthOpenIDSecureCookie On
</Directory>
ProxyPass /my_unprotected_site http://localhost:9292/
ProxyPassReverse /my_unprotected_site http://localhost:9292/