OpenID 提供程序使用 Apache SSL/FakeBasicAuth?

OpenID 提供程序使用 Apache SSL/FakeBasicAuth?

我想为我们的团队建立一个 OpenID 提供商,我们可以使用它登录内部和外部 OpenID 感知服务(例如 stackoverflow.com)。

我们的用户都拥有由我们的 CA 颁发的 X.509 证书,所以我认为理想的解决方案是使用该证书对他们进行身份验证(即提供商不应要求输入密码)。也许 Apache FakeBasicAuth 可以从 SSL 连接的证书中提取用户名?

什么软件最好用?最好是开源的。

答案1

好的,我使用以下方法完成了这项工作:

在 Apache 配置中,我这样做了(注意:最后没有使用 FakeBasicAuth):

SSLCACertificateFile /.../myOrgCA.pem
SSLVerifyClient require
SSLVerifyDepth  1
SSLOptions      +StdEnvVars

如果通过纯 http 访问,请编辑 action_default() 以将用户重定向到 https 地址。纯 http 地址是您在 中发布的地址<link rel="openid.server">

更改 getLoggedInUser() 以从中提取用户名$_SERVER['SSL_CLIENT_S_DN_Email']

您还可以编辑 doAuth() 以类似的方式提供电子邮件地址或全名。

请注意,这一切是多么安全,但我们将其用于相对低价值的网站(论坛、错误跟踪器等)。

答案2

我自己也考虑过同样的事情,经过一番研究后我找到的最佳答案正如你所建议的那样——Apache 运行 mod_ssl,FakeBasicAuth 来识别用户,然后提取它来识别用户并验证他们。

相关内容