LDAPを使って、ユーザID毎に所属グループをCSV形式で表示する。
<?php // Ldapサーバー $ldap_server = "ldaps://ldap.google.com"; // Ldapユーザー $ldap_user = 'UserID'; $ldap_password = 'Password'; // ベースのDN $base_dn = "OU=Users,DC=tsukuba-g,DC=ac,DC=jp"; // コネクション接続 $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 . "," . $base_dn, $ldap_password); if(!$ldapbind){ echo "失敗"; } else { // echo "成功"; $attrs=['uid','memberof']; $result = ldap_search($ldapconn,"OU=学生,".$base_dn,"(objectclass=*)",$attrs); $info = ldap_get_entries( $ldapconn, $result ); $bom="\xEF\xBB\xBF"; echo $bom; for($i=0;$i<$info['count'];++$i) { $u = $info[$i]; if($u['memberof']['count']==0) { //グループがない場合 echo $u['uid'][0].",0,\n"; } else { //グループがあった場合 echo $u['uid'][0].",",$u['memberof']['count']; asort($u['memberof']); for($n=0;$n<$u['memberof']['count'];$n++) { $lst=explode(",",$u['memberof'][$n]); $lst2=explode("=",$lst[0]); echo ",".$lst2[1]; } echo "\n"; } } } }