GoogleIDの所属グループ一覧

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";
                }
        }
    }
}
カテゴリー: 未分類 タグ: , , , パーマリンク