外部データベース認証

場所: サイト管理>プラグイン>認証>外部データベース


このメソッドは、外部データベーステーブルを使用して、特定のユーザー名とパスワードが有効かどうかを確認します。ユーザが現在Moodleに存在していない場合、新しいアカウントが作成され、それらの情報が外部データベースからコピーされます。

フィールドマッピング

これは、データベース認証ページの下部にあるフィールドをマッピングすることによって行われます。ユーザープロファイルの各データフィールドには、その横にテキストフィールドがあります。プロファイルデータフィールドにマップする外部データベースの列の名前を入力します。

ローカル更新 - 外部データを問題のローカルフィールドに入力するように指定します。

  • 作成時 - アカウントが初めて作成されたときに、これが元のログインでのみ発生することを指定します。
  • 毎回ログイン - 次回ユーザが再度ログインしたときに、外部のデータの変更が問題のローカルMoodleフィールドで更新されることを指定します。

外部更新 - 反対のことを指定します 。つまり、問題のローカルMoodleフィールドの変更は外部データベースの対応するフィールドを更新します。

  • Never - これを無効にします。
  • 更新時 - ローカルで変更が行われた場合にこれが発生するようにします(おそらく追加の設定が必要です)。

ロック値 - ローカルユーザがMoodleフィールドを変更できるかどうかを決定するだけで、上記の2つの設定には影響しません。

  • ロック解除 - ユーザはMoodleフィールドでローカルに変更を行うことができます(おそらく外部データベースと矛盾する場合でも、Update Localが設定されていれば次回のログインで再び変更されるでしょう)。
  • ロック - ユーザーは変更を加えることはできません
  • 空の場合はロック解除 - フィールドが外部データベースからまだ入力されていない場合にのみユーザーは変更を加えることができます(これはユーザーがこのフィールドに一度だけ入力でき、保存後に変更できなかったことを示します)。

自動同期

上記の方法はログイン時にのみ新規ユーザを追加します。実際のログインとは関係なくユーザアカウントをMoodleで作成したい場合、db認証プラグインは 'cron'を通して定期的に実行できるスクリプトを提供します。典型的なcronエントリは次のようになります...

0 * * * * / usr / bin / php /path/to/moodle/auth/db/cli/sync_users.php> dev / null

これは1時間ごとに実行されます(必要に応じて調整します)。テーブル全体を更新し、ローカルのMoodleユーザを作成します。

注意:これを実行すると、「[AUTH DB]同期ユーザーcronは廃止されました。代わりにスケジュールされたタスクを使用してください。」というエラーが表示されます。スケジュールされたタスクに関する情報はここにあります: [1]

あなたのサイトにカスタムプロフィールフィールドがある場合、これらは外部データベース認証と同期させることができます(外部データベースからMoodleへのカスタムプロフィールフィールドの同期は現在うまくいきません。 [2]をご覧ください)。

その他の注意事項

パスワード形式設定から外部データベース認証でパスワード形式にSalted Cryptパスワードを使用できるようになりました。

dbsaltedcrypt.png


  • プレーンテキストとパスワードの一致は常に大文字と小文字が区別されるようになりました
  • sha1 / md5ハッシュ比較は大文字と小文字を区別しないように強制されるようになりました(基本的にそれらは16進値です)
  • Uploadユーザーに適用されることの一部は外部データベースに適用されますが、 Uploadユーザーのすべてのフィールドが外部データベース認証に使用できるわけではありません。唯一の利用可能なフィールドは、外部データベース接続の管理ページのデータマッピングセクションにリストされているフィールドです。
  • MySQLデータベースでは、moodleは日付カスタムプロファイルフィールドをbigintフィールドに(Unixタイムスタンプとして)格納することに注意してください。タイムスタンプまたは日時フィールドを使用しても機能しません。

関連情報