我目前正在尝试将 Apache 设置为身份验证门户。它应该充当具有 krb 身份验证的反向代理。
我的 apache 服务器名为 portal.example.com(debian 容器)我的 IPA 服务器名为 freeipa.example.com(centos 容器)
这是我在 portal.example.com 上的当前 Apache 配置:
< Location />
AuthType Kerberos
AuthName "Login on test domain"
KrbAuthRealm TEST.COM
Krb5Keytab /etc/apache2/portal.keytab
KrbMethodNegotiate on
KrbMethodK5Passwd off
KrbServiceName HTTP/[email protected]
require valid-user
< /Location>
我无法让它按我想要的方式工作:我不想让它要求用户输入密码,所以我配置了 Firefox 以让它协商身份验证,但我总是得到 401/Unauthorized。但是,如果我将 KrbMethodK5Passwd 设置为开启,然后使用我的 krb 用户名和密码登录,那么我会得到 200 http 响应。有没有想过如何在不要求输入凭据的情况下做到这一点? :(
答案1
检查 /etc/apache2/portal.keytab 是否归 webserver 用户(debian 系统上的 www-data)所有,并且只能由该用户读取(-r--------)。
检查你的浏览器是否同时配置了域 test.com 和子域
about:config
network negotiate-auth.trusted-urls test.com, .test.com