私はmoodle LMS
3 つの異なる国 (例: インド、アメリカ、Eurppe) にいます。これらのサイトには、個別の管理者がいます。私がメインの管理者で、1 回のログインですべての Web サイトを管理できるようにしたいとします。
インドの LMSにログインして でAmerica LMSを選択するとDROP DOWN
、セッションはAmerica LMSに転送され ます。これに対する解決策はありますか?
最初の大きな障壁として、Cookie ドメインの制限に遭遇します。基本的に、ログイン Cookie (セッションが機能するために必要) を、それを発行したドメイン以外のドメインから読み取ることはできません。eu-bar.com。
これを回避する最も簡単な方法は、別のログイン フォームを使用することです。送信時に、JavaScript を使用して非表示の iFrame を 3 つのサイトすべてのログイン ページに開き、ユーザー名とパスワードをGET
パラメーターで渡します。Moodle は、で送信されるログイン資格情報をネイティブにサポートしていない可能性がありますGET
。ログイン スクリプトの編集が必要になる場合があります。
ただし、これを Moodle で行うことについてのフォーラム スレッドがあります。運がいいかもしれません。
しかし、いずれにせよ、このようなログイン多重化ハックが機能するには、3 つのサイト間で管理者のユーザー名とパスワードを一定に保つ必要があります。トリガーがすべて同じデータベースから実行されている場合は、トリガーを使用してデータベースでこれを強制できます。それ以外の場合は、パスワード変更スクリプトを変更して、それらの変更をリモート データベースに書き込む必要があります。
これは重大な事業ですか?すこし。残念ながら、これは非常に堅牢なソリューションではなく、更新などに関しては非常に壊れやすい可能性があります. 特に、これらのハックがサイトのメイン ログインに簡単に埋め込まれず、同様のアドホック同期を使用してログを記録する必要があることを考えると、個別にログインすることが最善の選択であることに気付くかもしれません。アウトもネットワーク上で行われます。
サイトが同じドメインのサブドメインである場合は、これを読むことを検討する必要があります: サブドメイン間の PHP セッション
メインドメインとすべてのサブドメインに Cookie を設定します。したがって、 us.foo.comからもeu.foo.comからも同じ Cookie を読み取ることができます。
さらに、一意のユーザー データベースまたは複数の同期化されたユーザー データベースが必要です (とにかく最初のオプションをお勧めします)。