「Active Directory」の版間の差分

提供:MoodleDocs
移動先:案内検索
編集の要約なし
 
(他の1人の利用者による、間の44版が非表示)
1行目: 1行目:
作成中です - [[利用者:Mitsuhiro Yoshida|Mitsuhiro Yoshida]] 2009年1月29日 (木) 09:58 (CST)
{{認証}}Microsoft社のActive Directory (AD) では、LDAP (Lightweight Directory Access Protocol) のような機能を含む、様々なネットワークディレクトリサービスを提供しています。このサービスは、Windows 2000サーバおよびそれ以降のバージョンに実装されています。このページでは、[[LDAP認証]]機能を中心に説明します。
 
Microsoft社のActive Directory (AD) では、LDAP (Lightweight Directory Access Protocol) のような機能を含む、様々なネットワークディレクトリサービスを提供します。このサービスは、Windows 2000サーバおよびそれ以降のバージョンに実装されています。このページでは、[[LDAP認証]]機能を中心に説明します。


==ADおよびLDAPのトラブルシューティング==
==ADおよびLDAPのトラブルシューティング==
7行目: 5行目:
通常、これはメインのldap dllまたはサポートされているdllのひとつが見つからないことを意味します。
通常、これはメインのldap dllまたはサポートされているdllのひとつが見つからないことを意味します。
メインのdllから始めてみましょう。
メインのdllから始めてみましょう。
http://(moodleserver)/admin/phpinfo.phpを閲覧して、どのphp.iniを使用するか指定する「Configuration File (php.ini) Path 」フィールドを確認した後、php.iniをエディタで開いてください。「extension=php_ldap.dll」の行を見つけて、先頭にセミコロンある場合、セミコロンを削除してください。このセミコロンにより、モジュールの読み込みは停止されてしまいます!  
<nowiki>http://(moodleserver)/admin/phpinfo.php</nowiki>を閲覧して、どのphp.iniを使用するか指定する「Configuration File (php.ini) Path 」フィールドを確認した後、php.iniをエディタで開いてください。「extension=php_ldap.dll」の行を見つけて、先頭にセミコロンがある場合、セミコロンを削除してください。このセミコロンにより、モジュールの読み込みは停止されてしまいます!  
あなたのこのファイルを開いている間に、「extension_dir」を探して、どのフォルダが設定されているかメモしてください。そのフォルダを開いて、そこにphp_ldap.dllがあるかどうか確認してください。
このファイルを開いている間に「extension_dir」を探して、どのフォルダが設定されているかメモしてください。そのフォルダを開いて、そこにphp_ldap.dllがあるかどうか確認してください。
まだ、問題が解決しない場合、サポートされているdllがありませんが、あなたはどのdllがないのか伝えられていません。どのdllがないのか確認するには、コマンドプロンプトを開いてPHPディレクトリに移動した後、コマンド「php -m」を実行してください。あなたは、何らかのエラーメッセージを確認することができるはずです。スマートではありませんが、あなたは少なくともエラーに関する情報を取得することができます! 一覧表示されているDLLを見つけて、PHPディレクトリにコピーしてください。そして、apache/httpサービスをリスタートしてください。再度、「php -m」コマンドを実行するとエラーが表示されないはずです。また、Moodle内のメッセージにもエラーが表示されません。
まだ、問題が解決しない場合、サポートされているdllがありませんが、あなたはどのdllがないのか伝えられていません。どのdllがないのか確認するには、コマンドプロンプトを開いてPHPディレクトリに移動した後、コマンド「php -m」を実行してください。あなたは、何らかのエラーメッセージを確認することができるはずです。スマートではありませんが、あなたは少なくともエラーに関する情報を取得することができます! 一覧表示されているDLLを見つけて、PHPディレクトリにコピーしてください。そして、apache/httpサービスをリスタートしてください。再度、「php -m」コマンドを実行するとエラーが表示されないはずです。また、Moodle内のメッセージにもエラーが表示されません。


15行目: 13行目:
  Server: 'ldap://my.ldap.server/'  
  Server: 'ldap://my.ldap.server/'  
  Connection: 'Resource id #26' Bind result: ''
  Connection: 'Resource id #26' Bind result: ''
このメッセージが表示される場合、あなたは正しくないバインドユーザ情報でログインを試みているか、ユーザアカウントにAcrive Directoryで十分なパーミッションがないことが考えられます。この問題を解決する最良の方法は、ldp.exeを使用して、成功するまでバインドをテストすることです。ldp.exeのインストールに関するインストラクションは下記にあります。
このメッセージが表示される場合、あなたは正しくないバインドユーザ情報でログインを試みているか、ユーザアカウントにAcrive Directoryの十分なパーミッションがないことが考えられます。この問題を解決する最良の方法は、ldp.exeを使用して、成功するまでバインドをテストすることです。ldp.exeのインストールに関するインストラクションは下記にあります。
プログラムを開いて、ADに接続します。サーバ名を入力して、接続メニューからバインドを選択してください。あなたが正しいと思う詳細情報を入力すると、恐らくエラーメッセージが返されると思われます。アカウントの特権を調整するか、別のアカウントを使用して「Authenticated as」メッセージが表示されるまで試してください。あなたのアカウントがADのバインドに使用することができると確信できるようになった場合、ユーザ名のDNが正しいかどうか確認してください。あなたがバインドに使用するユーザが見つかるまで、左側のツリーを広げてください。アイテムの上で右クリックして、DNをコピーしてください。Moodleのユーザ認証ページに移動して、値をldap_bind_dnフィールドに貼り付けてください。パスワードを追加してください。これで、あなたのユーザを正常にバインドできるようになります。
プログラムを開いて、ADに接続します。サーバ名を入力して、接続メニューからバインドを選択してください。あなたが正しいと思う詳細情報を入力すると、恐らくエラーメッセージが返されると思われます。アカウントの特権を調整するか、別のアカウントを使用して「Authenticated as」メッセージが表示されるまで試してください。あなたのアカウントをADのバインドに使用することができると確信できるようになった場合、ユーザ名のDNが正しいかどうか確認してください。あなたがバインドに使用するユーザが見つかるまで、左側のツリーを広げてください。アイテムの上で右クリックして、DNをコピーしてください。Moodleのユーザ認証ページに移動して、コピーした値をldap_bind_dnフィールドに貼り付けてください。パスワードを追加してください。これで、あなたのユーザを正常にバインドできるようになります。


===コンテクストおよびクリエータに関して、正しいCNを取得する===
===コンテクストおよびクリエータに関して、正しいCNを取得する===
ADに精通していない人にとって、これは非常に難解であり、精通している人にとって、それほど簡単だというわけではありません。再び、ldp.exeはあなたの友人であると言えます。ldp.exeのインストールに関するインストラクションは下記にあります。
ADに精通していない人にとって、これは非常に難解であり、精通している人にとっても、それほど簡単だというわけではありません。再び、ldp.exeはあなたの友人であると言えます。ldp.exeのインストールに関するインストラクションは下記にあります。
あなたがバインドに使用するユーザが見つかるまで、左側のツリーを広げてください。アイテムの上で右クリックして、DNをコピーしてください。Moodleのユーザ認証ページに戻って、値をldap_contextsまたはldap_creatorsに貼り付けてください。
あなたがバインドに使用するユーザが見つかるまで、左側のツリーを広げてください。アイテムの上で右クリックして、DNをコピーしてください。Moodleのユーザ認証ページに戻って、コピーした値をldap_contextsまたはldap_creatorsに貼り付けてください。


===正しいuser_attributeを取得する===
===正しいuser_attributeを取得する===
デフォルトで、認証のためMoodleはアカウントのcn (フルネーム) を使用します。しかし、多くのネットワークでは、推測することが非常に簡単なため、完全な姓を使用しません。また、あなたは簡単に同じアカウント名のユーザを2名持つことができてしまいます。このケースがあなたに当てはまる場合、あなたはログインIDに関して、別のフィールドをMoodleに伝える必要があります。
デフォルトで、認証のためMoodleはアカウントのcn (フルネーム) を使用します。しかし、多くのネットワークでは、推測することが非常に簡単なため、完全な姓を使用しません。また、あなたは簡単に同じアカウント名のユーザを2名持つことができてしまいます。このケースがあなたに当てはまる場合、あなたはログインIDに関して、別のフィールドをMoodleに伝える必要があります。
ldp.exeでは、あなた自身でユーザアカウントを探せるよう、左側にツリーが表示されます。ツリーのアイテムをダブルクリックすることで、ユーザアカウント詳細が画面の右側に表示されます。あなたがログインIDを探すまで、一覧表示されているアイテムを閲覧してください。私にとって、また多くの人にとって、sAMAccountNameになると思います。このアカウント名をコピーして、Moodleユーザ認証ページのldap_user_attributeに貼り付けてください。
ldp.exeでは、あなた自身でユーザアカウントを探せるよう、左側にツリーが表示されます。ツリーのアイテムをダブルクリックすることで、ユーザアカウント詳細が画面の右側に表示されます。あなたがログインIDを見つけるまで、一覧表示されているアイテムを閲覧してください。私にとって、また多くの人にとって、sAMAccountNameになると思います。このアカウント名をコピーして、Moodleユーザ認証ページのldap_user_attributeに貼り付けてください。
ldp.exeのインストールに関するインストラクションは下記にあります。
ldp.exeのインストールに関するインストラクションは下記にあります。


===ldp.exeサーバツールをインストールする===
===ldp.exeサーバツールをインストールする===
ほとんどのバージョンのWindowsサーバでは、ldp.exeは一部のサーバツールとして提供されます。あなたのWindowsサーバインストールディスクを探して、その中でSupport\Toolsという名称のフォルダを探してください。そのフォルダの中にサーバツールのインストールを実行できるSupTools.msiがあります。インストールの実行後、あなたはProgram Filesフォルダ配下に、ldp.exeが入ったSupport Toolsというフォルダを持ちます。Windows XP Support Toolsでも使用でるldp.exeはMicrosoftの[http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en ここ]からダウンロードすることができます。代わりに単一のldp.exeは、[http://www.computerperformance.co.uk/w2k3/utilities/ldp.htm ここ]からダウンロードすることができます。
ほとんどのバージョンのWindowsサーバでは、ldp.exeは一部のサーバツールとして提供されます。あなたのWindowsサーバインストールディスクを探して、その中でSupport\Toolsというフォルダ名のフォルダを探してください。そのフォルダの中にサーバツールのインストールを実行できるSupTools.msiがあります。インストール実行後、あなたはProgram Filesフォルダ配下に、ldp.exeが入ったSupport Toolsというフォルダを持ちます。Windows XP Support Toolsでも使用できるldp.exeはMicrosoftの[http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en ここ]からダウンロードすることができます。代わりに単一のldp.exeは、[http://www.computerperformance.co.uk/w2k3/utilities/ldp.htm ここ]からダウンロードすることができます。


===Active Directory設定例===
===Active Directory設定例===
Below is an example configuration for Active Directory. As detailed above, the values may vary based on your local Active Directory configuration, but should provide a good starting point for most cases.
以下、Active Directoryの設定例です。上記詳細のように、あなたのローカルActive Directory設定に基づき、各設定値は異なります。しかし、ほとんどのケースに関して、有効なスターティングポイントを例示します。


  ldap_host_url = ldap://ads.example.com
  ldap_host_url = ldap://ads.example.com
43行目: 41行目:




Note that the ldap_bind_dn value should work in either the CN=bin-user,CN=Users,DC=example,DC=com format as shown in the main instructions or the bind-user@example.com format shown in this example.
ldap_bind_dnの値は、メインのインストラクションで表示されている「CN=bin-user,CN=Users,DC=example,DC=com」フォーマットまたはここで例示されている「bind-user@example.com」フォーマットのどちらか適用することができます。


==グローバルカタログ==
==グローバルカタログ==
Moodle currently only has limited support for multiple domain controllers; specifically it expects each of the LDAP servers listed to contain identical sets of information. If you have users in multiple domains this presents an issue. One solution when working with MS-AD is to use the Global Catalog. The Global Catalog is designed to be a read-only, partial representation of an entire MS-AD forest, designed for searching the entire directory when the domain of the required object is not known.
現在、Moodleは複数ドメインコントローラのみ限定サポートしています。特に、同一の情報セットを含むLDAPサーバを想定しています。あなたのユーザが複数のドメインに登録されている場合、問題が生じてしまいます。MS-ADでの一つの解決方法は、グローバルカタログを使用することです。グローバルカタログは、読み取り専用に設計されています。また、MS-ADフォレスト全体の一部を指定して、所要のオブジェクトのドメインが分からない場合、ディレクトリ全体を検索するよう設計されています。


===グローバルカタログを有効化する===
===グローバルカタログを有効化する===


The Global Catalog is available on Windows 2000 and Windows 2003 Active Directory servers. To enable, open the ‘Active Directory Sites and Services’ MMC (Microsoft Management Console) snap-in. Extend ‘Sites’ and then the name of the Site containing the active directory forest you wish to use. Expand the server you wish to enable the Global Catalog on, right click ‘NTDS settings’ and select the ‘Properties’ tab. To enable, simply click the ‘Global Catalog’ checkbox. Under a Windows 2000 server it is necessary to restart the server (although it won’t prompt you to); under Windows 2003 server it is not necessary to restart the server. In either case you will generally have to wait for the AD forest to replicate before the Global Catalog offers a representation of the entire AD forest. Changes made in Active Directory will also be subject to a short delay due to the latency involved with replication. If your AD servers are firewalled port 3268 will need to be opened for Global Catalog servers.
グローバルカタログは、Windows 2000およびWindows 2003 Active Directoryサーバのみで利用できます。有効にするには、「Active Directoryサイトとサービス」 MMC (Microsoft Management Console) スナップインを開いてください。「サイト」を広げると、あなたが使用したいActive Directoryフォレストを含んだサイト名が表示されます。あなたがグローバルカタログを有効にしたいサーバを広げて、右クリックで「NTDS設定」、そして「プロパティ」タブを選択してください。有効にするには、「グローバルカタログ」チェックボックスをチェックしてください。Windows 2000以下では、サーバを再起動する必要があります (あなたが再起動を求められることはありません)。Windows 2003以下では、サーバの再起動は必要ではありません。両方のケースで、グローバルカタログがADフォレスト全体を提供するまで、あなたは一般的にADフォレストの複製を待つ必要があります。また、Active Directory内の変更は、複製の影響で若干遅れる場合もあります。あなたのADサーバのポート3268がファイアーウォールで閉じられている場合、グローバルカタログサーバのために開ける必要があります。あなたの組織がMicrosoft Exchangeを使用している場合、少なくとも1つのドメインコントローラでグローバルカタログが有効にされている可能性が極めて高いと考えられます – Exchange 2000および2003では、アドレス情報に関してグローバルカタログに依存します。また、GAL (Global Address List) を使用する場合、ユーザはグローバルカタログにアクセスします。
If your organisation uses Microsoft Exchange then it its highly likely that at least one Domain Controller will already have Global Catalog enabled – Exchange 2000 and 2003 rely on the Global Catalog for address information, users also access the Global Catalog when using the GAL (Global Address List)
 


===子ドメイン===
===子ドメイン===
If your organisation has a main domain example.org, staff and students are contained in two child domains staff.example.org and students.example.org. The 3 domains (example.org, staff.example.org and students.example.org) each have a domain controller (dc01, dc02 and dc03 respectively.) Each domain controller contains a full, writable, representation of only the objects that belong to its domain. However, assuming that the Global Catalog has been enabled (see below) on one of the domain controllers (for example dc01) a query to the Global Catalog would reveal matching objects from all three domains. The Global Catalog is automatically maintained through replication across the active directory forest, it can also be enabled on multiple servers (if, for example, you need redundancy / load balancing.)
あなたの組織がexample.orgというメインのドメインを使用している場合、スタッフおよび学生は、2つの子ドメイン「staff.example.org」および「students.example.org」に入ります。3つのドメイン (example.org、staff.example.org、students.example.org) は、個々のドメインコントローラ (dc01、dc02、dc03) を持ちます。それぞれのドメインコントローラは、そのドメインに属している、完全で書き込み可能なオブジェクト表現のみ含みます。しかし、1つのドメインコントローラ (例 dc01) でグローバルカタログが有効にされていると仮定すると (下記をご覧ください)、グローバルカタログへのクエリは、すべて3つのドメインにおいて、合致するオブジェクトを露呈することになります。グローバルカタログは、Active Directoryフォレスト間のレプリケーションを通して、自動的にメンテナンスされます。また、 (あなたが、冗長性/ロードバランシングが必要な場合) 複数のサーバ間でも可能です。
 
To make use of this in Moodle to allow logins from multiple domains is simple. The Global Catalog runs on port 3268 as opposed to 389 for standard LDAP queries. As a result, still assuming the Global Catalog is running on dc01, the ''''ldap_host_url'''' would be ''ldap://dc01.example.org:3268''. The rest of the settings are the same as for other MS-AS Auth setups.
 
You should use the ''''ldap_contexts'''' setting to indicate the locations of individuals you wish to grant access. To extend the example above a little: In the example.org domain users are all in the'' 'Users' ''OU, in the staff.example.org domain users are in two OUs at the root of the domain,'' 'Support Staff' ''and'' 'Teaching Staff' '', and in the students.example.org domain students are in an OU indicating the year that they enrolled, all of which are under the'' 'Students' ''OU. As a result our ''''ldap_contexts'''' setting may look a little like this:'' 'OU=Users,DC=example,DC=org; OU=Support Staff,DC=staff,DC=example,DC=org; OU=Teaching Staff,DC=staff,DC=example,DC=org; OU=Students,DC=students,DC=example,DC=org''.' The ''''ldap_search_sub'''' option should be set to'' 'Yes' ''to allow moodle to search within the child OUs.


Its worth noting that the Global Catalog only contains a partial representation of the attributes of each object, as defined in the Partial Attribute Set supplied by Microsoft. However common information likely to be of use to a general Moodle installation (Forename, Surname, Email Address, sAMAccountName etc) is included in the set. For specific needs the schema can be altered to remove or add various attributes.
これを利用できるようにするには、複数ドメインからMoodleにログインできるようにするだけです。グローバルカタログは、標準的なLDAPクエリのポート389とは反対のポート3268で動作します。結果として、まだグローバルカタログがdc01で動作しているとすると、'''ldap_host_url'''は、「ldap://dc01.example.org:3268」のようになります。後の設定は、他のMS-AS認証設定と同じです。


In most cases the Global Catalog is read-only, update queries must be made over the standard LDAP ports to the domain controller that holds the object in question (in our example, updating a student's details would require an LDAP query to the students.example.org domain controller - dc03, it would not be possible to update details by querying the Global Catalog.) The exception to this would be in an environment where there is only a single domain in the active directory forest; in this case the Global Catalog holds a writable full set of attributes for each object in the domain. However, for the purposes of Moodle authorisation, there would be no need to use the Global Catalog in this case.
あなたがアクセスを与えたい個人のロケーションを指示するには、'''ldap_contexts'''設定を使用してください。上記例を少しだけ拡張するには: example.orgドメインのユーザは、すべてUsersのOUにあり、staff.example.orgドメインのユーザは、ドメインのrootにある「Support Staff」および「Teaching Staff」の2つのOUにあります。そして、students.example.orgドメインの学生は、登録された年度を示すOUにあります。これら、すべては「Students」のOU配下にあります。結果として私たちの'''ldap_contexts'''設定は次の内容に似た感じになります:「OU=Users,DC=example,DC=org; OU=Support Staff,DC=staff,DC=example,DC=org; OU=Teaching Staff,DC=staff,DC=example,DC=org; OU=Students,DC=students,DC=example,DC=org」Moodleが子OUを検索できるようにするため、'''ldap_search_sub'''オプションは、「Yes」に設定してください。


Microsoftから提供されたPartial Attribute Set (部分的な属性セット) として、グローバルカタログにおいて、それぞれのオブジェクトの属性一部のみを含んでいることは注目に値します。しかしながら、一般的なMoodleインストレーションでは、セットに含まれている共通情報 (Forename、Surname、Email Address、sAMAccountName等) が使用されるようです。必要に応じて、属性を削除または追加することにより、スキーマを変更することができます。


多くの場合、グローバルカタログはリードオンリーであり、クエリの更新は問題のオブジェクトを保持しているドメインコントローラに対して標準的なLDAPポート経由で実行されるべきです (私たちの例では、学生の詳細情報の更新には、students.example.orginドメインコントローラ - dc03のLDAPクエリを必要とします。また、グローバルカタログのクエリにより、詳細情報を更新することはできません)。 これに関する例外は、Active Directoryフォレストに単一ドメインのみ存在する環境です。この場合、ドメイン内それぞれのオブジェクトに対して、グローバルカタログは書き込み可能な属性のフルセットを保持します。しかし、Moodleの権限授与の目的では、グローバルカタログの使用は必要ではありません。


== Active Directory + Moodle 1.8==
== Active Directory + Moodle 1.8==
72行目: 66行目:
Active Directory認証のLAPMプラットフォームでMoodleを使用する場合、エラーが発生します。
Active Directory認証のLAPMプラットフォームでMoodleを使用する場合、エラーが発生します。


詳細は、このバグレポート[http://tracker.moodle.org/browse/MDL-10921 MDL-10921]を確認するか、この投稿 http://moodle.org/mod/forum/discuss.php?d=78316 をご覧ください。
詳細は、このバグレポート http://tracker.moodle.org/browse/MDL-10921 MDL-10921 を確認するか、この投稿 http://moodle.org/mod/forum/discuss.php?d=78316 をご覧ください。


====MSアクティブディレクトリ + SSL ====
====MSアクティブディレクトリ + SSL ====
78行目: 72行目:
認証局 (Certificate Authority) がインストールされていない場合、まず次のようにインストールしてください:
認証局 (Certificate Authority) がインストールされていない場合、まず次のようにインストールしてください:
# '''スタート''' -> '''コントロールパネル''' -> '''プログラムの追加と削除''' をクリックする。
# '''スタート''' -> '''コントロールパネル''' -> '''プログラムの追加と削除''' をクリックする。
# 「'Windowsコンポーネントの追加と削除''」をクリックして、'''インターネット認証サービス''' を選択する。
# 「'''Windowsコンポーネントの追加と削除'''」をクリックして、'''インターネット認証サービス''' を選択する。
# '''インターネット認証サービス''' のインストール手順に従う。エンタープライズレベルの選択をお勧めします。
# '''インターネット認証サービス''' のインストール手順に従う。エンタープライズレベルの選択をお勧めします。


91行目: 85行目:
==関連情報==
==関連情報==
*Moodleの[[LDAP認証]]
*Moodleの[[LDAP認証]]
*[http://en.wikipedia.org/wiki/Directory_service Directory services] overview in Wikipedia
*[http://en.wikipedia.org/wiki/Directory_service Directory services] Wikipedia - 英語
*[http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol LDAP] in Wikipedia
*[http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol LDAP] Wikipedia - 英語


[[en:Active_Directory]]
[[en:Active_Directory]]

2021年3月23日 (火) 06:25時点における最新版

Microsoft社のActive Directory (AD) では、LDAP (Lightweight Directory Access Protocol) のような機能を含む、様々なネットワークディレクトリサービスを提供しています。このサービスは、Windows 2000サーバおよびそれ以降のバージョンに実装されています。このページでは、LDAP認証機能を中心に説明します。

ADおよびLDAPのトラブルシューティング

Warning: The PHP LDAP module does not seem to be present. Please ensure it is installed and enabled.

通常、これはメインのldap dllまたはサポートされているdllのひとつが見つからないことを意味します。 メインのdllから始めてみましょう。 http://(moodleserver)/admin/phpinfo.phpを閲覧して、どのphp.iniを使用するか指定する「Configuration File (php.ini) Path 」フィールドを確認した後、php.iniをエディタで開いてください。「extension=php_ldap.dll」の行を見つけて、先頭にセミコロンがある場合、セミコロンを削除してください。このセミコロンにより、モジュールの読み込みは停止されてしまいます! このファイルを開いている間に「extension_dir」を探して、どのフォルダが設定されているかメモしてください。そのフォルダを開いて、そこにphp_ldap.dllがあるかどうか確認してください。 まだ、問題が解決しない場合、サポートされているdllがありませんが、あなたはどのdllがないのか伝えられていません。どのdllがないのか確認するには、コマンドプロンプトを開いてPHPディレクトリに移動した後、コマンド「php -m」を実行してください。あなたは、何らかのエラーメッセージを確認することができるはずです。スマートではありませんが、あなたは少なくともエラーに関する情報を取得することができます! 一覧表示されているDLLを見つけて、PHPディレクトリにコピーしてください。そして、apache/httpサービスをリスタートしてください。再度、「php -m」コマンドを実行するとエラーが表示されないはずです。また、Moodle内のメッセージにもエラーが表示されません。

すべてのLDAPサーバにLDAPモジュールから接続できません

LDAP-module cannot connect any LDAP servers: 
Server: 'ldap://my.ldap.server/' 
Connection: 'Resource id #26' Bind result: 

このメッセージが表示される場合、あなたは正しくないバインドユーザ情報でログインを試みているか、ユーザアカウントにAcrive Directoryの十分なパーミッションがないことが考えられます。この問題を解決する最良の方法は、ldp.exeを使用して、成功するまでバインドをテストすることです。ldp.exeのインストールに関するインストラクションは下記にあります。 プログラムを開いて、ADに接続します。サーバ名を入力して、接続メニューからバインドを選択してください。あなたが正しいと思う詳細情報を入力すると、恐らくエラーメッセージが返されると思われます。アカウントの特権を調整するか、別のアカウントを使用して「Authenticated as」メッセージが表示されるまで試してください。あなたのアカウントをADのバインドに使用することができると確信できるようになった場合、ユーザ名のDNが正しいかどうか確認してください。あなたがバインドに使用するユーザが見つかるまで、左側のツリーを広げてください。アイテムの上で右クリックして、DNをコピーしてください。Moodleのユーザ認証ページに移動して、コピーした値をldap_bind_dnフィールドに貼り付けてください。パスワードを追加してください。これで、あなたのユーザを正常にバインドできるようになります。

コンテクストおよびクリエータに関して、正しいCNを取得する

ADに精通していない人にとって、これは非常に難解であり、精通している人にとっても、それほど簡単だというわけではありません。再び、ldp.exeはあなたの友人であると言えます。ldp.exeのインストールに関するインストラクションは下記にあります。 あなたがバインドに使用するユーザが見つかるまで、左側のツリーを広げてください。アイテムの上で右クリックして、DNをコピーしてください。Moodleのユーザ認証ページに戻って、コピーした値をldap_contextsまたはldap_creatorsに貼り付けてください。

正しいuser_attributeを取得する

デフォルトで、認証のためMoodleはアカウントのcn (フルネーム) を使用します。しかし、多くのネットワークでは、推測することが非常に簡単なため、完全な姓を使用しません。また、あなたは簡単に同じアカウント名のユーザを2名持つことができてしまいます。このケースがあなたに当てはまる場合、あなたはログインIDに関して、別のフィールドをMoodleに伝える必要があります。 ldp.exeでは、あなた自身でユーザアカウントを探せるよう、左側にツリーが表示されます。ツリーのアイテムをダブルクリックすることで、ユーザアカウント詳細が画面の右側に表示されます。あなたがログインIDを見つけるまで、一覧表示されているアイテムを閲覧してください。私にとって、また多くの人にとって、sAMAccountNameになると思います。このアカウント名をコピーして、Moodleユーザ認証ページのldap_user_attributeに貼り付けてください。 ldp.exeのインストールに関するインストラクションは下記にあります。

ldp.exeサーバツールをインストールする

ほとんどのバージョンのWindowsサーバでは、ldp.exeは一部のサーバツールとして提供されます。あなたのWindowsサーバインストールディスクを探して、その中でSupport\Toolsというフォルダ名のフォルダを探してください。そのフォルダの中にサーバツールのインストールを実行できるSupTools.msiがあります。インストール実行後、あなたはProgram Filesフォルダ配下に、ldp.exeが入ったSupport Toolsというフォルダを持ちます。Windows XP Support Toolsでも使用できるldp.exeはMicrosoftのここからダウンロードすることができます。代わりに単一のldp.exeは、ここからダウンロードすることができます。

Active Directory設定例

以下、Active Directoryの設定例です。上記詳細のように、あなたのローカルActive Directory設定に基づき、各設定値は異なります。しかし、ほとんどのケースに関して、有効なスターティングポイントを例示します。

ldap_host_url = ldap://ads.example.com
ldap_version = 3
ldap_preventpassindb = yes
ldap_bind_dn = bind-user@example.com
ldap_bind_pw = bind-password
ldap_user_type = MS ActiveDirectory
ldap_contexts = ou=moodleusers,dc=example,dc=com
ldap_user_attribute = sAMAccountName


ldap_bind_dnの値は、メインのインストラクションで表示されている「CN=bin-user,CN=Users,DC=example,DC=com」フォーマットまたはここで例示されている「bind-user@example.com」フォーマットのどちらか適用することができます。

グローバルカタログ

現在、Moodleは複数ドメインコントローラのみ限定サポートしています。特に、同一の情報セットを含むLDAPサーバを想定しています。あなたのユーザが複数のドメインに登録されている場合、問題が生じてしまいます。MS-ADでの一つの解決方法は、グローバルカタログを使用することです。グローバルカタログは、読み取り専用に設計されています。また、MS-ADフォレスト全体の一部を指定して、所要のオブジェクトのドメインが分からない場合、ディレクトリ全体を検索するよう設計されています。

グローバルカタログを有効化する

グローバルカタログは、Windows 2000およびWindows 2003 Active Directoryサーバのみで利用できます。有効にするには、「Active Directoryサイトとサービス」 MMC (Microsoft Management Console) スナップインを開いてください。「サイト」を広げると、あなたが使用したいActive Directoryフォレストを含んだサイト名が表示されます。あなたがグローバルカタログを有効にしたいサーバを広げて、右クリックで「NTDS設定」、そして「プロパティ」タブを選択してください。有効にするには、「グローバルカタログ」チェックボックスをチェックしてください。Windows 2000以下では、サーバを再起動する必要があります (あなたが再起動を求められることはありません)。Windows 2003以下では、サーバの再起動は必要ではありません。両方のケースで、グローバルカタログがADフォレスト全体を提供するまで、あなたは一般的にADフォレストの複製を待つ必要があります。また、Active Directory内の変更は、複製の影響で若干遅れる場合もあります。あなたのADサーバのポート3268がファイアーウォールで閉じられている場合、グローバルカタログサーバのために開ける必要があります。あなたの組織がMicrosoft Exchangeを使用している場合、少なくとも1つのドメインコントローラでグローバルカタログが有効にされている可能性が極めて高いと考えられます – Exchange 2000および2003では、アドレス情報に関してグローバルカタログに依存します。また、GAL (Global Address List) を使用する場合、ユーザはグローバルカタログにアクセスします。

子ドメイン

あなたの組織がexample.orgというメインのドメインを使用している場合、スタッフおよび学生は、2つの子ドメイン「staff.example.org」および「students.example.org」に入ります。3つのドメイン (example.org、staff.example.org、students.example.org) は、個々のドメインコントローラ (dc01、dc02、dc03) を持ちます。それぞれのドメインコントローラは、そのドメインに属している、完全で書き込み可能なオブジェクト表現のみ含みます。しかし、1つのドメインコントローラ (例 dc01) でグローバルカタログが有効にされていると仮定すると (下記をご覧ください)、グローバルカタログへのクエリは、すべて3つのドメインにおいて、合致するオブジェクトを露呈することになります。グローバルカタログは、Active Directoryフォレスト間のレプリケーションを通して、自動的にメンテナンスされます。また、 (あなたが、冗長性/ロードバランシングが必要な場合) 複数のサーバ間でも可能です。

これを利用できるようにするには、複数ドメインからMoodleにログインできるようにするだけです。グローバルカタログは、標準的なLDAPクエリのポート389とは反対のポート3268で動作します。結果として、まだグローバルカタログがdc01で動作しているとすると、ldap_host_urlは、「ldap://dc01.example.org:3268」のようになります。後の設定は、他のMS-AS認証設定と同じです。

あなたがアクセスを与えたい個人のロケーションを指示するには、ldap_contexts設定を使用してください。上記例を少しだけ拡張するには: example.orgドメインのユーザは、すべてUsersのOUにあり、staff.example.orgドメインのユーザは、ドメインのrootにある「Support Staff」および「Teaching Staff」の2つのOUにあります。そして、students.example.orgドメインの学生は、登録された年度を示すOUにあります。これら、すべては「Students」のOU配下にあります。結果として私たちのldap_contexts設定は次の内容に似た感じになります:「OU=Users,DC=example,DC=org; OU=Support Staff,DC=staff,DC=example,DC=org; OU=Teaching Staff,DC=staff,DC=example,DC=org; OU=Students,DC=students,DC=example,DC=org」Moodleが子OUを検索できるようにするため、ldap_search_subオプションは、「Yes」に設定してください。

Microsoftから提供されたPartial Attribute Set (部分的な属性セット) として、グローバルカタログにおいて、それぞれのオブジェクトの属性一部のみを含んでいることは注目に値します。しかしながら、一般的なMoodleインストレーションでは、セットに含まれている共通情報 (Forename、Surname、Email Address、sAMAccountName等) が使用されるようです。必要に応じて、属性を削除または追加することにより、スキーマを変更することができます。

多くの場合、グローバルカタログはリードオンリーであり、クエリの更新は問題のオブジェクトを保持しているドメインコントローラに対して標準的なLDAPポート経由で実行されるべきです (私たちの例では、学生の詳細情報の更新には、students.example.orginドメインコントローラ - dc03のLDAPクエリを必要とします。また、グローバルカタログのクエリにより、詳細情報を更新することはできません)。 これに関する例外は、Active Directoryフォレストに単一ドメインのみ存在する環境です。この場合、ドメイン内それぞれのオブジェクトに対して、グローバルカタログは書き込み可能な属性のフルセットを保持します。しかし、Moodleの権限授与の目的では、グローバルカタログの使用は必要ではありません。

Active Directory + Moodle 1.8

Modle 1.8において、Active Directoryアクセスが必要な場合、PHP LDAPオプションに問題があります。

Active Directory認証のLAPMプラットフォームでMoodleを使用する場合、エラーが発生します。

詳細は、このバグレポート http://tracker.moodle.org/browse/MDL-10921 MDL-10921 を確認するか、この投稿 http://moodle.org/mod/forum/discuss.php?d=78316 をご覧ください。

MSアクティブディレクトリ + SSL

認証局 (Certificate Authority) がインストールされていない場合、まず次のようにインストールしてください:

  1. スタート -> コントロールパネル -> プログラムの追加と削除 をクリックする。
  2. Windowsコンポーネントの追加と削除」をクリックして、インターネット認証サービス を選択する。
  3. インターネット認証サービス のインストール手順に従う。エンタープライズレベルの選択をお勧めします。

WindowsインストールCDの\Support\toolsディレクトリから suptools.msi をインストールすることで、SSLが有効にされていることを確認してください。サポートツールをインストールした後に:

  1. スタート -> ファイル名を指定して実行 を選択して、入力フィールドに ldp と入力してください。
  2. ldapウィンドウから 接続 -> 接続 を選択して、有効なホスト名およびポート番号 636 を入力してください。また、SSLチェックボックスをチェックしてください。

正常に設定された場合、接続に関する情報が表示されます。

クライアント再度に関する設定の詳細は、クライアントサイド (Moodleサーバ) でLDAPSを有効にするをご覧ください。

関連情報