外部データベース認証
場所:サイト管理 > プラグイン > 認証 > 外部データベース
このメソッドは、外部データベーステーブルを使用して、指定されたユーザ名(varcharである必要があります)とパスワードが有効かどうかを確認します。ユーザが現在Moodleに存在しない場合、新しいアカウントが作成され、その情報が外部データベースからコピーされます。
フィールドマッピング
これは、データベース認証ページの下部にあるフィールドをマッピングすることによって行われます。ユーザプロファイルの各データフィールドの横には、テキストフィールドがあります。プロファイルデータフィールドにマップする外部データベースの列の名前を入力します。
ローカルを更新する - 外部データが問題のローカルフィールドに入力されることを指定します
- 作成時 - アカウントが初めて作成されたときの元のログインでのみこれが発生することを指定します。
- 毎回ログイン時 - ユーザが次に再度ログインしたときに、外部データの変更が問題のローカルMoodleフィールドで更新されることを指定します。
外部を更新する - 正反対を指定します。つまり、問題のローカルMoodleフィールドを変更すると、外部データベースの対応するフィールドが更新されます。
- しない - これが無効であることを指定します
- 更新時 - ローカルで変更が行われた場合にこれを実行できるようにします(おそらく追加の構成が必要です)
ロック値 -ローカルユーザがMoodleフィールドに変更を加えることができるかどうかのみを決定し、上記の2つの設定には影響しません。
- ロックしない - ユーザはMoodleフィールドでローカルに変更を加えることができます(おそらく、外部データベースと矛盾している場合でも、ローカル更新が設定されていると、次回のログインで再度変更されます
- ロックする - ユーザは変更を加えることができません
- 空の場合はロックしない - ユーザは、フィールドが外部データベースからまだ入力されていない場合にのみ変更を加えることができます(これは、ユーザがこのフィールドに何かを入力でき、保存後に変更できなかったことを示しているようです)
自動同期
上記の方法では、最初のログイン時に新しいユーザが追加されます。実際のログインとは関係なくMoodleでユーザアカウントを作成する場合、外部データベース認証プラグインにはタスク ユーザ同期タスク ( \auth_db\task\sync_users )、スケジュールされたタスクページで管理されます。
外部データベースのマップされたフィールドに加えられた変更は、このプラグインの設定で ユーザの更新 が有効になっていて、マップされたフィールドの ローカルを更新する 設定が 毎回ログイン時 に設定されている場合、タスクによって同期されます。
このプラグインの 削除された外部ユーザ 設定は、タスクの実行時にユーザが外部データベースに表示されなくなった場合にMoodleが実行するアクションを制御します。
サイトにカスタムプロファイルフィールドがある場合、これらは外部データベース認証と同期できます。
追記
パスワード形式の設定から、外部データベース認証を使用してパスワード形式にSalted Cryptパスワードを使用できるようになりました。
- プレーンテキストのパスワードマッチングでは、常に大文字と小文字が区別されるようになりました
- sha1/md5ハッシュ比較では、大文字と小文字が区別されないようになりました(基になるのは16進値であるため)
※ユーザのアップロードに適用されるものの一部は外部データベースに適用されますが、ユーザのアップロードのすべてのフィールドが外部データベースの認証に使用できるわけではありません。使用可能なフィールドは、外部データベース接続の管理ページのデータマッピングセクションにリストされているフィールドのみです。
- MySQLデータベースの場合、moodleは日付カスタムプロファイルフィールドをbigintフィールドに(UNIXタイムスタンプとして)保存することに注意してください。タイムスタンプまたは日時フィールドの使用は機能しません