貴学にてSPをインストールする場合の構築手順
1. Shibboleth SP (version 2.4以降) の動作要件
以下は本技術ガイドで構築する前提となる環境です。
Apache HTTP Server 2.2以上(かつ2.4未満) と mod_ssl
他の環境および最新の情報はShibbolethのサイトでご確認ください:
全体, Linux, Mac OS X, Solaris, Windows, Java Servlets
2. OSをインストールする
1. OSでの設定
OS(CentOS 6)インストール
インストーラを起動してOSのインストールを行ってください。途中表示されるパッケージ選択画面では「Webサーバー」を選択してください。
その他に必要なパッケージがある場合は、適宜インストールしてください。
※このテキストはSELinuxは無効化されているものとして書かれております。下記コマンドでSELinux設定を確認してください。$ /usr/sbin/getenforce
- ネットワーク設定
環境に合わせ、ホスト名・ネットワーク・セキュリティを設定してください。
SPでは shibd サービスが通信を行います。
2. DNSへ登録
新しいホスト名とIPアドレスをDNSに登録してください。
3. 時刻同期の設定
ntpサービスを用い、貴学環境のntpサーバと時刻同期をしてください。
※Shibbolethでは、通信するサーバ間の時刻のずれが約5分を越えるとエラーになります。
3. Shibbolethのインストール
SPバージョン2.3からはrepositoryが用意され、yumに対応したのでインストールが大変楽になりました。
ここで説明するのは、以下のOSについてのインストール方法となります。
- CentOS 5/6, Red Hat Enterprise 4/5/6 (i386)
- SUSE Linux Enterprise Server 10/11(無印/SP1/SP2) (i386)
- OpenSUSE Linux 11.3/11.4/12.1 (i386)
その他のOSについては、以下を参照してください。
※上記OSでx86_64の場合
⇒下記の"yum install shibboleth"を"yum install shibboleth.x86_64"と読み替えてください。
※Linuxの他のディストリビューションの場合
⇒こちら
※他のOSの場合
⇒こちら
1. repositoryファイル追加(★)
Shibboleth用のrepositoryファイルをダウンロードします。
(下記コマンドは、CentOS 6の場合です。他のディストリビューションの場合はURLの "CentOS_CentOS-6" の部分を適宜読み替えてください。)
実習セミナー
edubaseCloud環境の場合はこのままでOKです。シンクライアント環境の場合はCentOS 5なので、以下のコマンドラインの "CentOS_CentOS-6" を"CentOS_5" としてダウンロードを行なってください。
# wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_CentOS-6/security:shibboleth.repo
yumにrepositoryファイルを追加します。
(コロンはちょっと気持ち悪いので、ファイル名も変更しています。)
# cp security\:shibboleth.repo /etc/yum.repos.d/shibboleth.repo
2. インストール(★)
yum コマンドの実行前に、まず※PGP鍵のインポートを参照してください。
yumコマンドを使用する為、依存性のあるunixODBCなども同時にインストールされます。
# yum install shibboleth
なお、OSインストール直後の状態でyum install shibbolethでインストールされるパッケージは以下の通りです。
(2012年11月2日現在, CentOS 6にて)
libcurl-openssl (*) libmemcached (*) libsaml8 libtool-ltdl (*) libxerces-c-3_1 libxml-security-c17 libxmltooling6 liblog4shib1 opensaml-schemas unixODBC xmltooling-schemas shibboleth 2.5.0-2.1
(2012年11月14日注:CentOS 5の場合は libcurl-openssl, libmemcached, libtool-ltdl はインストールされません)
(2011年6月21日注:ここでliblog4shib1でなく古いlog4shibがインストールされた場合はyum update liblog4shib1
を実行してアップデートしてください)
3. httpd 設定(★)
実習セミナー
ここで設定するホスト名は、各自SPサーバのホスト名を設定してください。
例)1番を割り振られた場合 ex-sp-test01.ecloud.nii.ac.jp
/etc/httpd/conf.d/ssl.confにて、ServerNameを設定します。
ServerName example-sp.nii.ac.jp:443 ← ホスト名を設定
4. shibd 起動(★)
以下のコマンドでshibdを起動します。
# service shibd start
※PGP鍵のインポート(★)
素の状態でyumコマンドにてインストールを実行すると、
Importing GPG key 0x7D0A1B3D "security:shibboleth OBS Project <security:shibboleth@build.opensuse.org>" from http://download.opensuse.org/repositories/security:/shibboleth/CentOS_5/repodata/repomd.xml.key Is this ok [y/N]:
と聞かれますが、PGP鍵を確認せずにインストールすることは大変危険です。
このPGP鍵を確認するためにあらかじめ以下の手順を実行してください。
Shibboleth関連のPGP鍵は以下のURLにあります。
https://www.shibboleth.net/downloads/PGP_KEYS
リンク先のテキストには
-----BEGIN PGP PUBLIC KEY BLOCK----- (中略) -----END PGP PUBLIC KEY BLOCK-----
となっているところがいくつかありますが、そのうち"security:shibboleth OBS Project"の文字列のすぐ下にあるもの(2013年6月21日時点で9カ所中上から3番目)を(-----
から始まる行も含めて)コピーして、
以下のコマンド等で新たに作成したKEYSというファイルにペーストしてください。
※vi以外のテキストエディタを使う場合、最終行に改行が入らないエディタがありrpmコマンドで失敗する場合が
ありますので、念のため最終行に改行を入れてください。
vi KEYS
次に
gpg --quiet --import KEYS ; gpg --fingerprint 0x7D0A1B3D
を実行し、以下のフィンガープリント(指紋)と一致することを確認してください。
pub 1024D/7D0A1B3D 2008-06-30 [満了: 2014-01-23] 指紋 = 6519 B5DB 7C1C 8340 A954 ED00 73C9 3745 7D0A 1B3D uid security:shibboleth OBS Project <security:shibboleth@build.opensuse.org>
※この鍵IDおよびフィンガープリントの値は今後変更になる可能性があります。値が異なっている場合は事務局までご連絡いただければ幸いです。
gpg: error reading key: 公開鍵が見つかりません
と表示された場合はコピーした鍵もしくはgpgコマンドの引数の鍵IDが異なっておりますので、もう一度確認してください。
下記コマンドで、このPGP鍵をインポートすれば完了です。
# rpm --import KEYS
このとき
エラー: KEYS: インポート読み込みに失敗しました(0)。
とエラーが出る場合は改行コードの問題が考えられます(WindowsでKEYSを作成した場合など)。その場合は以下のコマンドでエラーが解消されるか確認してください。
# tr -d \\r < KEYS > KEYS.lf ; rpm --import KEYS.lf
エラー: KEYS: key 1 import failed.
とエラーが出る場合はすでにPGP鍵がインポートされている可能性があります。以下のコマンドで
# rpm -qa gpg-pubkey
次の出力が含まれる場合はすでにPGP鍵がインポートされていますので次に進んでください。
gpg-pubkey-7d0a1b3d-4ec20249
念の為下記コマンドでこのPGP鍵を用いて署名検証が行われることをチェックしてください。
# grep gpgcheck /etc/yum.repos.d/shibboleth.repo
gpgcheck=1 ← =1であれば署名検証が行われる
ここまで終了したら、元に戻って「yum install shibboleth」の所から続きを行ってください。
4. サービスの起動・停止方法
httpd の起動方法
# service httpd start
shibd の起動方法
# service shibd start
httpd の停止方法
# service httpd stop
shibd の停止方法
# service shibd stop
httpd の再起動方法(停止→起動)
# service httpd restart
shibd の再起動方法(停止→起動)
# service shibd restart
※shibdと同様、httpdもSPの設定ファイル(shibboleth2.xml等)を読み込みますので、設定ファイルを変更した際はhttpdの再起動もあわせて行うようにしてください。httpdに含まれるShibbolethモジュール(mod_shib)が当該ファイルを読み込みます。
インストールが完了したら,サイト情報等の設定を行って下さい.