ezproxyの設定

筑波大学附属図書館のezproxy設定メモです.筑波大ではezproxyを

  • proxy by hostname
  • shibboleth認証

で運用しているので,それらに関する設定を中心に記録します.

関連する情報源

使用/構築環境

かかったコスト

ezproxy紀伊国屋から購入¥131250
サーバ検証用の既存サーバを使用¥0
SSL証明書GeoTrust?のRapidSSL Wildcard 12ヶ月¥18730
SSL証明書同 Rapid SSL 12ヶ月¥2820

Proxy by Hostnameによるezproxyの設定

前提:筑波大学附属図書館のサブドメイン(tulips.tsukuba.ac.jp)内にezproxyというホスト名でezproxyのサーバを立ち上げる.

1. DNSの設定

ドメイン(tulips.tsukuba.ac.jp)のDNS管理者に依頼して,ネームサーバに登録してもらう.我々は後述のようにproxy by hostを使うので以下のようにDNSワイルドカードの設定が必要.proxy by portの場合は二行目は不要.

   ezproxy.tulips.tsukuba.ac.jp.   IN A 192.168.0.1
   *.ezproxy.tulips.tsukuba.ac.jp. IN A 192.168.0.1

2. SSL証明書の用意

httpsで接続するデータベースや電子ジャーナルを中継するためにSSL証明書を調達する.我々はproxy by hostなのでワイルドカード証明書

   *.ezproxy.tulips.tsukuba.ac.jp

を購入.proxy by portならezproxy.tulips.tsukuba.ac.jpという普通のSSL証明書を購入すれば良い.

3. サーバ名の設定

/usr/local/ezproxy/config.txtを編集して,サーバ名を設定する.記述がないとOSの認識するホスト名が自動設定されるが,普通は実ホスト名ではなくcanonical nameを使うだろう.http://www.oclc.org/support/documentation/ezproxy/cfg/name/

   Name     ezproxy.tulips.tsukuba.ac.jp

4. 管理者アカウントの設定

/usr/local/ezproxy/user.txtを編集して,ezproxy固有のローカルアカウントを設定する.我々の場合は全ユーザをShibboleth認証するが,管理者アカウントとテスト用アカウントをローカルに作成した.http://www.oclc.org/support/documentation/ezproxy/usr/

   testuser:testpass
   adminuser:adminpass:admin

5. Proxy by Hostname

ezproxyはポート番号で中継先を振り分ける方法(proxy by port)とホスト名で振り分ける方法(proxy by hostname)の二つの方法を用意しており,前者が既定.でも,筑波大ではproxy by hostで運用することにした.config.txtに以下の一行を追加する.http://www.oclc.org/support/documentation/ezproxy/cfg/proxybyhostname.htm

   Option ProxyByHostname

6. ポート番号の変更

ezproxyの既定のポート番号は2048番だが,Proxy by Hostnameを使うと変なポート番号である必然性がなくなるので80番に変更する.また,httpsも有効にして,ポート番号を443番に指定する.config.txtに

   LoginPort     80
   LoginPortSSL 443

ezproxyをrestartしてmessage.txtに

   2009-11-27 11:07:41 Server http URL http://ezproxy.tulips.tsukuba.ac.jp
   2009-11-27 11:07:41 Server https URL https://login.ezproxy.tulips.tsukuba.ac.jp

のように表示されることを確認する(特にhttpsでのサーバ名が「login.ezproxy」になっていること).*.ezproxy.tulipsのワイルドカード証明書はezproxy.tulipsの証明書にならないので,httpsアクセス時に警告を表示させないため,自動でこのように設定される.もし,loginが付与されないとすると,config.txt中にIgnoreWildcardCertificate?というオプション指定をしているはずで,これをコメントアウトする(http://www.oclc.org/support/documentation/ezproxy/changes.htm )あるいは,ActiveなSSL証明書がワイルドカード証明書ではない.

7. 書き換えルールの変更

proxy by hostnameの際,http://db.example.comへのアクセスは,http://db.example.com.ezproxy.tulips.tsukuba.ac.jpに自動的に書き換えられる. しかし,*.ezproxyのワイルドカード証明書ではdb.example.com.ezproxyの証明はできないので,db-example-com.ezproxyのようにハイフンで置き換えるための設定を行う.config.txtのDB定義部よりも前に以下の一行を記載.

   Option HttpsHyphens

8. メニュー画面の変更

urlを指定しないEZproxyへのアクセスに対して,既定ではdocs/menu.htmが表示される.menu.htmのひな形は,埋め込まれた変数でデータベースの一覧が自動生成されるようになっている.詳しくは,http://www.oclc.org/support/documentation/ezproxy/docs/

menu.htmでなく別のページを表示するにはconfig.txt内でLoginMenu?を指定する.http://www.oclc.org/support/documentation/ezproxy/cfg/loginmenu/

   LoginMenu http://www.tulips.tsukuba.ac.jp.ezproxy.tulips.tsukuba.ac.jp/

Shibbolethによる認証の設定

ezproxy+shibbolethの設定2

DBの設定

すべてOCLCかUnofficial EZproxy Self-Support Wikiに設定情報があった.

その他もろもろ

Opera 10.10以前との互換性

Operaが厳格なCookie管理をしているため正常に動作しない障害が発覚.Operaの同一ドメイン判定ルールに適合させるため,DNSサーバ上でtulips.tsukuba.ac.jpにAレコードを設定.see http://ls.suny.edu/read/messages?id=933283#933283