<やりたいこと>
nginx でBASIC認証をしたいが、認証情報は redmine のアカウント情報(MySQL)をソースとしたい。
<背景>
redmine を導入したプロジェクト管理サーバに jenkins も導入。
jenkins の管理画面や ant により生成した javadoc やテストレポートなどの静的なファイルもプロジェクト管理サーバで閲覧できるようにしたい。
当然、これらのファイルにも認証をかけたいが、アカウント情報はredmineのものを使いたい。
public にこれらのドキュメントを配置しても良いが、静的なコンテンツのために rails のリソースを使うのはもったいないので、これらは nginx で直接返すようにしたい。
<Apacheの場合>
mod_auth_mysql を以下のように設定すればよいらしい
Auth_MySQL On Auth_MySQL_Socket /var/run/mysqld/mysqld.sock Auth_MySQL_Host localhost Auth_MySQL_User [redmineのデータベースユーザ名] Auth_MySQL_Password [redmineのデータベースパスワード] Auth_MySQL_DB [redmineのデータベース名] Auth_MySQL_Password_Table users Auth_MySQL_Username_Field login Auth_MySQL_Password_Field hashed_password Auth_MySQL_Encryption_Types SHA1Sum Auth_MySQL_Empty_Passwords Off AuthType Basic AuthName "Authorization Realm" Require valid-user
<NGINXの場合>
nginx には mod_auth_mysql はない。
替わりに mod_auth_pam と pam_mysql を使えばいけそう。
http://web.iti.upv.es/~sto/nginx/
http://pam-mysql.sourceforge.net/
0 件のコメント:
コメントを投稿