macでelFinderを使ってみる – 2 – Basic認証を組み込む

Basic認証機能の追加ファイルをダウンロードする

elFinder<http://elfinder.org/>のサンプルページに「Basic認証サンプル」というフォルダがあります。
ユーザアカウントとパスワードによるサイトへのアクセス制限ができるのでしょうか?
「Basic認証サンプル」フォルダの中の‘BasicAuthExampleAddon.zip’ファイルをダンロードしてみました。

プレースホルダとなる‘elfinder.basicauth.html’とそれに対応する‘main.basicauth.js’、Javascriptファイルの‘elfinderBasicAuth.js’、phpファイルの‘connector.basicauth.php’という4つのファイルを追加することで「Basic認証」機能が動作するようです。

書き換えるべきファイルと箇所

書き換えるべきものは、ユーザアカウントとパスワード設定の箇所と、取り扱うファイルのタイプ制限の指定箇所くらいでしょう。調べてみると、‘connector.basicauth.php’というphpファイルを書き換えるだけで済むようです。

‘admin’と‘user1’のそれぞれをパスワードと合わせて適当に書き換えて、MIMEタイプの指定の箇所では「’uploadAllow’ => array(‘image’, ‘text/plain’),」の行を「’uploadAllow’ => array(‘all’),」に変更しました。

配置

4つのファイルは、‘elfinder.basicauth.html’とそれに対応する‘main.basicauth.js’を(httpルート以下の)‘elfinder.html’のあるディレクトリに置き、‘elfinderBasicAuth.js’、‘connector.basicauth.php’はそれぞれ対応するサブディレクトリに追加します。
ファイルアクセスは、‘http://hostname/elFinder-2.1.22/elfinder.basicauth.html’となります。

以上で、さしたるカスタマイズをするのでもなく使用するのであれば動作するわけですから、elFinderはよく練れたパッケージだと思います。

アクセスしてみる

‘http://hostname/elFinder-2.1.22/elfinder.basicauth.html’へアクセスしてみました。

 

図のように、ログイン画面が出るわけでもなくウィンドウが開いてしまいました。
「えっ!」ログインダイアログが出ないんだっけ? と一瞬固まってしまいましたが、よくよく見るとペイン内のアイコン全てに「鍵アイコン」がついています。

結論から言うと、elFinderのBasic認証オプションとは、ディレクトリ/ファイルへの「read」オンリーと「read/wright」との切り替えをBasic認証によるログイン/ログアウトで切り替えるということでディレクトリ/ファイルへのアクセス制限を行うというもののようです。
つまり、最初の‘elfinder.basicauth.html’へのアクセスでは、ログインしていない(読み出しのみ可能な)状態でページが開き、ツールバー内の”ログインボタン”からログインすると「書き込み可能」なモードに切り替わることになります。

図は、ログイン前とログイン後のファイルに対するコンテキストメニューを比較したものです。
つまり、読み出し(ダウンロードも)だけのアクセス制限をかける場合は‘elfinder.basicauth.html’を使い、‘elfinder.html’を使う場合は読み書き可能なモードでのアクセスとなるということです。
考えてみると、‘elfinder.basicauth.html’ -> ‘connector.basicauth.php’ -> `$_SERVER[‘PHP_AUTH_USER’]` and `$_SERVER[‘PHP_AUTH_PW’]`の呼び出しというステップですから、まあこうなるしかないでしょうね。
サイトそのものへのアクセス制限は、別途にWebサーバーサイドのレベルで「.htaccess」などによるコントロールが必要となるようです。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中