クラスタリング設定

クラスタリング設定

1. クラスタリング方式

  • Cookieを用いたクラスタリング
    認証済みセッション情報をCookieに埋め込むことにより、Shibboleth IdP 3を冗長化する方式です。

  • リレーショナルデータベースを用いたクラスタリング
    認証済みセッション情報をリレーショナルデータベースに保存することにより、Shibboleth IdP 3を冗長化する方式です。

  • memcachedを用いたクラスタリング
    認証済みセッション情報をmemcachedに保存することにより、Shibboleth IdP 3を冗長化する方式です。

2. Cookieを用いたクラスタリング

Cookieを用いたクラスタリング方式によるShibboleth IdP 3の冗長化設定について下記に示します。

2.1. 前提条件

前提条件は下記の通りです。

  • 技術ガイドに従って構築する2台以上のIdPを対象とします。

  • マシンのホスト名は下記とします。

2.2. 設定手順

2.2.1. IdPの構築

下記の2点について変更の上、技術ガイドに従ってIdPを構築してください。

  1.   3. jdk 7、tomcat 7をインストールする > 6. httpd の設定 にあるServerNameの設定
    idp1.example.ac.jpのような実ホスト名ではなく、サービス提供用ホスト名 idp.example.ac.jpを設定します。

  2. 4. Shibbolethのインストール > 2. インストール にあるHostNameの入力
    idp1.example.ac.jpのような実ホスト名ではなく、サービス提供用ホスト名 idp.example.ac.jpを設定します。

2.2.2.  /opt/shibboleth/credentials/sealer.jksのコピー

クラスタを構成するIdPでは、同じ/opt/shibboleth/credentials/sealer.jksを使用する必要があります。

scpコマンドやrsyncコマンドなどでidp1.example.ac.jpの/opt/shibboleth/credentials/sealer.jksをidp2.example.ac.jpにコピーします。3台以上でクラスタリングする場合は3台目以降も同様にコピーします。

2.2.3. Tomcatの再起動

Tomcatを再起動します。

Tomatの再起動

# service tomcat7 restart

3. リレーショナルデータベースを用いたクラスタリング

リレーショナルデータベース(以下、「RDB」とします)を用いたクラスタリング方式によるShibboleth IdP 3の冗長化設定を下記に示します。

3.1. 前提条件

前提条件は下記の通りです。

  • 技術ガイドに従って構築する2台以上のIdPを対象とします。

  • RDBサーバはIdPサーバとは独立したサーバとします。

  • RDBサーバでは、CentOS 6付属のMySQL 5.1が起動しているものとします。MySQLがインストールされていない場合は、yumでインストールしてください。

  • マシンのホスト名は下記とします。

3.2. 設定手順

IdPv3はストレージを統一的に扱いますので、3.2.1、3.2.4および3.2.6で行った設定をuApproveJP等で同意情報のストレージとして用いることが可能です。

3.2.1. MySQLの設定

db.example.ac.jpのMySQLの設定を行います。

  1. データベース shibbolethの作成
    Shibboleth IdPで使用するデータベース shibbolethを作成します。

  2. ユーザ作成
    IdPからデータベース shibbolethにアクセスするためのユーザ shibbolethを作成し、データベース shibbolethへの権限を付与します。

  3. StorageRecordsテーブル作成

    JPAStorageServiceが使用するテーブル StorageRecordsを作成します。

     

3.2.2. IdPの構築

下記の2点について変更の上、技術ガイドに従ってIdPを構築してください。

  1. 3. jdk 7、tomcat 7をインストールする > 6. httpd の設定 にあるServerNameの設定
    idp1.example.ac.jpのような実ホスト名ではなく、サービス提供用ホスト名 idp.example.ac.jpを設定します。

  2. 4. Shibbolethのインストール > 2. インストール にあるHostNameの入力
    idp1.example.ac.jpのような実ホスト名ではなく、サービス提供用ホスト名 idp.example.ac.jpを設定します。

3.2.3.  /opt/shibboleth/credentials/sealer.jksのコピー

クラスタを構成するIdPでは、同じ/opt/shibboleth/credentials/sealer.jksを使用する必要があります。

scpコマンドやrsyncコマンドなどでidp1.example.ac.jpの/opt/shibboleth/credentials/sealer.jksをidp2.example.ac.jpにコピーします。3台以上でクラスタリングする場合は3台目以降も同様にコピーします。

3.2.4. MySQL Connector/Jのインストール

  1. IdPにMySQLへのアクセスに必要なMySQL Connector/J (mysql-connector-java.jar)をインストールします。

  2. /usr/share/java 配下にインストールされているので、edit-webapp/ 配下のlib ディレクトリにシンボリックリンクを作成し、build.shコマンドを実行してidp.warに含めます。

3.2.5. idp.session.StorageServiceの設定変更

idp.sesssion.StorageServiceの設定をshibboleth.JPAStorageServiceに変更します。

3.2.6. shibboleth.JPAStorageServiceの設定

3.2.5. idp.session.StorageServiceの設定変更でidp.sesssion.StorageServiceに設定したshibboleth.JPAStorageServiceを定義します。

<bean id="Shibboleth.MySQLDataSource">のp:url, p:username, p:passwordは、3.2.1. MySQLの設定に合わせて設定します。

3.2.7. Tomcatの再起動

Tomcatを再起動します。

4. memcachedを用いたクラスタリング

memcachedを用いたクラスタリング方式によるShibboleth IdP 3の冗長化設定については、Shibboleth wikiMemcachedStorageServiceをご参照ください。

5. 参考