LDAP如何增加用户
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LDAP如何增加用户相关的知识,希望对你有一定的参考价值。
只要很简单的例子,如:user 属于 OU=lew,dc=example,dc=com
objectClass: person 就可以了。写ldif文件
有一两个属性,如电话,密码
public boolean addUserToLdap(String userCn)
LdapContext ctx = getLdapConnection(); //AD认证,获取Ldap连接对象ctx
Attributes attrsbu = new BasicAttributes(true);
BasicAttribute objclassSet = new BasicAttribute("objectclass");
for (String _class : LdapConfig.userObjectClass.split(","))
objclassSet.add(_class.trim()); //加入一些基本元素top,person,organizationalPerson,user
boolean isExist = this.searchUser(ctx, userCn); //添加用户前先查找AD中是否存在该用户
if (isExist == false)
attrsbu.put(objclassSet);
attrsbu.put(new BasicAttribute("cn", userCn)); //userCn:要添加的用户
attrsbu.put(new BasicAttribute("sAMAccountName", userCn));
attrsbu.put(new BasicAttribute("sn", userCn));
attrsbu.put(new BasicAttribute("displayName", userCn)); //AD中显示的名称
attrsbu.put(new BasicAttribute("userPrincipalName", userCn + LdapConfig.domainName));
try
String userDn = "cn=" +userCn + ","+ LdapConfig.userRootDn;
ctx.createSubcontext(userDn, attrsbu); //添加用户到Ldap
System.out.println("[addUserToLdap] Add User:" + userDn);
ModificationItem[] mods = new ModificationItem[2];
//此密码必须注意:得到的字符串是""password""这种格式
String newQuotedPassword = LdapConfig.user_default_password;
byte[] newUnicodePassword = newQuotedPassword.getBytes("UTF-16LE");
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
new BasicAttribute(LdapConfig.password_field,newUnicodePassword));
mods[1] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
new BasicAttribute(LdapConfig.userAccountControl,Integer.toString(
UF_NORMAL_ACCOUNT
+ UF_PASSWORD_EXPIRED
+ UF_DONT_EXPIRE_PASSWD)));
ctx.modifyAttributes(userDn, mods); //更改用户密码和权限
catch (Exception e1)
e1.printStackTrace();
destroyLdapConnection(ctx);
return false;
else
System.out.println("isExist :" + isExist + "用户:" + userCn + "已存在");
destroyLdapConnection(ctx);
return true;
参考技术B 例子,如:user 属于 OU=lew,dc=example,dc=com
objectClass: person 就可以了。写ldif文件 参考技术C 创建文件test.lidf
文件内容:
dn:OU=lew,dc=example,dc=com
objectclass:person
Name:zhangsan
Tel:13412345678
执行以下命令
ldapadd -x -D 用户名 -w 口令 -f test.ldif本回答被提问者采纳
freeradius 关联LDAP认证-按属性过滤LDAP目录中的用户
freeradius 关联LDAP认证的配置文件为/etc/raddb/modules-enable/ldap文件中,如果增加过滤需要更改改文件的user{}里的filter部分:
举个例子添加rn=ra的过滤条件:
原来的表达式:
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
增加过滤条件以后变为
filter = "(&(cn=ra)(uid=%{%{Stripped-User-Name}:-%{User-Name}}))"
以上是关于LDAP如何增加用户的主要内容,如果未能解决你的问题,请参考以下文章
freeradius 关联LDAP认证-按属性过滤LDAP目录中的用户
kubernetes 基于jenkins spinnaker的ci/cd实践一增加制品镜像扫描
kubernetes 基于jenkins spinnaker的ci/cd实践一增加制品镜像扫描