标签: adldap

在PHP中显示Active Directory中的thumbnailPhoto

我已经建立了一个系统来显示Active Directory中的每个人的姓名,电子邮件地址和电话号码,但我无法让'thumbailPhoto'工作.

我在互联网上搜索过,但一直无法找到这是否可能,或者至少从Active Directory返回的格式.

我目前正在使用adldap类,所以如果有可能使用它是理想的.

提前致谢.

编辑:

我可以检索thumbnailPhoto属性中的数据,如果我将它们直接转储到浏览器,我会得到这样的结果:

ÿØÿàJFIFððÿáPExifII*BH〜†(2Ži‡¢XCanonCanon EOS 5D马克IIIðð2013:05:19 17:35:31š,à,è"'0230ð" ''( '0'8' ' '@'' 11 '' 11 0100 YY¢ħ¢¢P 2013¤¤¤¤:04:17 11:44:522013:04:17 11:44:52H¹o@B¬†è»dnäWμ~: 'HHÿØÿàJFIFÿÛC$' Ì|®( ",#(7),01444'9 = 82 <.342ÿÛC2!!2222222222222222222222222222ÿÀ-d"ÿÄÿÄμ}!1AQa"q2'¡#B±ÁRÑð$ 3br,%&'()456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ"......†‡ ‰S ''’•--~™的¢¤£¥|§¨©ª²³'μ·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄÿÄμw!1AQaq"2B'¡±A#$3RðbrÑ4A%N&'()

这不是全部,但它是一个很长的字符串,我假设是某种二进制字符串?

php ldap active-directory adldap

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

Php adLDAP错误 - 无法绑定到服务器:需要强(呃)身份验证

我试图使用PHP adLDAP版本4.04 在企业网络上进行身份验证,但尚未成功.

PHP Version 5.2.4

我试过这个stackoverflow后发布的PHP ldap - 需要强(呃)身份验证,没有运气.

不是这个域控制器的管理员; 我只需要能够查询.

我能ping HOSTNAMEOFDC.domain.location.company.com(我的域控制器的FQDN)

域控制器是一个Windows Server 2012 R2 Standard.

我已成功查询此域控制器使用DsQueryPowerShell AD Module没有问题,也没有我必须手动键入的身份验证.

我的代码:

<?php
require_once("includes/php/adLDAP/src/adLDAP.php");
$username = "domain\\username"; // also tried just "username"
$password = "somepassword";

// All possible settings are listed in this array
$options = array(
        "account_suffix" => "@domain.location.company.com",
//      "admin_username" => $username,
//      "admin_password" => $password,
//      "ad_port" => "636",
//      "base_dn" => "DC=domain,DC=location,DC=company,DC=com",
        "domain_controllers" …
Run Code Online (Sandbox Code Playgroud)

php openssl ldap domaincontroller adldap

7
推荐指数
1
解决办法
2160
查看次数

通过ldapmodify在AD中更改密码时发生LDAP约束违规

我目前尝试通过Linux上的LDAP更改我们的Active Directory Envoirenment中的密码,因为有问题的用户无法访问Windows机器,我们希望保持这种方式.为了更改密码,我目前很难搞清楚如何使用ldapmodify这样做.经过不同网站/论坛/新闻组的大量阅读后,我比以前更加困惑

但是:我尝试以下命令来执行此操作:

ldapmodify -f ldif.example -H ldaps://lab01-dc01.example.com -D 'CN=test,CN=users,DC=lab01,DC=example,DC=com' -x -W
Run Code Online (Sandbox Code Playgroud)

ldif.example的内容:

dn: CN=test,CN=Users,DC=lab01,DC=example,DC=com
changetype: modify
delete: unicodePwd
unicodePwd:: V3VQdXV1STEyLg==
-
add: unicodePwd
unicodePwd:: QmxhVVVraTEyLg==
-
Run Code Online (Sandbox Code Playgroud)

(别担心 - 这些密码不会在任何地方使用,也不是生产环境)

现在 - 每次执行命令时都会出现以下错误:

modifying entry CN=test,CN=Users,DC=lab01,DC=example,DC=com"
ldapmodify: Constraint violation (19)
 additional info: 0000216C: AtrErr: DSID-03190EB0, #1:
 0: 0000216C: DSID-03190EB0, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 9005a (unicodePwd)
Run Code Online (Sandbox Code Playgroud)

现在,在我阅读之后,出现此错误的原因是密码格式错误或密码策略不允许我使用的密码.我检查了这个政策 - 现在多次 - 并且新密码根据所有标准确定符合政策.如果我使用Windows机器设置密码它也可以正常工作(当然我之后更改了"oldpassword"和"newpassword",因为策略不允许我更改为更早的密码).我将"-W"选项传递给ldapmodify后输入的密码也是正确的,否则ldapmodify发出的错误是我使用的是无效凭证而不是约束违规.所以 - 我能想到的唯一原因确实是一个错误的格式化密码 - 但我无法弄清楚错误的格式应该来自哪里,因为我使用普通的base64 algorythm来编码密码.

有谁知道发生了什么?任何人都可以把我推向正确的方向吗?

非常感谢帮助,我提前感谢你.

编辑:让我烦恼的东西:当我通过base64运行基本编码字符串时,它一直告诉我"输入无效".现在 - 我继续与使用Linux机器上的base64的只是重新编码的密码 - 但是当我通过解码功能再次运行生成的字符串,BASE64不断告诉我"无效输入" ...琴弦不过稍显在windows-base64编码的字符串和linux编码的字符串之间进行了更改.但是无论我放在那里,base64只是说"无效输入".

Edit2:Nevermind - 读取我收集的函数的目的,因为密码中的点和感叹号,它会抛出此错误.

ldap active-directory openldap adldap

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

使用Java获取LDAP域用户名列表

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"总是获得单个用户价值.如果我错过了某些内容或者错误的方法,请告诉我.任何帮助/建议/建议将不胜感激!谢谢.

java ldap spring-ldap adldap

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

Active Directory LDS异常

嘿堆!我刚刚在我的开发机器中安装了AD LDS实例.配置如下:

<membership defaultProvider="ActiveDirectoryProvider">
      <providers>
        <add name="ActiveDirectoryProvider" 
             connectionStringName="ActiveDirectoryConnection" 
             connectionUsername="CN=adldsadmin,CN=Users,CN=TestNet,DC=contoso,DC=com" 
             connectionPassword="123456" type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
             connectionProtection="None"
             enableSearchMethods="true"
             applicationName="App1" />
      </providers>
    </membership>
Run Code Online (Sandbox Code Playgroud)

我怎么得到以下异常:

指定的目录服务属性或值不存在.

adldsadmin用户位于所有组中.我究竟做错了什么?

谢谢!

asp.net asp.net-membership active-directory adldap

3
推荐指数
1
解决办法
1597
查看次数

致命错误:未找到"adLDAP"类

我正在查看的文件名为examples.php,包含以下代码:

include (dirname(__FILE__) . "/adLDAP.php");
try {
    $adldap = new adLDAP();
}
Run Code Online (Sandbox Code Playgroud)

显示的错误如下:

Fatal error: Class 'adLDAP' not found in /var/www/examples.php on line 14
Run Code Online (Sandbox Code Playgroud)

第14行是:

$adldap = new adLDAP();
Run Code Online (Sandbox Code Playgroud)

adLDAP.php与examples.php位于同一文件夹中,并包含adLDAP类.

我搞砸了包含声明吗?我用我试过的其他格式得到"没有这样的文件或目录".感觉就像我错过了一些明显的东西.

adLDAP.php早期实例化adLDAP类:

<?php
namespace adLDAP;

require_once(dirname(__FILE__) . '/collections/adLDAPCollection.php');
require_once(dirname(__FILE__) . '/classes/adLDAPGroups.php');
require_once(dirname(__FILE__) . '/classes/adLDAPUsers.php');
require_once(dirname(__FILE__) . '/classes/adLDAPFolders.php');
require_once(dirname(__FILE__) . '/classes/adLDAPUtils.php');
require_once(dirname(__FILE__) . '/classes/adLDAPContacts.php');
require_once(dirname(__FILE__) . '/classes/adLDAPExchange.php');
require_once(dirname(__FILE__) . '/classes/adLDAPComputers.php');

class adLDAP {
Run Code Online (Sandbox Code Playgroud)

等等

php adldap

2
推荐指数
1
解决办法
2754
查看次数

使用ADLDAP从Active Directory加载用户

我正在使用ADLDAP库(http://adldap.sourceforge.net)与Active Directory进行交互.我正在使用PHP.我想从Active Directory获取所有用户并将其保存到阵列.有没有办法做到这一点?

php ldap active-directory adldap

2
推荐指数
1
解决办法
6039
查看次数