Deepin系统基于LDAP统一认证

本人近期参与团队做Deepin相关的项目时,需要如同微软AD一样对各终端进行统一认证管理,则本想着通过搜索网上相关资料和官方相关文档一步一步操作很快搞定,却发现网络上Deepin的这块指导文档几乎没有。通过本人对Linux系统的理解摸索和查看Deepin dde-session-ui源码资源,经反复的测验,最终走通了整个流程。为表示支持一下国产开源系统DeepinOS,决定整理分享一下相关指南以方便大家更快的使用DeepinOS深度性的功能,并集成应用到工作环境中去。
注:文档不会对LDAP Server部署与配置操作进行说明,请查找网上相关资源,这方面比较多。另外本人应用的Deepin系统环境为V20社区版本。
Deepin对 LDAP Client工具安装与配置

第一步: 安装
sudo apt-get install libnss-ldap libpam-ldap ldap-utils nscd -y
默认此处安装时有Console UI可以配置LDAP client,可以忽略或按流程进行连接LDAP Server端设置,如果选择忽略则进行下面第二步操作。
第二步: 查看或编辑两个配置文件
/etc/libnss-ldap.conf
/etc/pam_ldap.conf
这两个为主要的LDAP客户端认证配置文件,如果在第一步通过UI界面配置了应该会自动生成相关的配置,则不需要手动修改配置。
可以参看一下本人环境配置实例,注意"X"需要根据自己实际的LDAP服务器信息选择协议与地址等配置(这方面配置可参照debian ldap客户端安装指南)。
#/etc/libnss-ldap.conf配置内容 base dc=XXXXX,dc=XX uri ldap://X.X.X.X ldap_version 3 rootbinddn cn=XXXX,dc=XXXXX,dc=XX#/etc/pam_ldap.conf配置内容 base dc=XXXXX,dc=XX uri ldap://X.X.X.X ldap_version 3 pam_password crypt

第三步 配置/etc/pam.d/common-*文件
可通过执行 pam-auth-update --force 自动生成
/etc/pam.d/common-auth
/etc/pam.d/common-account
/etc/pam.d/common-password
/etc/pam.d/common-session-noninteractive
可参考一下本人环境的相关配置
#/etc/pam.d/common-auth更新后的配置 auth[success=4 default=ignore]pam_deepin_auth.so<== 参数减少 auth[success=2 default=ignore]pam_unix.so nullok_secure try_frist_pass<== 新增行 auth[success=1 default=ignore]pam_ldap.so use_first_pass<== 新增行 authrequistitepam_deny.so authrequiredpam_permit.so #/etc/pam.d/common-account更新后的配置 account [success=2 new_authtok_reqd=done default=ignore]pam_unix.so<== 优先级'1' 变 '2' account [success=1 default=ignore]pam_ldap.so<==新增行 account requistitepam_deny.so account requiredpam_permit.so #/etc/pam.d/common-password更新后的配置 password[success=2 default=ignore] pam_unix.so obscure sha512 password[success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass passwordrequistitepam_deny.so passwordrequiredpam_permit.so passwordoptionalpam_gnome_keyring.so #/etc/pam.d/common-session-noninteractive更新后的配置 session [default=1]pam_permit.so session requistitepam_deny.so session requiredpam_permit.so session requiredpam_unix.so session optionalpam_ldap.so

第四步 Deepin 开启ldap用户认证greeter UI
此步为关键步骤,只有开启相关配置才能在系统LOGIN时选择“输入用户”界面
配置文件位置
/usr/share/dde-session-ui/dde-session-ui.conf
修改以下项: [general] loginPromptInput=true [lock] showSwitchUserButton=always

dde-session-ui.conf 配置说明
  • General/loginPromptAvatar 设置是否启用本地用户列表,默认为true。
  • General/loginPromptInput 设置是否启用LDAP登录,默认为false。
  • Lock/showSwitchUserButton 设置是否显示用户切换按钮,值固定三项: [always | ondemand | disabled],默认为ondemand。
  • Power/sleep 设置是否启用锁屏、登录界面和关机界面的待机按钮。
  • Power/hibernate 设置是否启用锁屏、登录界面和关机界面的休眠按钮。
  • OS/isDeepin 设置是否启用锁屏的指纹和密码同步验证机制,在Deepin发行版为true,其他发行版为false。
最后就是测试了,给大家一些思路 1)首先检验保障LDAP SERVER正常性(这块有ldapsearch工具等)
2)开启Deepin系统SSH服务,先通过SSH来验证LDAP用户与认证是否正常
3)tail -f /var/log/auth.log 测试时实时查看日志信息,如果出错可以日志反馈信息排查问题点(本人遇到几次LDAP服务器连接问题,日志上可以明显提示出来并可查看是哪个进程报错,如是libnss还是pam_ldap相关的信息等)
【Deepin系统基于LDAP统一认证】希望本文对各位有帮助,同时望有更多的技术爱好者用行动去支持国产化系统的发展。
?转文者请备注作者:Xiao_Yang?

    推荐阅读