2012年6月14日木曜日

ubuntuにapache-google-apps-ssoをインストール

https://github.com/epotocko/apache-google-apps-sso
ApacheのレイヤーでGoogle Apps認証かけちゃうというもの。
mod_auth_memcookieというモジュールとphpを使ってる。

まずapt関係で必要なものをゲット。
apt-get install memcached php5-memcache
apt-get install apache2-prefork-dev libmemcache-dev
次に、mod_auth_memcookieをビルド。
http://sourceforge.net/projects/authmemcookie/files/
からソースをDLし展開。
tar zf mod_authmemcookie_v1.0.2.tar.gz
cd mod_authmemcookie_v1.0.2
ubuntuの場合apxs2のインストールパスが違うので、Makefileを修正。
MY_APXS=/usr/sbin/apxs2
        ↓
MY_APXS=/usr/bin/apxs2
ビルド&インストール。
make
sudo make install
apacheのロードスクリプトを書く。
/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
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/.
次にphp-openid。
12.04ならばaptで入れたものでもOKだった。
apt-get install php-openid
10.04だとバージョンが古くてうまく動かなかったので、公式から落としてきて
その中のAuthディレクトリを/var/www/auth/以下にコピーする。
git clone https://github.com/openid/php-openid.git
cp -rf php-openid/Auth /var/www/auth/
ここから下は https://github.com/epotocko/apache-google-apps-sso
公式の情報と基本的に同じ。

/var/www/auth/settings.phpファイルを更新。
コメントアウトされていない二行を編集。
GApps_Session::$BASE_URL = 'http://【ホスト名】/auth/'; //動かすホスト名
GApps_Session::$DOMAIN_NAME = '【Google Appsドメイン名】';
apacheの設定を書き足す。
default編集するなり、別ファイル作ってVirtualHostに入れるなり。
<IfModule mod_auth_memcookie.c>
    <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>
apache再起動。
sudo /etc/init.d/apache restart

0 件のコメント:

コメントを投稿