<?php
//ini_set('display_errors',-1);
// Ldapサーバー
$ldap_server = "ldaps://ldap.google.com";
// Ldapユーザー
$ldap_user = 'UserID';
$ldap_password = 'password';
// ベースのDN
$base_dn = "DC=tsukuba-g,DC=ac,DC=jp"; // DN
// コネクション接続
$ldapconn = ldap_connect($ldap_server);
if(!$ldapconn){
echo "コネクション接続できません";
exit;
} else{
// バインド接続
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option(NULL, LDAP_OPT_X_TLS_CERTFILE, "/var/www/certs/Google.crt");
ldap_set_option(NULL, LDAP_OPT_X_TLS_KEYFILE, "/var/www/certs/Google.key");
$ldapbind = @ldap_bind($ldapconn, "uid=" . $ldap_user . ",ou=Users," . $base_dn, $ldap_password);
if(!$ldapbind){
echo "失敗";
} else {
$bom="\xEF\xBB\xBF";
echo $bom;
$attrs=['displayName','member'];
$result = ldap_search($ldapconn,"ou=Groups,".$base_dn,"(objectclass=*)",$attrs);
$info = ldap_get_entries( $ldapconn, $result );
for($i=0;$i<$info['count'];++$i) {
$u = $info[$i];
if($u['displayname']['count']>0) {
$lst=explode(",",$u['dn']);
echo $u['displayname'][0].','.$lst[0]."\n";
for($j=1;$j<$u['member']['count'];++$j) {
$lst=explode(",",$u['member'][$j]);
$lst2=explode("=",$lst[0]);
echo $u['displayname'][0].",".$lst2[1]."\n";
}
}
}
}
}