Ldap

如果 posixAccount objectClass 不可用,如何使用 LDAP 對 CentOS7 進行身份驗證?

  • July 3, 2015

**目的:**使用 LDAP 對 CentOS7 進行身份驗證

問題

  1. 找不到使用者
calling ldap_search_ext with 
[(&(uid=bla)(objectclass=posixAccount)(uid=*)(&(uidNumber=*)(!(uidNumber=0))))][dc=my-domain,dc=com]
  1. posixAccount objectClass 未找到

問題

  1. 如何添加對像類posixAccount
  2. 如果找不到這個objectClass類型,如何更改sssd允許該軟體在OpenLDAP中找到使用者並允許認證到CentOS7的查找?

綜合的

1)sssd安裝

  1. CentOS7 上配置的 sssd 的 ldap 認證
[root@controller ~]# authconfig --enablesssd --enablesssdauth --enablelocauthorize --update
  1. 啟用sssd調試
/etc/sssd/sssd.conf

[domain/default]

autofs_provider = ldap
cache_credentials = True
krb5_realm = #
ldap_search_base = dc=my-domain,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://<ipaddress>/
ldap_tls_cacertdir = /etc/openldap/cacerts

debug_level = 9

4)使用LDAP測試登錄

[root@controller ~]# id Manager
id: Manager: no such user
  1. 調試

/var/log/sssd/sssd_default.log

(Thu Jul  2 22:31:46 2015) [sssd[be[default]]] [sdap_search_user_next_base] (0x04
00): Searching for users with base [dc=my-domain,dc=com]
(Thu Jul  2 22:31:46 2015) [sssd[be[default]]] [sdap_print_server] (0x2000): Sear
ching <ipaddress>
(Thu Jul  2 22:31:46 2015) [sssd[be[default]]] [sdap_get_generic_ext_step] (0x040
0): calling ldap_search_ext with [(&(uid=bla)(objectclass=posixAccount)(uid=*)(&(
uidNumber=*)(!(uidNumber=0))))][dc=my-domain,dc=com].
(Thu Jul  2 22:31:46 2015) [sssd[be[default]]] [sdap_get_generic_ext_step] (0x100
0): Requesting attrs: [objectClass]
  1. 無法添加對像posixAccount

在此處輸入圖像描述

您並沒有真正說出您的 LDAP 伺服器是什麼或您的 LDAP 目錄中的使用者是什麼樣的,但我會盡我所能嘗試回答。

目前,SSSD 僅服務於 POSIX 帳戶。這意味著伺服器端的使用者對像要麼必須具有名稱和數字 ID,要麼必須從 Windows SID 推斷出數字 ID。

實際的 objectClass 並不重要。您只需要使用伺服器使用的 objectClass 和包含 ID 的屬性來配置 sssd.conf。有關man sssd-ldap更多詳細資訊,請參閱,但您可能感興趣的兩個配置選項是ldap_user_uid_numberldap_user_object_class

如果伺服器是 MSAD,則理想情況下應使用id_provider=ad將 SID 映射到 ID 的算法。

引用自:https://serverfault.com/questions/703259