我正在尝试使用 FreeIPA/Kerberos 在我们公司的一些 Intranet 站点上实现 SSO。但关于这个主题的信息非常少。
我的测试网络中运行着三台机器:
Kinit、Unix 登录和 Apache Kerberos Auth 工作。客户端系统上的Firefox浏览器无需密码即可登录FreeIPA WebConfig(使用Kerberos Ticket)。我现在想将此功能转移到我们的内联网页面。到目前为止,这些页面的登录都是基于传统的 LDAP 登录。通过对登录脚本进行细微调整,用户现在可以登录到新的 FreeIPA 服务器。但是,他仍然需要密码,但由于 Kerberos 票证,实际上不再需要密码。
问题是,无密码登录是什么样的?
登录脚本的功能片段:
现在我有两个想法:
提前非常感谢。
编辑:
Web 服务器 VM 和客户端 VM 均通过“ipa-client-install”初始化。另外,Web服务器已经注册了apache服务(ipa service-add HTTP/ebook.exampletest.de)。
apache 配置也反映了这一点:
正如我已经提到的,用户身份验证似乎是这样工作的(AuthType GSSAPI AuthName "eBook Login" GssapiCredStore keytab:/etc/apache2/http.keytab GssapiAllowedMech krb5 GssapiBasicAuthMech krb5 GssapiImpersonate On GssapiDelegCcacheDir /run/apache2/clientcaches GssapiLocalName On # for production set to on: GssapiSSLonly Off GssapiNegotiateOnce Off GssapiUseSessions On Session On SessionCookieName gssapi_session path=/private;httponly;secure; Require valid-user
client(自己的票) > web 服务(自己的票) > ipa server)。否则 apache 服务器不会返回我的 ldap/kerberos 用户名。或者我在这里遗漏了一些重要的东西?还有其他方法可以强制执行这种身份验证吗?
输出:(已截取)
[GSS_MECH] => Negotiate/krb5 [GSS_NAME] => test@EXAMPLETEST.DE [REMOTE_USER] => test [AUTH_TYPE] => Negotiate [PHP_AUTH_USER] => test
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号