LDAP认证源

LDAP认证源

云联壹云 LDAP认证源支持从LDAP导入用户和组,其中支持Microsoft Active Directory (MSAD) 和OpenLDAP,以及通用的LDAP服务端。

域,用户和组的定义来源于LDAP。不允许添加删除。不可修改字段如下表所示。

资源不可修改字段名称
name
name, displayname
用户name, displayname, enabled, mobile, email, password

ldap认证源的基础配置如下:

配置项说明举例
url服务器地址,必须以ldap://或者ldaps://开头ldap://192.168.222.201:389
suffixLDAP根路径的DNDC=ipa,DC=yunionyun,DC=com
user接入LDAP只读账户的用户名,对于AD,是用户名,对于openldap,是用户的DNUID=dcadmin,CN=users,CN=accounts,DC=ipa,DC=yunionyun,DC=com
password接入LDAP只读账户的密码

对于导入单域的模板,需要指定user_tree_dn和group_tree_dn两个参数

配置项说明举例
user_tree_dn用户查找根路径,将会在该路径下递归查找用户CN=users,CN=accounts,DC=ipa,DC=yunionyun,DC=com
group_tree_dn组查找跟路径,将会在该路径下递归查找组CN=groups,CN=accounts,DC=ipa,DC=yunionyun,DC=com

对于导入多域的模板,需要指定domain_tree_dn

配置项说明举例
domain_tree_dn域查找根路径,将会在该路径下的一级子节点中查找域OU=集团公司,DC=yuniondc,DC=com

对于非模板的LDAP配置,有如下的配置项:

配置项说明msad_one_domain默认值msad_multi_domain默认值openldap_one_domain默认值
query_scope默认查找范围:tree_dn下的整个substree(sub)还是当前级别(one)NANANA
import_domain是否导入域falsetruefalse
domain_tree_dn如果import_domain为true,导入域信息的根路径NA-NA
domain_filter查找域的过滤器NA-NA
domain_objectclass对应域的对象的classNAorganizationalUnitNA
domain_id_attribute域ID对应的属性名NAobjectGUIDNA
domain_name_attribute域名称对应的属性名NAnameNA
domain_query_scope查找域信息的范围:sub或oneNAoneNA
user_tree_dn导入用户信息的根节点的DN,如果import_domain为true,则该字段无意义-NA-
user_filter查找用户的过滤器---
user_objectclass对应用户的对象的classorganizationalPersonorganizationalPersonperson
user_id_attribute用户ID对应的对象属性名sAMAccountNamesAMAccountNameuid
user_name_attribute用户名对应的对象属性名sAMAccountNamesAMAccountNameuid
user_enabled_attribute用户启用的属性名userAccountControluserAccountControlnsAccountLock
user_enabled_mask用户启用属性对应的掩码2 (0x10)2 (0x10)0
user_enabled_default用户启用属性的缺省值512512FALSE
user_enabled_invert用户启用属性是否取反truetruetrue
user_additional_attribute_mapping用户额外属性的映射表{“displayName:displayname”, “telephoneNumber:mobile”, “mail:email” }{“displayName:displayname”, “telephoneNumber:mobile”, “mail:email” }{“displayName:displayname”, “mobile:mobile”, “mail:email” }
user_query_scope查找用户信息的范围:sub或onesubsubsub
group_tree_dn导入组信息的根路径---
group_filter查找组的过滤器---
group_objectclass对应组的对象的classgroupgroupipausergroup
group_id_attribute组ID对应的对象属性名sAMAccountNamesAMAccountNamecn
group_name_attribute组名对应的对象属性名namenamecn
group_member_attribute组的成员属性对应的对象属性名membermembermember
group_members_are_ids租的成员列表包含的是用户ID还是用户名falsefalsefalse
group_query_scope查找组信息的范围:sub或onesubsubsub

认证源的同步

对于ldap等可以全量同步的认证源,会定期全量同步域、用户和组信息,同步周期默认15分钟,可以通过参数 default_sync_interval_seoncds 配置。

配置命令

LDAP认证源支持三种模式:

  1. 单域模式

将指定LDAP dn_tree下的用户和组导入到指定的一个域下。其中,该模式支持两种导入模板,一种是 msad_one_domain,也就是 MSAD 的导入模板,另外一种是 openldap_one_domain, 也就是OpenLDAP的导入模板。

climc idp-create-ldap-single-domain --target-domain example_domain --url ldap://192.168.222.102 --suffix 'DC=ipa,DC=example,DC=com' --user 'UID=dcadmin,CN=users,CN=accounts,DC=ipa,DC=example,DC=com' --password <password> --user-tree-dn 'CN=users,CN=accounts,DC=ipa,DC=example,DC=com' --group-tree-dn 'CN=groups,CN=accounts,DC=ipa,DC=example,DC=com' mainLdap openldap_one_domain
  1. 多域模式

将指定LDAP dn_tree下的每个OU导入为一个新的域,将对应OU下的用户和组分别导入到对应域下。该模式只支持一种模板 msad_multi_domain,也就是只支持 MSAD 的导入(因为只有MSAD支持OU的概念)。

climc idp-create-ldap-multi-domain --url 'ldap://192.168.222.102' --suffix 'DC=example,DC=com' --user 'dcadmin' --password <password> --domain-tree-dn 'OU=集团公司,DC=example,DC=com' multildap msad_multi_domain
  1. 自定义模式

完全自定义模式,需要用户指定所有的LDAP参数。这种模式参数比较复杂,只有在以上模式不生效情况下才建议使用。

climc idp-create-ldap [--no-auto-create-project] [--target-domain TARGET_DOMAIN] [--auto-create-project] [--query-scope {one,sub}] [--user USER] [--password PASSWORD] [--disable-user-on-import] [--domain-tree-dn DOMAIN_TREE_DN] [--domain-filter DOMAIN_FILTER] [--domain-objectclass DOMAIN_OBJECTCLASS] [--domain-id-attribute DOMAIN_ID_ATTRIBUTE] [--domain-name-attribute DOMAIN_NAME_ATTRIBUTE] [--domain-query-scope {one,sub}] [--user-tree-dn USER_TREE_DN] [--user-filter USER_FILTER] [--user-objectclass USER_OBJECTCLASS] [--user-id-attribute USER_ID_ATTRIBUTE] [--user-name-attribute USER_NAME_ATTRIBUTE] [--user-enabled-attribute USER_ENABLED_ATTRIBUTE] [--user-enabled-mask USER_ENABLED_MASK] [--user-enabled-default USER_ENABLED_DEFAULT] [--user-enabled-invert] [--user-additional-attribute USER_ADDITIONAL_ATTRIBUTE] [--user-query-scope {one,sub}] [--group-tree-dn GROUP_TREE_DN] [--group-filter GROUP_FILTER] [--group-objectclass GROUP_OBJECTCLASS] [--group-id-attribute GROUP_ID_ATTRIBUTE] [--group-name-attribute GROUP_NAME_ATTRIBUTE] [--group-member-attribute GROUP_MEMBER_ATTRIBUTE] [--group-members-are-ids] [--group-query-scope {one,sub}] <--url URL> <--suffix SUFFIX> <NAME>