小编Ter*_*ner的帖子

ldapsearch over ssl/tls不起作用

我试图在ssl/tls连接上使用ldapsearch,但它不起作用:

ldapsearch -ZZ -d 5 -b "cn=Users,dc=my,dc=server,dc=com" -s sub -D
"cn=mydevice,cn=Users,dc=my,dc=server,dc=com" -h my.server.com -p 3269
-w "mypass" -x "(cn=test)"

ldap_create
ldap_url_parse_ext(ldap://my.server.com:3269)
ldap_extended_operation_s
ldap_extended_operation
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP my.server.com:3269
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.199.46.70:3269
ldap_connect_timeout: fd: 3 tm: -1 async: 0
ldap_open_defconn: successful
ldap_send_server_request
ber_scanf fmt ({it) ber:
ber_scanf fmt ({) ber:
ber_flush: 31 bytes to sd 3
ldap_result ld 0x95ff590 msgid 1
wait4msg ld 0x95ff590 msgid 1 (infinite timeout)
wait4msg continue ld 0x95ff590 msgid …
Run Code Online (Sandbox Code Playgroud)

ldap starttls

32
推荐指数
1
解决办法
9万
查看次数

Java LDAP - 确定给定组中的用户是否?

我们使用Java LDAP API通过LDAP将用户登录到Active Directory.我们希望增强登录功能,以进一步检查用户是否在给定的AD组中.有谁知道如何做到这一点?

当前代码:

import javax.naming.*;
import javax.naming.ldap.*;

LdapContext ctx = null;
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.PROVIDER_URL, Config.get("ldap-url"));

try {
    Control[] connCtls = new Control[] {new FastBindConnectionControl()};
    ctx = new InitialLdapContext(env, connCtls);
    ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, "DOMAIN\\" + username);
    ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, password);
    ctx.reconnect(connCtls);
    /* TODO: Only return true if user is in group "ABC" */
    return true; //User authenticated
} catch (Exception e) {
    return false; //User could NOT be authenticated
} finally {
    ...
}
Run Code Online (Sandbox Code Playgroud)

更新:请参阅下面的解决方案.

java active-directory

28
推荐指数
3
解决办法
9万
查看次数

检测是否在Python中使用LDAP锁定了Active Directory用户帐户

我正在使用python的ldap模块验证用户登录.登录失败时,我会收到ldap.INVALID_CREDENTIALS登录信息,但这可能是因为密码错误或帐户被锁定.在第3次尝试后帐户被锁定.

我想检测到该帐户已被锁定并向受挫的用户报告,而不是相同的"无效登录"消息.

寻找解决方案我发现:

  • AD不使用userAccountControl LOCKED标志;
  • 应该使用lockoutTime属性

我应该用来查找锁定用户的LDAP查询是:

(&(objectClass=user)(lockoutTime>=1))
Run Code Online (Sandbox Code Playgroud)

或者对于特定用户:

(&(objectClass=user)(sAMAccountName=jabberwocky)(lockoutTime>=1))
Run Code Online (Sandbox Code Playgroud)

但这不起作用,查询每次都不返回任何结果.

python active-directory python-ldap

17
推荐指数
2
解决办法
6万
查看次数

LdapConnection与DirectoryEntry

任何人都可以解释使用LdapConnection/SearchRequest和DirectoryEntry/DirectorySearcher搜索ActiveDirectory中的用户之间的区别.

哪一个最适合与AD互动?

c# active-directory directoryentry

12
推荐指数
1
解决办法
2386
查看次数

如何在PowerShell中获取登录用户的电子邮件

使用Vbscript,我们获得了当前的用户电子邮件ID.它就像下面的行一样简单.

Option Explicit

Dim objUser, objADSysInfo

Set objADSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objADSysInfo.UserName)
WScript.Echo objUser.Mail
Run Code Online (Sandbox Code Playgroud)

如何使用PowerShell实现相同的功能?

powershell ldap powershell-2.0

11
推荐指数
2
解决办法
8336
查看次数

如何伪造Active Directory?

我正在使用C#开发一个需要针对Active Directory进行身份验证的应用程序.我有Windows 7,无法在本地安装Active Directory.我无权访问具有Active Directory的现有服务器(通过连接到VPN的十个步骤除外).我宁愿不创建运行Windows Server的虚拟机.有没有可能在内存中运行并拦截AD调用以返回伪造数据的东西?如果它不存在,从理论上讲,将它拉下来需要什么?

c# authentication active-directory

9
推荐指数
1
解决办法
9124
查看次数

ldap_bind:证书无效(49)

我在XUBUNTU 12.04上运行OpenLDAP 2.4-28 .

我正在阅读"掌握OpenLDAP"并配置本书.

当我尝试执行以下搜索时(第47页):

$ ldapsearch -x -W -D 'cn=Manager,dc=example,dc=com' -b "" -s base
Run Code Online (Sandbox Code Playgroud)

我被提示输入密码.然后我输入"秘密"但我收到以下错误:

ldap_bind: Invalid Credentials (49).
Run Code Online (Sandbox Code Playgroud)

以下是我的slapd.conf:

# slapd.conf - Configuration file for LDAP SLAPD
##########
# Basics #
##########
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel none
modulepath /usr/lib/ldap
# modulepath /usr/local/libexec/openldap
moduleload back_hdb

##########################
# Database Configuration #
##########################
database hdb
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
directory /var/lib/ldap
# directory /usr/local/var/openldap-data …
Run Code Online (Sandbox Code Playgroud)

openldap

9
推荐指数
1
解决办法
9万
查看次数

如何将teamcity.users限制为Active Directory(LDAP)组的成员?

我正在尝试将TeamCity用户限制为特定AD组的成员(FNC_TEAMCITY_USERS).LDAP用户同步已经在运行.在我的ldap-config.properties中,我改变了这个:

teamcity.users.filter=(objectClass=user)
Run Code Online (Sandbox Code Playgroud)

对此:

teamcity.users.filter=(&(objectClass=user)(memberOf=CN=FNC_TEAMCITY_USERS,OU=Groups,DC=group,DC=ourdomain,DC=com))
Run Code Online (Sandbox Code Playgroud)

我重新启动了TeamCity服务,此更改无效.所有AD用户仍可以登录TeamCity.我在6.5实例和7.0(EAP)实例上尝试了这个.

有什么我错过了或这是一个错误?

teamcity continuous-integration active-directory

8
推荐指数
1
解决办法
2155
查看次数

是否有可用于objectClass和objectCategory的值列表?

我是LDAP查询的新手,因此我一直在阅读它以在我的应用程序中使用,因为我想使用过滤器来获取针对Active Directory的某些结果.我仍然有点困惑,只想对某些事情做一些澄清.

似乎对于objectClass theres User,Contact和inetOrgPerson例如:

(&(objectClass=user)) 
Run Code Online (Sandbox Code Playgroud)

对于objectCategory Person,Computer和Group.

除了我列出的那些之外,objectClass和objectCategory还有更多的值吗?

对于objectClass和objectCategory,这是一个很好的列表(如果不是所有的属性和类)?

http://www.zytrax.com/books/ldap/ape/#objectclasses

ldap active-directory c#-4.0

8
推荐指数
1
解决办法
8763
查看次数

从ActiveDirectory检索用户帐户过期

我正在尝试从帐户中检索到期日期.

我试过了

DirectoryEntry user = new DirectoryEntry(iMem);

var AccountExpiration = DateTime.FromFileTime((int)user.Properties["accountExpires"].Value);
Run Code Online (Sandbox Code Playgroud)

它不起作用,只给我错误"指定的演员表无效".

我用的时候

var AccountExpiration = user.Properties["accountExpires"];
Run Code Online (Sandbox Code Playgroud)

返回一个我无法读取的com对象.

使用windows powershell,工作正常,我不明白为什么这不会工作...

这是我在powershell中使用的代码

$Expires = [datetime]::FromFileTime($tmpUser.accountExpires)
Run Code Online (Sandbox Code Playgroud)

c# active-directory

8
推荐指数
1
解决办法
1万
查看次数