Drupal で、Active Directory のユーザー属性(ユーザーデータ)を、Drupal のプロファイルと連動させる方法

LDAP Integration モジュール内の、ldapdata モジュールを有効にすることで実現できる。

注意点としては、ldapauth とは別にここでも Active Directory へアクセスできるユーザー名とパスワードを指定するということ(Active Directory へ誰でもアクセスできるなら、この設定はいらないかもしれない)。具体的には、LDAP Data 設定項目の、Advanced Configuration から、DN for reading/editing attributes: に Active Directory へアクセスできるユーザー名とパスワードを入力する。

この LDAP Data は、Active Directory 上のユーザーデータと Drupal のプロフィールをマッピングする方法が 2つ用意されている。もし Drupal でプロフィールがすでにあって、そのプロフィールの個々のフィールドに Active Directory のデータを埋め込みたいなら、LDAP Data 設定画面の If you selected the first or the second option above, please specify here: に Drupal のプロフィールのフィールド一覧が表示されているはずなので、対応する Active Directory の属性名を入力する。

一方で、Attribute Visibility & Access Control の設定であるが、こちらはモジュール がある ldap_integration/ldap_integration ディレクトリ内の、ldapdata.conf.php に Active Directory 内の属性とのマッピングを記述すると反映される。以下の部分である。ここをよく見て、適宜 Active Directory の属性を追記できる。この場合は、Drupal に対応するプロファイルを作る必要はなくなる。

<?php
$GLOBALS
['ldap_attributes'] = array(
 
'givenName' => array('text', 'textfield', t('First Name')       , 64, 64),
 
'sn'        => array('text', 'textfield', t('Last Name')        , 64, 64),
 
'cn'        => array('text', 'textfield', t('Common Name')      , 64, 64),
 
'homePage'  => array('url' , 'textfield', t('Other web pages')  , 64, 64),
 
'mail'      => array('text', 'textfield', t('Email')            , 64, 64)
);
?>

トラックバック URL: https://perltips.twinkle.cc/trackback/311