Shibboleth-IdP冗長化環境構築手順書(memcached編)
2011年12月26日
国立情報学研究所
- 目次 -
1. はじめに \
1.1. 本章の目的 \
1.2. 前提条件 \
2. memcachedの構築 \
2.1. 必要なパッケージのインストール \
2.2. memcachedのインストールと起動 \
2.3. memcachedの起動確認 \
3. Shibboleth-IdPとの連携 \
3.1. Apache Tomcatの停止 \
3.2. memcachedを利用するためのライブラリを追加します。 \
3.3. Shibboleth-IdPの設定ファイルの変更 \
3.4. Apache Tomcatの再実行 \
4. repcached対応 \
はじめに
本章の目的
本書は、キャッシュサーバであるmemcachedのインストールとShibboleth-IdPの冗長化手順書です。
本書にて、memcachedとShibboleth-IdPの連携ができることを目的とします。
前提条件
memcachedを使ったShibboleth-IdPの冗長化を構築するにあたり、下記を前提条件とします。
前提条件
- Shibboleth-IdPは、学認の技術ガイドに基づいてインストールされており、認証できる状態であるものとします。
- OSはCentOS(64bit)を前提とします。
- memcachedを構築するサーバは2台とします。
- 本書は下記のソフトウェアを使用して記述します。
ソフトウェア
バージョン
インストール先
memcached
1.4.10
/usr/local/
Shibboleth-IdP
2.3.5
/opt/shibboleth-idp
Apache Tomcat
6.0.35
/usr/java/tomcat
memcachedの構築
memcachedを構築する全てのサーバで実施します。
必要なパッケージのインストール
- memcachedをインストールするために必要なパッケージをインストールします。
- yum install -y wget libevent-devel make gcc gcc-c++
memcachedのインストールと起動
- memcachedのソースコードをダウンロードし解凍します。
- cd /usr/local/src
- cd /usr/local/src
- wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
- tar zxf memcached-1.4.10.tar.gz
- rm memcached-1.4.10.tar.gz ←解凍後、削除します。|
- コンパイルしインストールします。
- cd /usr/local/src/ memcached-1.4.10
- cd /usr/local/src/ memcached-1.4.10
- ./configure --build=x86_64-unknown-linux-gnu --enable-64bit
- make
- make install|
memcachedをキャッシュ(-m) = 500MB、最大同時接続数(-c) = 1024で起動します。- memcached -d -m 512 -c 1024
memcachedの起動確認
- telnetにてmemcachedの起動を確認します。
- telnet localhost 11211 ←11211ポートは指定なし起動時の規定値です。
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
stats ←入力しEnterします。
STAT total_items 36
STAT evictions 0
STAT reclaimed 0
END
↑このような文字列が表示されれば起動しています。
Shibboleth-IdPとの連携
- telnet localhost 11211 ←11211ポートは指定なし起動時の規定値です。
Apache Tomcatの停止
- Tomcatが起動している場合は停止します。
- /etc/init.d/tomcat stop
memcachedを利用するためのライブラリを追加します。
|
- tar zxf unimr-memcached.tar.gz
- cd unimr-memcached
- cp unimr-memcached-idp2.3-rev151.jar /usr/java/tomcat/webapps/idp/WEB-INF/lib/
- cp lib/spymemcached-2.7.jar /usr/java/tomcat/webapps/idp/WEB-INF/lib/
|
Shibboleth-IdPの設定ファイルの変更
- ログイン設定(login.config) を変更します。
- vi /opt/shibboleth-idp/conf/login.config
{}内に一行追加します。
setLdapPrincipal="false"; ←;(セミコロン)は最後の行のみ入力します。
例
edu.vt.middleware.ldap.jaas.LdapLoginModule required
host="ldap://192.168.1.1"
base="o=Test Organization,dc=ac,c=jp"
ssl="false"
userField="uid"
subtreeSearch="true"
setLdapPrincipal="false"; ←;(セミコロン)は最後の行のみ入力します。
};
- vi /opt/shibboleth-idp/conf/login.config
- 内部保存設定(internal.xml)を変更します。
85行目をコメントアウトします。
- vi /opt/shibboleth-idp/conf/internal.xml
コメントアウトした下に追加します。<!--
<bean id="shibboleth.StorageService" cla・・・省略
-->※XXX.XXX.XXX.XXX および YYY.YYY.YYY.YYY はmemcached を構築したサーバのIPアドレスです。<bean id="shibboleth.StorageService"
class="unimr.shib2.UniMrMemcachedStorageService" depends-on="shibboleth.LogbackLogging">
<constructor-arg value="XXX.XXX.XXX.XXX:11211 YYY.YYY.YYY.YYY:11211" />←memcached のIPを指定します。
</bean>
※ポイントconstructor-argのvalueにはスペース区切りでmemcachedのIPとポートを指定する。後で起動したものは前(左)に追加する。上記では2つmemcachedがありXXX.XXX.XXX.XXX が後で起動したmemcachedです。 - webの設定を変更しサーブレットフィルターの設定を追加します。
53行目付近に以下を追加します。
- vi /usr/java/tomcat/webapps/idp/WEB-INF/web.xml
<!-- Store the modified session object in the memcached storage service -->
<filter>
<filter-name>UniMrMemcachedServletFilter</filter-name>
<filter-class>unimr.shib2.UniMrMemcachedServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UniMrMemcachedServletFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Apache Tomcatの再実行
- tomcatの起動(対象は全てのShibboleth-idpサーバ)
- /etc/init.d/tomcat start
repcached対応
複数memcached上のデータレプリケーションを行うrepcachedに変更するには以下のページの手順に従ってインストールしてください。
http://lab.klab.org/wiki/Repcached
以上。