...
下記の2点について変更の上、技術ガイドに従ってIdPを構築してください。
3. jdk 7、tomcat 7をインストールする > 6. httpd の設定 にあるServerNameの設定
idp1.example.ac.jpのような実ホスト名ではなく、サービス提供用ホスト名 idp.example.ac.jpを設定します。パネル title /etc/httpd/conf/httpd.conf の修正 (省略)
ServerName idp.example.ac.jp:443 ←サービス提供用ホスト名
(省略)
パネル title /etc/httpd/conf.d/ssl.conf の修正 (省略)
<VirtualHost _default_:443>
(省略)
ServerName idp.example.ac.jp:443 ←サービス提供用ホスト名
ProxyPass /idp/ ajp://localhost:8009/idp/ ←追加
(省略)
4. Shibbolethのインストール > 2. インストール にあるHostNameの入力
idp1.example.ac.jpのような実ホスト名ではなく、サービス提供用ホスト名 idp.example.ac.jpを設定します。パネル title install.shの実行 Source (Distribution) Directory: [/root/PKG/shibboleth-identity-provider-3.2.0]
[Enter] ←入力なし
Installation Directory: [/opt/shibboleth-idp]
[Enter] ←入力なし
Hostname: [idp1.example.ac.jp]
idp.example.ac.jp[Enter] ←サービス提供用ホスト名
SAML EntityID: [https://idp.example.ac.jp/idp/shibboleth]
[Enter] ←入力なし
Attribute Scope: [example.ac.jp]
[Enter] ←入力なし ※表示されたスコープが違う場合、設定してください。
TLS Private Key Password: tlspass[Enter] ←任意のパスワード
Re-enter password: tlspass[Enter]
Cookie Encryption Key Password: cookiepass[Enter] ←任意のパスワード
Re-enter password: cookiepass[Enter]
(省略)
BUILD SUCCESSFUL
Total time: 2 minutes 9 seconds
...
技術ガイドに従って構築する2台以上のIdPを対象とします。
- RDBサーバはIdPサーバとは独立したサーバとします。
- RDBサーバでは、CentOS 6付属のMySQL 5.1が起動しているものとします。MySQLがインストールされていない場合は、yumでインストールしてください。
マシンのホスト名は下記とします。
サービス提供用ホスト名 idp.example.ac.jp 1台目の実ホスト名 idp1.example.ac.jp 2台目の実ホスト名 idp2.example.ac.jp RDBサーバのホスト名 db.example.ac.jp
3.2. 設定手順
ヒント |
---|
IdPv3はストレージを統一的に扱いますので、3.2.1、3.2.4および3.2.6で行った設定をuApproveJP等で同意情報のストレージとして用いることが可能です。 |
3.2.1. MySQLの設定
db.example.ac.jpのMySQLの設定を行います。
...
下記の2点について変更の上、技術ガイドに従ってIdPを構築してください。
3. jdk 7、tomcat 7をインストールする > 6. httpd の設定 にあるServerNameの設定
idp1.example.ac.jpのような実ホスト名ではなく、サービス提供用ホスト名 idp.example.ac.jpを設定します。パネル title /etc/httpd/conf/httpd.conf の修正 (省略)
ServerName idp.example.ac.jp:443 ←サービス提供用ホスト名
(省略)
パネル title /etc/httpd/conf.d/ssl.conf の修正 (省略)
<VirtualHost _default_:443>
(省略)
ServerName idp.example.ac.jp:443 ←サービス提供用ホスト名
ProxyPass /idp/ ajp://localhost:8009/idp/ ←追加
(省略)
4. Shibbolethのインストール > 2. インストール にあるHostNameの入力
idp1.example.ac.jpのような実ホスト名ではなく、サービス提供用ホスト名 idp.example.ac.jpを設定します。パネル title install.shの実行 Source (Distribution) Directory: [/root/PKG/shibboleth-identity-provider-3.2.0]
[Enter] ←入力なし
Installation Directory: [/opt/shibboleth-idp]
[Enter] ←入力なし
Hostname: [idp1.example.ac.jp]
idp.example.ac.jp[Enter] ←サービス提供用ホスト名
SAML EntityID: [https://idp.example.ac.jp/idp/shibboleth]
[Enter] ←入力なし
Attribute Scope: [example.ac.jp]
[Enter] ←入力なし ※表示されたスコープが違う場合、設定してください。
TLS Private Key Password: tlspass[Enter] ←任意のパスワード
Re-enter password: tlspass[Enter]
Cookie Encryption Key Password: cookiepass[Enter] ←任意のパスワード
Re-enter password: cookiepass[Enter]
(省略)
BUILD SUCCESSFUL
Total time: 2 minutes 9 seconds
...
IdPにMySQLへのアクセスに必要なMySQL Connector/J (
mysql-connector-java.jar
)をインストールします。パネル title MySQL Connector/Jのインストール # yum install mysql-connector-java
/usr/share/java 配下にインストールされているので、Tomcat 配下のlib ディレクトリにシンボリックリンクを作成します。配下にインストールされているので、
edit-webapp/
配下のlib ディレクトリにシンボリックリンクを作成し、build.shコマンドを実行してidp.warに含めます。パネル title MySQL Connector/Jの配置 # rpm -ql mysql-connector-java
(省略)
/usr/share/java/mysql-connector-java.jar
(省略)
# ln -s /usr/share/java/mysql-connector-java.jar ${CATALINA_BASE}/lib/ /opt/shibboleth-idp/edit-webapp/WEB-INF/lib/# /opt/shibboleth-idp/bin/build.sh
Installation Directory: [/opt/shibboleth-idp]
[Enter] ←入力なしRebuilding /opt/shibboleth-idp/war/idp.war ...
...done
BUILD SUCCESSFUL
Total time: 3 seconds
3.2.5. idp.session.StorageServiceの設定変更
...
パネル | ||
---|---|---|
| ||
|
...
LVSサーバにkeepalivedとipvsadmをインストールします。
パネル title keepalivedのインストール # yum install keepalived ipvsadm
keepalivedの設定を行います。
パネル title keepalived.confの設定 global_defs {
notification_email {
root@localhost
}
notification_email_from lvs@lvs.example.ac.jp
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lvs.example.ac.jp
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51 # 他のVRRPの値と重複しないようにすること
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 # 任意のパスワード(最大8文字)
}
virtual_ipaddress {
203.0.113.10/24 dev eth0
}
nopreempt
}
virtual_server 203.0.113.10 443 {
delay_loop 5
lvs_sched sh
lvs_method DR
protocol TCP
real_server 203.0.113.11 443 {
weight 1
SSL_GET {
url {
path /idp/css/main.css
status_code 200
}
connect_port 443
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 203.0.113.12 443 {
weight 1
SSL_GET {
url {
path /idp/css/main.css
status_code 200
}
connect_port 443
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 203.0.113.10 8443 {
delay_loop 5
lvs_sched sh
lvs_method DR
protocol TCP
real_server 203.0.113.11 8443 {
weight 1
SSL_GET {
url {
path /idp/css/main.css
status_code 200
}
connect_port 443
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 203.0.113.12 8443 {
weight 1
SSL_GET {
url {
path /idp/css/main.css
status_code 200
}
connect_port 443
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
keepalivedを起動します。
パネル title keepalivedの起動 # chkconfig keepalived on
# chkconfig --list keepalived
keepalived 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# service keepalived start
keepalivedが正しく動作しているか確認します。
パネル title keepalivedの動作確認 # ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 203.0.113.10:443 sh
-> 203.0.113.11:443 Local 1 0 0
-> 203.0.113.12:443 Local 1 0 0
TCP 203.0.113.10:8443 sh
-> 203.0.113.11:8443 Local 1 0 0
-> 203.0.113.12:8443 Local 1 0 0
# ip addr show dev eth0 scope global
2: eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 203.0.113.1/24 brd 203.0.113.255 scope global eth0
inet 203.0.113.10/24 scope global secondary eth0
...
keepalivedの設定を行います。
パネル title keepalived.confの設定 global_defs {
notification_email {
root@localhost
}
notification_email_from vrrp@idp1.example.ac.jp
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id idp1.example.ac.jp
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51 # 他のVRRPの値と重複しないようにすること
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 # 任意のパスワード(最大8文字)
}
virtual_ipaddress {
203.0.113.10/24 dev eth0
}
nopreempt
smtp_alert
}
virtual_server 203.0.113.10 443 {
delay_loop 5
lvs_sched sh
lvs_method NAT
protocol TCP
real_server 127.0.0.1 443 {
weight 1
notify_down "/sbin/service keepalived stop"
SSL_GET {
url {
path /idp/css/main.css
status_code 200
}
connect_port 443
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
keepalivedを起動します。
パネル title keepalivedの起動 # chkconfig keepalived on
# chkconfig --list keepalived
keepalived 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# service keepalived start
keepalivedが正しく動作しているか確認します。
パネル title keepalivedの動作確認 # ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 203.0.113.10:443 sh
-> 127.0.0.1:443 Local 1 0 0
# ip addr show dev eth0 scope global
2: eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 203.0.113.11/24 brd 203.0.113.255 scope global eth0
inet 203.0.113.10/24 scope global secondary eth0
...
keepalivedの設定を行います。
パネル title keepalived.confの設定 global_defs {
notification_email {
root@localhost
}
notification_email_from vrrp@idp2.example.ac.jp
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id idp2.example.ac.jp
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51 # idp1と同じ値とすること
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 # idp1と同じ値とすること
}
virtual_ipaddress {
203.0.113.10/24 dev eth0
}
nopreempt
smtp_alert
}
virtual_server 203.0.113.10 443 {
delay_loop 5
lvs_sched sh
lvs_method NAT
protocol TCP
real_server 127.0.0.1 443 {
weight 1
notify_down "/sbin/service keepalived stop"
SSL_GET {
url {
path /idp/css/main.css
status_code 200
}
connect_port 443
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
keepalivedを起動します。
パネル title keepalivedの起動 # chkconfig keepalived on
# chkconfig --list keepalived
keepalived 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# service keepalived start
keepalivedが正しく動作しているか確認します。
パネル title keepalivedの動作確認 # ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 203.0.113.10:443 sh
-> 127.0.0.1:443 Local 1 0 0
# ip addr show dev eth0 scope global
2: eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 203.0.113.12/24 brd 203.0.113.255 scope global eth0