Moodle(Windows サーバ)とAD連携について

Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿
返信数: 18

Mitsuhiro Yoshida様

「Moodleのサービスの再起動」「他の設定の変更」ともに不要とのことで承知致しました。

おそらく、認証のLDAPの設定で誤っているところがあると思われます。

担当者に設定項目を確認しなおしてみようと思います。

ありがとうございました。

Yuka Yoshi への返信

Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿

いつもお世話になっております。3か月前からいろいろと調べているのですが、まだ解決しておりません。

「LDAPサーバ設定」の「ホストURL」がどうやら誤っているようです。

ADサーバは、Windowsサーバです。ldap://ldap.xxxx.local ※xxxx.localは、会社のドメイン名です。

「LDAPプロトコルのバージョン」を2にしても3にしても下記のメッセージが表示されます。

「LDAPページ化結果はサポートされていません (あなたのPHPバージョンがサポートしていないか、MoodleがLDAPプロトコルバージョン2を使用するよう設定されているか、ページサポートを利用できるか確認するためにMoodleがLDAPサーバに接続できません)。 」と表示される。

試しに、ldap://xxxxAD01.towa.local を指定したら、上記のメッセージは表示されないのですが、自分のADアカウントでログインしようとすると「Internal Error」と表示されます。

xxxxAD01.towa.localは、会社のADサーバ名です。nslookup 172.16.1.xxで検索すると表示されたものになります。

「LDAPサーバ設定」の「ホストURL」は、どのように調べればよいですか?また「LDAPプロトコルのバージョン」を調べる方法を教えて頂けませんでしょうか。


Yuka Yoshi への返信

Re: Moodle(Windows サーバ)とAD連携について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> 「LDAPサーバ設定」の「ホストURL」は、どのように調べればよいですか?

以下のコマンドで取得できませんでしょうか。

nslookup -type=srv _ldap._tcp.DOMAINNAME

参考資料:
[domain name system - How can I find the LDAP server in the DNS on Windows? - Server Fault]
https://serverfault.com/questions/153526/how-can-i-find-the-ldap-server-in-the-dns-on-windows

> また「LDAPプロトコルのバージョン」を調べる方法を教えて頂けませんでしょうか。

Windows PowerShellで以下のコマンドを実行して確認できるようです。

Get-ADRootDSE -Server domainfqdn

参考資料:
[How to check LDAP version on domain controller - Microsoft TechNet]
https://social.technet.microsoft.com/Forums/en-US/26fc6136-074c-45b0-91a7-2b5fc85ec683/how-to-check-ldap-version-on-domain-controller?forum=winserverDS

Mitsuhiro Yoshida への返信

Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿

Mitsuhiro Yoshida様

ご回答ありがとうございます。

教えて頂いた情報で、「LDAPサーバ設定」の「ホストURL」と「LDAPプロトコルのバージョン」を知ることができました。

Moodleのエラーメッセージが下記のように変わりました。

↓↓

「この方法では外部のLDAPサーバに対して認証を提供します。ユーザ名およびパスワードが正しい場合、Moodleは新しいユーザをデータベースに作成します。このモジュールはユーザ属性をLDAPから取得して、Moodleのフィールドに入力します。認証後のログインではユーザ名およびパスワードのみ確認されます。」

しかし、まだADアカウントユーザでログインしようとすると、「不正なログインです。再度ログインしてください。」と表示されます。

バインドの設定とユーザルックアップ設定の内容が不足しているのでしょうか?

何度も申し訳ございません。

以上、よろしくお願い致します。

Yuka Yoshi への返信

Re: Moodle(Windows サーバ)とAD連携について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

よろしければ、以下の設定例を参考に現在の設定内容を再度ご確認ください。

■ LDAPサーバ設定
ホストURL:
ldap://123.123.123.123/

バージョン:
3

TLSを使用する:
No

LDAPエンコーディング:
utf-8

ページサイズ:
250

■ バインド設定
パスワードをキャッシュしない:
Yes

識別名:
cn=replica,dc=moodle,dc=our-company,dc=co,dc=jp

パスワード:
6~HA\e3C}w

■ ユーザルックアップ設定
ユーザタイプ:
postfixAccount (rfc2307)

コンテクスト:
ou=users,dc=moodle,dc=our-company,dc=co,dc=jp

サブコンテクストを検索する:
No

エイリアスの修飾参照:
No

■ パスワード変更を強制する
パスワード変更を強制する:
No

パスワード変更に標準ページを使用する:
No

パスワードフォーマット:
プレインテキスト

パスワード変更URL:
http://www.our-company.co.jp/password.html

■ データマッピング
名 = givenName
姓 = sn
メールアドレス = mail
所属 = description
Mitsuhiro Yoshida への返信

Re: Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿

Mitsuhiro Yoshida様

ご回答ありがとうございます。

ADは、Windowsサーバのため、MS Active Directoryを指定しています。

ユーザが入っているouの名前に漢字が入っていたりするのでダメなのでしょうか?


下記のように設定しましたが、「不正なログインです。再度ログインしてください。」と表示されてしまいます。

試しに■ LDAPサーバ設定をcp1252、cp1250に変えてみましたが同じメッセージが表示されてしまいます。

☆設定

ホストURL: XXXX-AD01.xxxx.local

※XXXX, xxxxは弊社会社名が入っています。

バージョン: 3

TLSを使用する: No

LDAPエンコーディング: utf-8

ページサイズ: 250

■ バインド設定

パスワードをキャッシュしない: Yes

識別名: CN=Administrator,CN=Users,DC=xxxx,DC=local

※xxxxは弊社会社名が入っています。

パスワード:

※ADサーバの管理者アカウントのパスワードを指定

■ ユーザルックアップ設定 ユーザタイプ: MS ActiveDirectory

コンテクスト: ou=users,ou=情報システム部,ou=towa,ou=xxxxgroup,dc=xxxx,dc=local

※xxxxは弊社会社名が入っています。

サブコンテクストを検索する: No

エイリアスの修飾参照: No

■ パスワード変更を強制する

パスワード変更を強制する: No

パスワード変更に標準ページを使用する: No

パスワードフォーマット: プレインテキスト

パスワード変更URL: ※空欄のまま

■ データマッピング

名 = givenName

姓 = sn メールアドレス = mail

所属 = description

添付 部署.JPG
Yuka Yoshi への返信

Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> ユーザが入っているouの名前に漢字が入っていたりするのでダメなのでしょうか?

全く問題がないとは明言できませんが、恐らく、大丈夫だと思います。

参考資料:
[日本語のオブジェクト名 - Microsoft TechNET]
https://social.technet.microsoft.com/Forums/windowsserver/ja-JP/247eaef3-7f93-4929-9805-388da7d70ae6/2608526412354861239812458125021247212455124631248821517?forum=activedirectoryja

[Active Directoryのオブジェクト名に日本語を使うか? - 徒然なるままに]
http://norimaki2000.blog48.fc2.com/blog-entry-346.html


すでにご覧になったかもしれませんが、念のため、udagawa mitsuruさんの下記投稿をご覧ください。今回の問題解決のヒントになるかと思います。

[Japanese Moodle: ActiveDirectoryと上手く連携出来ず、ログイン出来ません。]
https://moodle.org/mod/forum/discuss.php?d=317964#p1275373

Mitsuhiro Yoshida への返信

Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿

Mitsuhiro Yoshida様

ご回答ありがとうございます。

「管理 > サイト管理 > プラグイン > 認証 > LDAPサーバ」ページの「ユーザルックアップ設定」セクション内にある「ユーザ属性」に「sAMAccountName」を入れることで ユーザログオン名でログインできるようになりました。

>サイト管理>>拡張機能>>プラグイン>>認証>>認証管理 >の共通設定の「ユーザ認証時のアカウント作成を抑制する」の

>チェックを外すことでログイン出来るようになりました。

>

ここの設定は、元からチェックが外れておりました。 追加の質問があります。 何度も本当に申し訳御座いません。

「所属組織 」の情報をADから引っ張ってきたいのですが、パラメータは、「institution」では無理なのでしょうか? 試しに入れたのですが、所属組織が空欄のままでした。 ※ADで言うところの「会社名」をMoodleの「所属組織」に入れたいと考えています。

以上、ご確認よろしくお願い致します。

Yuka Yoshi への返信

Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> 「所属組織 」の情報をADから引っ張ってきたいのですが、パラメータは、「institution」では無理なのでしょうか?

もしかしたら、「company」または「department」ではないでしょうか。

Mitsuhiro Yoshida への返信

Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿
Mitsuhiro Yoshida様

ご回答ありがとうございます。

「company」で情報をひっぱってくることが出来ました。

これで、AD連携がうまく本番機でも実現できそうです。

大変助かりました。ありがとうございました。
Yuka Yoshi への返信

Re: Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
おめでとうございます。
Mitsuhiro Yoshida への返信

Re: Re: Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿
Mitsuhiro Yoshida様

問題を解決頂いたのに引続きの質問で申しわけございません。

AD認証のアカウントについて質問があります。

AD認証のアカウントは、各ユーザがログインするまではMoodleのサーバ上にアカウントは作成されないのでしょうか?

(質問の意図)
社員が600名近くいているのですが、その社員のアカウントに対して、教育コースを事前に割当たいと思っています。
600名近くいてるので、なかなかテストログインという話をしたところで全員が対応をしてもらうことは難しいです。
事前にAD認証アカウントをMoodleに作成する方法がないか知りたいです。

以上、ご確認よろしくお願い致します。
Yuka Yoshi への返信

Re: Re: Re: Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> AD認証のアカウントは、各ユーザがログインするまではMoodleのサーバ上にアカウントは作成されないのでしょうか?

はい、そうです。
認証方法を指定したCSVファイルを使ってユーザを一括アップロードすることは可能です。

よろしければ、テスト環境で下記手順をお試しください。

  1. サイト管理者としてMoodleにログインする。
  2. 「管理 > サイト管理 > ユーザ > アカウント > ユーザをアップロードする」に移動する。
  3. 「ファイル」エリアにユーザ情報を記述したCSVファイル※1をドラッグ&ドロップする。
  4. 「ユーザをアップロードする」ボタンをクリックする。
  5. 再度「ユーザをアップロードする」ボタンをクリックする。

※1 ユーザアップロード用CSVファイルの記述例:
username,auth,firstname,lastname,email,lang,course1
ldap001,ldap,first001,last001,ldap001@moodle.org,ja,TD001
ldap002,ldap,first002,last002,ldap002@moodle.org,ja,TD001
ldap003,ldap,first003,last003,ldap003@moodle.org,ja,TD001
ldap004,ldap,first004,last004,ldap004@moodle.org,ja,TD001
ldap005,ldap,first005,last005,ldap005@moodle.org,ja,TD001

Mitsuhiro Yoshida への返信

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿
Hiroyuki H様、Mitsuhiro Yoshida様

早速のご回答ありがとうございます。

認証方法を指定したcsvファイルでユーザ登録したあとに、ADアカウントでMoodleにログイン出来ることが確認できました。 追加で質問があります。

ユーザアカウントで同じメールアドレスを使用出来ないようになっていると思われます。

現行のシステムには、既に手動で登録されたユーザアカウントが登録されており、Eメールアドレスも登録しています。
新たにADアカウントを追加しようとした場合、既に登録済みのEメールアドレスとなり、登録をはじかれてしまいます。

Eメールアドレスが重複しても問題ないような設定はありますでしょうか。

以上、ご確認よろしくお願い致します。
添付 moodle question.png
Yuka Yoshi への返信

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

認証方法のみを記述したCSVファイルを作成して、既存のユーザの認証方法をLDAPに一括変更されてはいかがでしょうか。

CSVファイルを使用したユーザの認証方法変更手順は以下のとおりです。

  1. サイト管理者としてMoodleにログインする。
  2. 「管理 > サイト管理 > ユーザ > アカウント > ユーザをアップロードする」に移動する。
  3. 「ファイル」エリアにユーザ認証方法変更用CSVファイル※1をドラッグ&ドロップする。
  4. 「設定」セクションの「アップロードタイプ」プルダウンメニューで「既存のユーザのみ更新する」を選択する。
  5. 「設定」セクションの「既存のユーザ詳細」プルダウンメニューで「ファイルでオーバーライドする」を選択する。
  6. 「ユーザをアップロードする」ボタンをクリックする。
  7. 再度「ユーザをアップロードする」ボタンをクリックする。

※1 ユーザ認証方法変更用CSVファイルの記述例:
username,auth
user001,ldap
user002,ldap
user003,ldap

Mitsuhiro Yoshida への返信

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿

Mitsuhiro Yoshida様

ご回答ありがとうございます。

ご回答頂いたのに申し訳ございません。

弊社には社員に対して2種類の社員番号があります。 "数字6桁"と"アルファ2文字+数字6桁"です。既存の手動は、"数字6桁"で手動登録されていますが、これから登録しようとしているADアカウントは、"アルファ2文字+数字6桁"の方になります。ADサーバと"数字6桁"は何の関係もないため、Yoshida様に教えて頂いた方法は難しい状況です。

既存のアカウントのEメールを全て適当なユニークなものに置き換えて登録したら、問題無いでしょうか?

以上、ご確認よろしくお願い致します。

Yuka Yoshi への返信

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> 既存のアカウントのEメールを全て適当なユニークなものに置き換えて登録したら、問題無いでしょうか?

フォーラム投稿等のメール通知がユーザに到着しないようになる以外、問題はありません。

もし、SQLを実行できる環境をお持ちでしたら、既存の全ユーザアカウントに対して以下のようなSQL文を実行することも可能かと思います。

例)

UPDATE `mdl_user` SET username = 'ab123450', auth = 'ldap' WHERE username = '123450';
UPDATE `mdl_user` SET username = 'ab123451', auth = 'ldap' WHERE username = '123451';
UPDATE `mdl_user` SET username = 'ab123452', auth = 'ldap' WHERE username = '123452';
Mitsuhiro Yoshida への返信

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Moodle(Windows サーバ)とAD連携について

- Yuka Yoshi の投稿
Mitsuhiro Yoshida様

SQL環境はありませんでしたが、メールアドレスをdummyのものを使用することで、無事本番環境の方もAD連携が出来ました。
本当に助かりました。ありがとうございます。