録画予約画面でユーザー認証

外部から録画予約画面が見え、録画予約や削除などができるのは非常に便利だが MythTV には録画予約画面にユーザー認証機能は無い(と思う。)。それでは非常に危険だ。アドレスさえ分かれば誰でも録画予約ができてしまうし MythWeb のページでできる事が誰にでも全部可能になる。
そこで、apache の機能を使ってユーザー認証をする事にした。
apache のユーザー認証には Basic認証と Digest認証の2つがあるそうだ。Basic認証は、パスワードが平文でネットワークを流れるらしい。Digest認証は暗号化されて流れるらしいので、Digest認証を使う事にしよう。

  • ユーザー認証によりアクセスに制限をかけるディレクトリの確認

Fedora では、デフォルトでドキュメントルートが /var/www/html/ になっているので、今回アクセス制限をかけるのは /var/www/html/mythweb となる。

apache の設定ファイル /etc/httpd/conf/httpd.conf に以下を記述

<Directory "/var/www/html/mythweb">
    AuthType Digest
    AuthName "User Only"
    AuthDigestDomain /mythweb/
    AuthDigestFile /etc/httpd/.htdigest
    Require user myuser01
</Directory>

上記の User Only は認証ダイアログに現れる文字列なのでなんでも良い。Member Only とか MythWeb 等でも良い。
myuser01 はアクセスする際のユーザー名、/etc/httpd/.htdigest はパスワードファイル。を指定している。

  • htdigest コマンドでユーザー myyser01 myuser01 とパスワードを設定する。
# htdigest -c /etc/httpd/.htdigest "User Only" myuser01
Adding password for myuser01 in realm User Only.
New password:
Re-type new password:

これで、/etc/httpd/.htdigest が生成される。初回のみ -c オプションが必要。

  • httpd を再起動する。
# /etc/rc.d/init.d/httpd restart
  • Web ブラウザで外部からアクセス

Firefox 等で、http://hoge.hage/mythweb にアクセスすると下図のように ID と Password を求めるダイアログがでて来る。