ApacheのレイヤーでGoogle Apps認証かけちゃうというもの。
mod_auth_memcookieというモジュールとphpを使ってる。
まずapt関係で必要なものをゲット。
apt-get install memcached php5-memcache次に、mod_auth_memcookieをビルド。
apt-get install apache2-prefork-dev libmemcache-dev
http://sourceforge.net/projects/authmemcookie/files/
からソースをDLし展開。
tar zf mod_authmemcookie_v1.0.2.tar.gzubuntuの場合apxs2のインストールパスが違うので、Makefileを修正。
cd mod_authmemcookie_v1.0.2
MY_APXS=/usr/sbin/apxs2ビルド&インストール。
↓
MY_APXS=/usr/bin/apxs2
makeapacheのロードスクリプトを書く。
sudo make install
/etc/apache2/mods-available/auth_memcookie.load
#一行で書く有効化。
LoadModule mod_auth_memcookie_module /usr/lib/apache2/modules/mod_auth_memcookie.so
sudo a2enmod auth_memcookie
引き続き、phpなどの設定。
/var/www/auth ディレクトリを認証モジュール用に使い、
その他サイト全体を認証の対象とすることにする。
https://github.com/epotocko/apache-google-apps-sso
の中のsrc/public直下のphpファイルと、src/GAppsディレクトリ自体を
/var/www/auth/下にコピー。
git clone https://github.com/epotocko/apache-google-apps-sso.git次にphp-openid。
cd apache-google-apps-sso/src
sudo mkdir /var/www/auth
sudo cp -rf GApps /var/www/auth/
sudo cp -rf public/* /var/www/auth/.
12.04ならばaptで入れたものでもOKだった。
apt-get install php-openid10.04だとバージョンが古くてうまく動かなかったので、公式から落としてきて
その中のAuthディレクトリを/var/www/auth/以下にコピーする。
git clone https://github.com/openid/php-openid.gitここから下は https://github.com/epotocko/apache-google-apps-sso の
cp -rf php-openid/Auth /var/www/auth/
公式の情報と基本的に同じ。
/var/www/auth/settings.phpファイルを更新。
コメントアウトされていない二行を編集。
GApps_Session::$BASE_URL = 'http://【ホスト名】/auth/'; //動かすホスト名apacheの設定を書き足す。
GApps_Session::$DOMAIN_NAME = '【Google Appsドメイン名】';
default編集するなり、別ファイル作ってVirtualHostに入れるなり。
<IfModule mod_auth_memcookie.c>apache再起動。
<Location />
Auth_memCookie_CookieName GOOG_SESSIONID
Auth_memCookie_Memcached_AddrPort 127.0.0.1:11211
ErrorDocument 401 "/auth/login.php"
Auth_memCookie_Authoritative on
AuthType Cookie
AuthName "GApps Login"
</Location>
</IfModule>
<LocationMatch "^/(?!auth)">
Require valid-user
</LocationMatch>
sudo /etc/init.d/apache restart
0 件のコメント:
コメントを投稿