お世話になっております。
現在、Moodle 3.5上の特定のユーザーアカウントのみIP制限することを考えております。
受講者はインターネット上のどこからでもアクセスでき、管理者や教師は特定のIPアドレスからのみアクセスできるような実装です。
そのような実装はMoodle上で可能でしょうか?
可能な場合、どのような実装になりますでしょうか?
ご教示のほど、よろしくお願いいたします。
認証プラグインタイプ「手動アカウント」でログインできるユーザに対してのみでしたら、下記Authentication by IPプラグインを使って指定したIPアドレスで特定のユーザのログインを制限することができます。
[oodle Plugins directory: Authentication by IP]
https://moodle.org/plugins/auth_ip
Moodle 3.5.3+ (Build: 20181123) にAuthentication by IPプラグインの動作を確認しましたところ、問題なく動作するようです。
ご返信ありがとうございます。
Authentication by IPプラグインを利用してみたところ、インストールまでは行うことができました。
しかし、下記手順でログインを行うことができませんでした。
その他に必要な設定等はございますでしょうか。
①「サイト管理」→「プラグイン」→「認証」→「IP認証」より、ログインするIPアドレスを指定する。
②テスト用ユーザの認証方法を「IP認証」に設定する。
③ログインページより、テスト用ユーザのIDとパスワードを入力する。
④「不正なログインです、再度ログインしてください。」と表示され、ログインに失敗する。
テスト用ユーザの認証方法を「手動アカウント」にした場合は、IDとパスワードでログインすることができました。
以上です。
よろしくお願いいたします。
お世話になっております。
Authentication by IPプラグイン利用時にテスト用ユーザでログインできない問題ですが、下記の方法により自己解決しました。
①下記URLの、「Modify Application 1) ~ 5)」の通りに設定を行う。(今回、AWSのALBを利用していました。)
https://medium.com/tensult/application-load-balancer-with-ssl-ab39d41d63c5
②一つ前の返信の①~③の通りに設定を行う。
以上です。
ありがとうございました。
貴重な情報を頂きまして、ありがとうございます。
AWS (Amazon Web Services) のロードバランサELB (Elastic Load Balancing) を使用している場合、下記設定が必要なのですね。
[AWS Application Load Balancer with SSL – Tensult Blogs – Medium]
https://medium.com/tensult/application-load-balancer-with-ssl-ab39d41d63c5
Modify Application
The steps added below are applicable to any Apache based application. I have considered Moodle as the application here.
1) In the moodle directory create a .htaccess to accommodate http re-write rules.
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]
2) Edit moodle/config.php to replace http with https
$CFG->wwwroot = ‘https://www.yourdomain.com';
3) To have load balancer support add the line below to moodle/config.php
$CFG->sslproxy = 1
4) Restart the web service.
5) Access the moodle web site from your web browser and test it.
UPDATE: AWS recently added redirection feature to Application Load balancer so now we can directly use ALB to redirect the web request from HTTP to HTTPS.
お世話になっております。
もともとの問題であったIPアドレス制限とは別の話題となってしまいますが、以下のような状況でした。
・インターネットからELBへの通信にはHTTPS、ELBからMoodleサーバへの通信はHTTPで行う
・ELBには、外部DNSから[moodle.test.com]のようなサブドメインのCNAMEを張っている
→上記の状態でインターネットからELBにアクセスした場合、wwwrootの設定によって問題が発生する。
・wwwroot = http://[MoodleサーバのIPアドレス] →Moodleへ接続できるが、ブラウザのアドレスバーにIPアドレスが表示されてしまう。
・wwwroot = https://[MoodleサーバのIPアドレス] →Moodleに接続できない
・wwwroot = http://[moodle.test.com] →Moodleに接続できるが、ELBにHTTPの通信許可設定が必要。(直接HTTPで接続できてしまうため、HTTPSを利用する意味がなくなる)
・wwwroot = https://[moodle.test.com] →リダイレクトループが発生する。
最終的には、URLの通りの設定を行うことで、IPアドレス制限、wwwrootの問題がともに解決いたしました。
以上です。