无密码 LDAP 登录并使用 PHP 中的 Kerberos 票证获取用户信息
P粉071743732
P粉071743732 2024-03-26 10:40:55
[PHP讨论组]

我正在尝试使用 FreeIPA/Kerberos 在我们公司的一些 Intranet 站点上实现 SSO。但关于这个主题的信息非常少。

我的测试网络中运行着三台机器:

  1. Centos 8 Stream 上的 FreeIPA v4.9.8 服务器
  2. Debian 11 上的网络服务器(Apache v2.4.53、PHP v7.4.28)
  3. 带有 Kinit 和 Firefox 的 Xubuntu 22.04 客户端

Kinit、Unix 登录和 Apache Kerberos Auth 工作。客户端系统上的Firefox浏览器无需密码即可登录FreeIPA WebConfig(使用Kerberos Ticket)。我现在想将此功能转移到我们的内联网页面。到目前为止,这些页面的登录都是基于传统的 LDAP 登录。通过对登录脚本进行细微调整,用户现在可以登录到新的 FreeIPA 服务器。但是,他仍然需要密码,但由于 Kerberos 票证,实际上不再需要密码。

问题是,无密码登录是什么样的?

登录脚本的功能片段:

现在我有两个想法:

  1. 我可以使用 ldap_sasl_bind() 而不是 ldap_bind(),但该函数没有记录在 php.net (https://www.php.net/manual/en/function.ldap-sasl-bind.php) 上。如果有人知道如何使用此功能,我将不胜感激。
  2. 如果我能以某种方式在没有密码的情况下运行 ldap_search() 来获取用户信息(全名、电子邮件等),我也会很高兴。

提前非常感谢。

编辑:

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

P粉071743732
P粉071743732

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号