我一直在关注我在网上找到的所有指南,以获得一个正常工作的svnserve + SASL + OpenLDAP配置,我让一切都工作了大约一天,然后在玩svn + ssh之后我就不得不打破一些东西而且可以'让它再次运作.
在我的/ srv/svn/repo/conf/authz文件中,我列出了这样的Active Directory组:
Admins = User One, User Two
Engineers = Other User, Someone Else
Run Code Online (Sandbox Code Playgroud)
它使用每个用户的CN来处理那些以前工作的组,但现在我可以让我的SVN客户端进行身份验证的唯一方法是,如果我在authz文件中为这些组指定用户名而不是CN.
以下是我的配置(在Gentoo系统上,为安全性编辑了域名和密码):
/etc/conf.d/saslauthd:
SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -a ldap"
Run Code Online (Sandbox Code Playgroud)
/etc/saslauthd.conf:
# LDAP auth/lookup settings
ldap_servers: ldap://domain.com
ldap_default_domain: domain.com
ldap_search_base: DC=domain,DC=com
ldap_bind_dn: CN=LDAP Bind,CN=Users,DC=domain,DC=com
ldap_bind_pw: password
# AD Options
ldap_deref: never
ldap_restart: yes
ldap_use_sasl: no
ldap_start_tls: no
ldap_version: 3
ldap_auth_method: bind
ldap_filter: sAMAccountName=%U
ldap_password_attr: userPassword
ldap_timeout: 10
ldap_cache_ttl: 30
ldap_cache_mem: 32768
ldap_mech: PLAIN
Run Code Online (Sandbox Code Playgroud)
/etc/sasl2/svn.conf:
pwcheck_method: saslauthd
auxprop_plugin: ldap
mech_list: PLAIN LOGIN
ldapdb_mech: …Run Code Online (Sandbox Code Playgroud) 我知道LDAP绑定如何使用搜索进行身份验证,但如果我想要所有的全名条目,我该怎么办...那么如何才能获得所有人的全名或电子邮件?
下面我使用LDAP绑定进行身份验证,我可以搜索一个人,但如果我想要它们怎么办?
<?php
// using ldap bind
$ldaprdn = 'uname'; // ldap rdn or dn
$ldappass = 'password'; // associated password
// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这是我的一些MySQL代码填充html列表:
<ol>
<?php
mysql_connect("kool", "ohjoa", "sampa") or die(mysql_error());
mysql_select_db("DBtest") or die(mysql_error()); …Run Code Online (Sandbox Code Playgroud) ldap用户名需要作为自动完成功能显示在输入框中.我想获得如下用户列表:
String ldapURL = "ldap://192.26.75.5:389/dc=northamerica,dc=company,dc=com";
String principalPrefix = "domainName";
String username = SecurityContextHolder.getContext().getAuthentication().getName();
String password = SecurityContextHolder.getContext().getAuthentication().getCredentials().toString();
Hashtable<String, String>environment = new Hashtable<String, String>();
environment.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
environment.put(Context.PROVIDER_URL,ldapURL);
environment.put(Context.SECURITY_AUTHENTICATION,"simple");
environment.put(Context.SECURITY_PRINCIPAL,principalPrefix + "\\" + username);
environment.put(Context.SECURITY_CREDENTIALS,password);
environment.put( Context.REFERRAL, "follow" );
DirContext context = null;
NamingEnumeration<SearchResult> enumResult = null;
try
{
context = new InitialDirContext(environment);
SearchControls controls = new SearchControls();
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String[] attrIDs ={"ou","uid", "givenname", "sn", "mail"};
controls.setReturningAttributes(attrIDs);
enumResult = context.search("","(&(objectCategory=person)(objectClass=user)(CN=*))", controls);
if(enumResult != null)
{
//authentication successful
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
但是"enumResult"总是获得单个用户价值.如果我错过了某些内容或者错误的方法,请告诉我.任何帮助/建议/建议将不胜感激!谢谢.
此命令:dsconfigad -show执行我需要的操作,但我需要管理员权限才能运行它。
上面的命令输出了一些我感兴趣的信息:
You are bound to Active Directory:
Active Directory Forest = xx.xxxxxx.local
Active Directory Domain = xx.xxxxxx.local
Computer Account = (computer name)
Run Code Online (Sandbox Code Playgroud)
我希望能够以Active Directory Domain编程方式看到上面的内容,并且最好不需要具有 sudo 权限。
有什么建议?我已经浏览了 Open Directory 文档,但对我来说如何做到这一点并不完全显而易见。我还尝试了一些代码示例,只是为了查询 AD 中的某些内容而没有成功……我将继续努力,但我希望这里有人有一些知识可以分享。
有没有人知道我们如何找到
上次使用C#备份活动目录时?
据我所知,当我们运行这个命令时,repadmin/showbackup
它将向我们展示全部细节.我试图使用C#获得dsa签名的价值,但即使这个值也没有多大意义,并且将帮助我们获得正确的信息.
喜欢从哪个域控制器备份启动和何时?
任何人都知道如何使用C#获取活动目录的最后一个备份细节?
提前致谢
我正在使用 PHP 开发 Intranet Web 应用程序。我正在尝试使用 Windows NT 登录凭据登录到应用程序。我在这里遇到的麻烦是如何获取远程用户的 Windows 用户名?我想获取用户名,然后检查各种 LDAP 组,以便我可以将它们定向到我的应用程序中的适当页面。
我到目前为止尝试过
<?php
echo $_SERVER['REMOTE_USER'];
echo $_SERVER['PHP_AUTH_USER'];
?>
Run Code Online (Sandbox Code Playgroud)
它们都返回空值。
更新:使用 $_SERVER['REMOTE_ADDR'] 我能够获得计算机的 IP 地址。无论如何我可以获得用户名/用户名(任何唯一的东西)并使用它来与 LDAP 组进行比较?当他们进入网站的主页并存储会话,然后在整个网站中使用会话变量时,我想这样做。
我正在尝试创建一个新用户 -> 设置密码并启用帐户。
早些时候我使用了 1 个单一对象,但在查看了一些帖子后,我决定将“使用”用于 3 种不同的操作
string strDisplayName = txtFirstName.Text + " " + txtLastName.Text;
string strUser = txtLoginName.Text;
string pw = "pass@123";
using (var objADAM = new DirectoryEntry("LDAP://" + adlink + "/CN=Users,DC=SS,DC=COM", "ss\\luser", "pass@123", AuthenticationTypes.Secure))
{
const long ADS_OPTION_PASSWORD_PORTNUMBER = 6;
const long ADS_OPTION_PASSWORD_METHOD = 7;
const int ADS_PASSWORD_ENCODE_CLEAR = 1;
string strPort = "389";
int intPort = Int32.Parse(strPort);
using (var objUser = objADAM.Children.Add("CN=" + strUser, "user"))
{
objUser.Properties["sAMAccountName"].Add(strUser);
objUser.CommitChanges();
}
}
using (var user = new …Run Code Online (Sandbox Code Playgroud) member在Active Directory中修改组的属性(比方说asdiedit),会自动修改memberOf相应用户的属性吗?
作为次要问题,组中的设置成员会allowedAttributesEffective自动在allowedAttributesEffective所有用户的属性中添加memberof 吗?
我还没有修改member属性的权限,所以我不能自己测试.
我尝试使用 LDAP 匹配规则,但无法使用 LDAP 匹配规则过滤器检索搜索条目。
这就是我发送过滤器的方式:filter (&(objectclass=*)(memberof:1.2.840.113556.1.4.1941:=)(cn=gasaxena))
我也将过滤器转储到 ldap 服务器上收到的 pcap 中,如下所示:过滤器:(&(&(objectclass=*)(memberof:1.2.840.113556.1.4.1941:=[NULL]))(cn=gasaxena))
有人可以指出,如果我错过了什么吗?服务器是AD
运行 ldap 搜索查询时,我想返回结果中用户的状态。即包括一个标识用户帐户是否被禁用的属性。
这是我正在使用的过滤器:
"(&(objectClass=user)(objectCategory=person))"
Run Code Online (Sandbox Code Playgroud)
我见过允许您过滤掉禁用帐户的示例,但我想返回启用和禁用的帐户,但带有一个标志来标识此状态。是否可以?