我想针对AD执行LDAP查询以提取用户的位置(城市).这就是我所说的:
public static string GetUserLocation(string userName)
{
string userLoc = "";
DirectoryEntry entry = new DirectoryEntry("LDAP://FTLAD04.corp.myDomain.com");
DirectorySearcher dSearch = new DirectorySearcher(entry);
dSearch.Filter = "(&(objectClass=user)(l=" + userName + "))";
dSearch.PropertiesToLoad.Add("city");
SearchResult result = dSearch.FindOne();
userLoc = result.ToString();
entry.Close();
return userLoc;
}
Run Code Online (Sandbox Code Playgroud)
我的SearchResult一直无效,任何人都可以帮我指出正确的方向吗?谢谢!
在我们的应用程序中,我们正在评估存储所有人员信息的位置(姓名,电子邮件,电话,部门,出生日期,雇用日期,许可证/证书,角色等).我们将使用LDAP/Active Directory进行用户身份验证/授权,因此至少其中一些数据将进入LDAP服务器.我们的人力资源模块和其他应用程序也需要其中一些信息,它们之间存在重叠.我们正在考虑将所有信息存储在LDAP中,并在我们的RDMS到LDAP用户中使用用户ID作为参考,并在登录过程中填充用户的其他详细信息.除了我们的应用程序之外,还有其他应用程序也将使用相同的用户信息.如果我们不在ldap中存储人员详细信息,我们将需要复制并同步每个系统中的用户信息.无论如何,登录信息都需要LDAP.您对在LDAP或DB表中存储人员详细信息的建议是什么?
我可以使用net-ldap gem网站提供的测试代码登录,但是相同的登录设置不适用于Rails上的设计.
当我尝试使用devise登录Rails时,这是服务器日志.
Started POST "/users/sign_in" for 127.0.0.1 at Fri Mar 22 10:53:39 -0700 2013
Processing by Devise::SessionsController#create as HTML
Parameters: {"commit"=>"Sign in", "authenticity_token"=>"bEmEPHuI8ob+O67hy0mpgGm12KzFnBNwRuhALAJzmCg=", "user"=>{"remember_me"=>"1", "email"=>"somerandomeusername@corp.bigasscorporation.com", "password"=>"[FILTERED]"}, "utf8"=>"?"}
User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = 'somerandomeusername@corp.bigasscorporation.com' LIMIT 1
LDAP: LDAP dn lookup: mail=somerandomeusername@corp.bigasscorporation.com
LDAP: LDAP search for login: mail=somerandomeusername@corp.bigasscorporation.com
LDAP: Authorizing user mail=somerandomeusername@corp.bigasscorporation.com,OU=Users,OU=Users_and_Groups,DC=corp,DC=bigasscorporation,DC=com
LDAP: LDAP dn lookup: mail=somerandomeusername@corp.bigasscorporation.com
LDAP: LDAP search for login: mail=somerandomeusername@corp.bigasscorporation.com
DEPRECATION WARNING: an empty resource was given to Devise::Strategies::LdapAuthenticatable#validate. Please ensure the resource …Run Code Online (Sandbox Code Playgroud) 在OpenDJ中创建新的"基本DN"时,OpenDJ允许您使用自动生成的用户填充数据库.有谁知道这些自动生成的用户的默认密码是什么?
谢谢
我设置的应用程序使用AspNetActiveDirectoryMembershipProvider到具有表单身份验证的LDAP服务器.用户正确进行身份验证,但是用户第一次尝试登录新的浏览器窗口会导致延迟超过一分钟,直到进行身份验证.如果用户退出应用程序(但未关闭浏览器)并尝试重新登录,则只需大约6-7秒即可进行身份验证.
我认为第二个身份验证使用缓存连接或套接字来弥补最初的慢速行为.但是,如何在第一次尝试时解决这个问题呢?我可以在页面加载期间以某种方式启动与LDAP服务器的连接,从而节省登录过程中的时间吗?
注意:我已经检查了LDAP连接字符串,它就像它将要获得的那样直接.
<add name="ADService" connectionString="LDAP://doctor.at.ad.cynwulfdesign.com/CN=Users,DC=at,DC=ad,DC=cynwulfdesign,DC=com" />
Run Code Online (Sandbox Code Playgroud)
...
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<clear/>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADService"
attributeMapUsername="sAMAccountName"/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud) asp.net authentication asp.net-membership ldap active-directory
所以,我正在尝试进行Ldap身份验证,遵循以下文档
https://zf2.readthedocs.org/en/latest/user-guide/skeleton-application.html
我只是用'Auth'模块替换'Album'模块,并使用Ldap autentication的示例代码
https://zf2.readthedocs.org/en/latest/modules/zend.authentication.adapter.ldap.html
但是我收到这个错误,当我提交带有登录数据的表单时,Zend无法找到Ldap类.
致命错误:在第139行的C:\ wamp\www\sade\vendor\zendframework\zend-authentication\src\Adapter\Ldap.php中找不到类'Zend\Ldap\Ldap'
我正在使用作曲家,对于zend框架和模块的atuoloader,我已经有错误相关的类没有找到但是我自己的类,而不是像Ldap这样的Zend类.
谢谢.
这是文件和文件夹的结构
/module
/Auth
/config
module.config.php
/src
/Auth
/Controller
AuthController.php
/Form
AuthForm.php
/Model
Auth.php
/view
/auth
/auth
index.php
Module.php
Run Code Online (Sandbox Code Playgroud)
以及该模块的主要代码:
module.config.php
return array(
'controllers' => array(
'invokables' => array(
'Auth\Controller\Auth' => 'Auth\Controller\AuthController',
),
),
'router' => array(
'routes' => array(
'auth' => array(
'type' => 'segment',
'options' => array(
'route' => '/auth[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Auth\Controller\Auth',
'action' => 'index', …Run Code Online (Sandbox Code Playgroud) 我遵循在centos指南上安装ldap来在服务器上设置LDAP服务器,在完成所有安装步骤之后,我执行了ldapsearch -x -b "dc=test,dc=com" -d1以下命令来测试我的安装,但它给了我以下错误:
ldap_create
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP localhost:389
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying ::1 389
ldap_pvt_connect: fd: 3 tm: -1 async: 0
attempting to connect:
connect errno: 111
ldap_close_socket: 3
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 127.0.0.1:389
ldap_pvt_connect: fd: 3 tm: -1 async: 0
attempting to connect:
connect errno: 111
ldap_close_socket: 3
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Run Code Online (Sandbox Code Playgroud)
这是我的LDAP安装问题还是某些证书颁发机构问题?我正在Centos6 for LDAP version3上尝试此操作。
有人可以帮忙吗?
我想用序号填写Active Directory中用户的"employeeID"或"uid".我所做的只是将用户导出为CSV文件:
Get-ADUser -Filter "mail -like '*com'" | Export-Csv 'C:\ADUser.csv' -NoType
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做这样的事情?
背景:我目前有一个Java Web应用程序,该应用程序在Mac的localhost上运行。用户可以登录Web应用程序,并且其凭据也将通过在我的本地计算机上的特定端口上运行的OpenLDAP服务器进行验证(特别是使用此docker映像)。该Web应用程序包括与LDAP服务器交互以提供登录用户名和密码的代码。验证成功后,用户将登录并可以继续使用该应用程序的功能。
问题:此Web应用程序将部署到将使用Windows的客户端。他们正在请求SSO功能-即,在其域下成功登录其Windows计算机将避免在运行Web应用程序时登录到Web应用程序。客户端不能在其机器上运行其他Java应用程序,这将有助于SSO-简单地登录到Windows机器应该绕过登录Web应用程序的需要,这意味着需要以某种方式配置Windows,并且Web应用程序需要为SSO配置某种方式。为了进行测试,我使用的是Windows 7虚拟机,该虚拟机在运行和测试Web应用程序的同一台计算机上运行。
我已经对SPNEGO,Java GSS API(看起来需要客户端代码才能与服务器进行通信),Kerberos,Windows IIS等进行研究。我知道如何在Windows中启用Windows集成身份验证,但是我不知道如何实际在我的Web应用程序中使用它来启用SSO。基本上,在这种情况下,我仍在努力实现特定情况下的SSO功能。以下是一些具体问题:
我刚刚安装了LDAP和PHPLDAPADMIN。它可以正常工作,但是当我想要创建新条目页面时只需刷新就什么也没有发生。有一些错误:
无法识别的错误号:8192:不建议使用函数create_function()
谢谢。