我向客户展示了我的WPF应用程序,他问我是否有LDAP或可以与Active Directory(AD)集成.
我的应用程序有自己的内置用户安全性和数据访问安全性.我使用我的安全框架来验证并授予屏幕和数据访问权限.客户端问我是否可以添加或集成活动目录.他需要用户只记住他的Windows密码,而不是我的应用程序.
我可以实现Active Directory逻辑,但是我必须修改我的应用程序以将Active Directory用户与我的应用程序的用户相关联,这样当AD用户登录时,他就会被认证并关联为本地用户,因为本地用户需要与之关联他的安全和数据访问设置.这是要走的路吗?
我将使用.NET 3.5类等.这意味着我的应用程序的管理员应该转到用户屏幕并将本地用户与LDAP用户关联.
我理解LDAP是用于与OpenLDAP等活动目录系统通信的协议.
我也理解OpenLDAP是一种将对象存储在树中的数据库.
我的问题是:何时以及何时应该使用(如果有的话)LDAP而不是关系数据库.
我有一个代码来获取域内的OU列表.
现在,这只列出了所有OU,并没有给出任何区分OU和子OU的方法.
DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain);
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(objectClass=organizationalUnit)");
foreach (SearchResult temp in mySearcher.FindAll())
{
OU_DownList.Items.Add(temp.Properties["name"][0].ToString());
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以获得OU的完全限定名称?
对于子OU,这样的事情:
CN=Computer1,OU=Department 101,OU=Business Unit #1,DC=us,DC=xyz,DC=com
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏...谢谢
我有这个代码:
function makeUser() {
$info['cn'] = "Test User";
$info['sn'] = "User";
$info['mail'] = "test@localhost";
$info['objectclass'][0] = "Person";
$info['objectclass'][1] = "User";
$info['userpassword'] = "{MD5}".base64_encode(pack("H*",md5('Password1!')));
$info['useraccountcontrol'] = 512;
var_dump(ldap_add($this->connection, "CN=Test User,OU=Users,DC=domain,DC=local", $info));
}
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:
警告:ldap_add()[function.ldap-add]:添加:服务器不愿意执行
当我遗漏$info['useraccountcontrol'] = 512;部分时,它会添加帐户,但它被禁用..
我从两台服务器上的日志记录中得到了这个:
内部事件:LDAP服务器返回错误.
附加数据错误值:0000052D:SvcErr:DSID-031A11E5,问题5003(WILL_NOT_PERFORM),数据0
我的工作:
我怎样才能得到它像这样,该用户不禁止,也没有要改变密码时,首测吗?
我写了一个绑定到LDAP服务器的小脚本,并检索所有用户和用户信息.现在我想写另一个绑定到LDAP服务器然后测试给定登录的那个.我怎样才能做到这一点?
my $ldap = ldapConnect();
my $user = 'user';
my $pwd = 'pwd';
# TEST USER AND PWD BUT HOW?
sub ldapConnect {
my $ldap = Net::LDAP->new('192.168.*.*');
my $password = '***';
$ldap->bind('cn=Administrator,cn=Users,DC=***,DC=***', password=> $password);
return $ldap;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Spring的LDAP软件包针对活动目录进行身份验证,但是我一直收到一条错误消息,提示我指定了错误的baseDN(Ldap错误代码32):
org.springframework.ldap.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-031001E4, problem 2001 (NO_OBJECT), data 0, best match of:
[testng] 'OU=People,DC=example,DC=com'
[testng] ]; nested exception is javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-031001E4, problem 2001 (NO_OBJECT), data 0, best match of:
[testng] 'OU=People,DC=example,DC=com'
[testng] ]; remaining name 'ou=people,dc=example,dc=com'
Run Code Online (Sandbox Code Playgroud)
奇怪的是ldapsearch命令使用完全相同的basedn,并且可以正常工作:
ldapsearch -V -x -H ldap://ad.example.com:389 -b 'ou=people,dc=example,dc=com' -D '<user>' -w '<password>' (sAMAccountName=<user>)
Run Code Online (Sandbox Code Playgroud)
以下代码设置DN(以编程方式设置ldapContextSource):
AndFilter filter = new AndFilter();
filter.and(new EqualsFilter("sAMAccountName", user));
DistinguishedName dn = new DistinguishedName("ou=people,dc=example,dc=com");
boolean in = ldapTemplate.authenticate(dn, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在RHEL 6服务器上安装PHP LDAP Admin,http://phpldapadmin.sourceforge.net.我有文件到位,Apache虚拟主机指令配置为htdocs.
我得到的错误是:
Notice: Undefined variable: _SESSION in /path/to/pla/lib/page.php on line 381 Fatal error:
Call to a member function getValue() on a non-object in /path/to/pla/lib/page.php on line 381
Run Code Online (Sandbox Code Playgroud)
PHP(5.4.13)正在服务器上运行,并且会话在其他地方不是问题.我将我的git存储库克隆到一个OSX开发盒,它在那里工作.我仔细检查并调用session_start().
背景:
我一直在Linux计算机上使用python-ldap模块来管理远程Windows Server 2008上的用户帐户。除了更改用户的“ ou”外,我已经能够搜索,创建和修改用户。 。
我曾尝试使用'modify_s'和'modrdn_s',但是由于modrdn仅允许您更改dn的第一部分,因此我没有运气来修改'ou'或将用户移至新的'ou'。
临时地,我正在创建一个新用户,并从旧用户复制所有能够复制的属性,然后删除旧用户。但这不允许我保留用户创建日期和其他不可编辑的信息。
我已经在互联网上进行了彻底的搜索,找到了一些解决方案,但是:
在其他操作系统上:如何使用Python
和其他编程语言将用户移至其他OU:Active Directory LDAP将用户移至其他OU-Ruby
在在Linux上使用python-ldap还是有任何解决方法?
谢谢!
我创建了一个本地LDAP服务器,并添加了密码为"123456"的用户"djiao"

尝试使用Spring Boot实现Spring Security的身份验证.我的webconfig类如下:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.formLogin();
}
@Bean
public ActiveDirectoryLdapAuthenticationProvider activeDirectoryLdapAuthenticationProvider() {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider("", "ldap://localhost:10389");
provider.setConvertSubErrorCodesToExceptions(true);
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUseAuthenticationRequestCredentials(true);
return provider;
}
@Bean
public LoggerListener loggerListener() {
return new LoggerListener();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(activeDirectoryLdapAuthenticationProvider());
}
Run Code Online (Sandbox Code Playgroud)
但是我似乎无法从登录页面登录.
如果我使用djiao(cn)或djiao1(uid),我会得到500.
[LDAP:错误代码34 - 给出错误的DN:djiao1(0x64 0x6A 0x69 0x61 0x6F 0x31)无效]; 嵌套异常是javax.naming.InvalidNameException:[LDAP:错误代码34 - 给出不正确的DN:djiao1(0x64 0x6A 0x69 0x61 0x6F …
我一直在研究这个问题很长一段时间,我希望你们就我面临的问题给出答案和建议.我试图在我的服务器上获取我的Nifi独立实例,基本上我的要求是LDAP authenitcation,因为我已经阅读了一些文档,并且发现需要首先设置SSL,所以我已经按照这个 链接 但是我得到以下错误.
2017-01-20 23:39:12,603 INFO [main] o.a.nifi.authorization.FileAuthorizer Authorizations file loaded at Fri Jan 20 23:39:12 HKT 2017
2017-01-20 23:39:59,327 INFO [NiFi Web Server-44] o.a.n.w.a.c.IllegalStateExceptionMapper java.lang.IllegalStateException: Kerberos ticket login not supported by this NiFi.. Returning Conflict response.
2017-01-20 23:39:59,331 DEBUG [NiFi Web Server-44] o.a.n.w.a.c.IllegalStateExceptionMapper
java.lang.IllegalStateException: Kerberos ticket login not supported by this NiFi.
at org.apache.nifi.web.api.AccessResource.createAccessTokenFromTicket(AccessResource.java:349) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_77]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_77]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_77]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_77]
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[jersey-server-1.19.jar:1.19]
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) ~[jersey-server-1.19.jar:1.19]
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) ~[jersey-server-1.19.jar:1.19]
at …Run Code Online (Sandbox Code Playgroud) ldap ×10
php ×2
apache-nifi ×1
asp.net ×1
c# ×1
integration ×1
java ×1
linux ×1
login ×1
openldap ×1
ou ×1
perl ×1
python ×1
python-ldap ×1
spring ×1
spring-boot ×1
spring-ldap ×1
ssl ×1
wpf ×1