1
|
<?php
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
$ldapURI = 'ldap://qri.dev.local:389';
|
15
|
$ldapBaseDN = 'dc=qri,dc=dev,dc=local';
|
16
|
$ldapAdminDN = 'cn=admin,dc=qri,dc=dev,dc=local';
|
17
|
|
18
|
|
19
|
$conn = ldap_connect($ldapURI) or die('Unable to connect to ldap server at ' . $ldapURI . PHP_EOL);
|
20
|
ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);
|
21
|
ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);
|
22
|
|
23
|
echo 'Binding as: ' . $ldapAdminDN . PHP_EOL;
|
24
|
$adminPassword = trim(exec('env bash -c \'{ read -s -p "Admin password: " ; echo -n $REPLY ; }\''));
|
25
|
echo PHP_EOL . PHP_EOL;
|
26
|
ldap_bind($conn, $ldapAdminDN, $adminPassword) or die('Unable to bind to ldap server as ' . $ldapAdminDN . PHP_EOL);
|
27
|
|
28
|
$action = $argv[1];
|
29
|
if ($action === 'search') {
|
30
|
$query = $argv[2];
|
31
|
$result = ldap_search($conn, $ldapBaseDN, $query);
|
32
|
for ($entry = ldap_first_entry($conn, $result); !empty($entry); $entry = ldap_next_entry($conn, $entry)) {
|
33
|
echo ldap_get_dn($conn, $entry) . PHP_EOL;
|
34
|
}
|
35
|
} elseif ($action === 'bind' && !empty($argv[2])) {
|
36
|
$dn = $argv[2];
|
37
|
echo 'Binding as: ' . $dn . PHP_EOL;
|
38
|
$userPassword = trim(exec('env bash -c \'{ read -s -p "User password: " ; echo -n $REPLY ; }\''));
|
39
|
echo PHP_EOL . PHP_EOL;
|
40
|
$result = ldap_bind($conn, $dn, $userPassword);
|
41
|
unset($userPassword);
|
42
|
echo ($result ? 'Success' : 'Failure') . PHP_EOL;
|
43
|
}
|