За последние 24 часа нас посетили 22122 программиста и 1132 робота. Сейчас ищут 947 программистов ...

Ошибка при добавлении записи через ldap

Тема в разделе "Прочие вопросы по PHP", создана пользователем yaroslav.levchuk, 11 дек 2014.

  1. yaroslav.levchuk

    yaroslav.levchuk Активный пользователь

    С нами с:
    29 ноя 2014
    Сообщения:
    5
    Симпатии:
    0
    Всем привет!

    Есть у меня следующий код, который должен добавить пользователя в Active Directory на windows server 2008 r2
    Скажу сразу что с данной функцией знаком недавно

    Код (Text):
    1. <?php
    2. // basic sequence with LDAP is connect, bind, search, interpret search
    3. // result, close connection
    4.  
    5. echo "<h3>LDAP query test</h3>";
    6. echo "Connecting ...";
    7. $ds=ldap_connect("main-r1.somedomain.ua");  // must be a valid LDAP server!
    8. if ($ds === FALSE) {
    9. echo 'connect error';
    10. }
    11. echo "connect result is " . $ds . "<br />";
    12. $ldap_user  = "vihor@somedomain.ua";
    13. $ldap_pass = "mypassword";
    14. if ($ds) {
    15.     echo "Binding ...";
    16. ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 0x03);
    17. ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
    18.     $r=ldap_bind($ds,$ldap_user,$ldap_pass);    
    19.                          
    20.     echo "Bind result is " . $r . "<br />";
    21.  
    22.     echo "Searching for (sn=S*) ...";
    23.     // Search surname entry
    24.    
    25.     $sr=ldap_search($ds,'OU=admin,OU=Users,OU=LC_KALINOVKA,DC=somedomain,DC=ua','sn=*');  
    26.     echo "Search result is " . $sr . "<br />";
    27.  
    28.     echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />";
    29.  
    30.     echo "Getting entries ...<p>";
    31.     $info = ldap_get_entries($ds, $sr);
    32.     echo "Data for " . $info["count"] . " items returned:<p>";
    33.  
    34.     for ($i=0; $i<$info["count"]; $i++) {
    35.         echo "dn is: " . $info[$i]["dn"] . "<br />";
    36.         echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
    37.         echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
    38.     }
    39.    
    40.    
    41.     ## Create Unicode password
    42. $pwdtxt = "MyPassword1234";
    43. $newPassword = "\"" . $pwdtxt . "\"";
    44. $len = strlen($newPassword);
    45. $newPassw = "";
    46. for($i=0;$i<$len;$i++) {
    47.     $newPassw .= "{$newPassword{$i}}\000";
    48. }//unicode password
    49.  
    50.  
    51. $iinfo["cn"] = "John Jones";
    52. $iinfo["sn"] = "Jones";
    53. $iinfo["mail"] = "jonj@example.com";
    54. $iinfo["objectclass"] = "user";
    55. $iinfo["givenname"] = "Jones";
    56. $iinfo["name"] = "JonesName";
    57. $iinfo["sAMAccountName"] = "JonesSAMAACCOUNT1";
    58. $iinfo["userPrincipalName"] = "JonesSAMAACCOUNT1@somedomain.ua";
    59. $iinfo["unicodePwd"] = $newPassw;
    60.  
    61.     // Добавление данных
    62.     $r = ldap_add($ds, 'cn=John Jones,OU=admin,OU=Users,OU=LC_KALINOVKA,DC=somedomain,DC=ua', $iinfo);
    63.  
    64.     echo "Closing connection";
    65.     ldap_close($ds);
    66.  
    67. } else {
    68.     echo "<h4>Unable to connect to LDAP server</h4>";
    69. }
    70. ?>
    После добавления пароля к входящим данным валится ошибка
    Warning: ldap_add(): Add: Server is unwilling to perform in C:\OpenServer\domains\test\index.php on line 62
    На просторах интернет нашел инфу что если в ldap.conf добавить строку TLS_REQCERT never, то всё заработает, но т.к. это всё я делаю через Open Server, то возможности такой попросту нету.
    Подскажите пожалуйста где ошибаюсь или как исправить?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    а напрямую добавляется? почему вдруг он отказывается обслуживать добавление?

    это как? лицензионное соглашение не позволяет?
     
  3. yaroslav.levchuk

    yaroslav.levchuk Активный пользователь

    С нами с:
    29 ноя 2014
    Сообщения:
    5
    Симпатии:
    0
    Добавляется, просто если добавлять и пароль сразу, тогда и валится ошибка