比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

貴学にてIdPをインストールする場合の構築手順

貴学にて、貴学のサーバにOSを含めShibboleth IdPならびに必要なパッケージのインストール・設定を行う手順を説明します。



目次
maxLevel2
minLevel2
stylenone

...

アンカー
idpInst1
idpInst1

1. Shibboleth IdP (version

...

4以降) の動作要件

以下は本技術ガイドで構築する前提となる環境です。

  • メモリ3GB以上
    Java実行環境への推奨割り当てメモリ量が1.5GBですので、その動作に支障がないようにしてください。
  • Apache HTTP Server 2.4 以上 と mod_ssl

以下のパッケージはインストール方法も含めて以降の手順で説明します。

  • Apache Tomcat 7 or 8 or 8.5 or 9
    初期の8.5はセッションのバグにより不安定になるという情報があります。Tomcat 9
    • JMXを初期化前に使うと動作がおかしくなります。
    • Tomcat 8以降idp.xmlに unpackWAR="false" を指定していると起動に4〜5倍時間がかかりますので、気になる方は指定を解除してください。
      ※いずれも以下のShibbolethのサイト「Apache Tomcat 8」が情報源です。
  • Java 8 or 11
    • Java 9および10は使用できません。Shibboleth開発元はJava 9/10はサポートしない、いわゆるLTSのみをサポートしています。
    • Java 7(OpenJDK 7)はサポートされなくなりましたので、Java 8 (Oracle JDK 8 / OpenJDK 8) およびそれ以降を使用してください。
      Java 7とJava 8でスクリプトの書き方に若干の違いがあります。(書き方の違いの例
      詳細(Shibboleth Wiki): ScriptedAttributeDefinitionの"Java 1.8 and Nashorn"の項およびその上の記述例, ScriptedDataConnector
      v2版: IdPJava1.8, ResolverScriptAttributeDefinition, IdPFilterRequirementScript
      (Shibboleth Wikiでは基本的にIdPv3,4のページでの説明はJava 8(Nashorn)がメインでJava 7(Rhino)も併記、v2版は特に断りがなければJava 7(Rhino)での表記となっています)

      注意

      文字列置換のためのJavaScriptメソッド "abc".replace("a", "b") について、Java 7では全置換されていたものがJava 8では先頭の一致した部分しか置換されなくなるという情報があります。当該メソッドを使って全置換を行っている場合は正規表現 replace(/a/g, "b") を使うようにしてください。

    • Oracle JDK / OpenJDK 11にてLDAPサーバへの接続にLDAPSを使う場合、以下のエラーになるという情報があります。
      書式設定済み
      java.lang.NullPointerException: Thread local SslConfig has not been set

      原因はJDKのバグであるとのことです。該当する場合、以下でUnboundIDを使う回避策が提示されています。
      https://wiki.shibboleth.net/confluence/display/IDP30/LDAPonJava>8
      詳細: https://issues.shibboleth.net/jira/browse/IDP-1357

    • Java 8およびそれ以降を使う場合エントロピー不足で起動が遅くなる場合があるという情報があります。jre/lib/security/java.securityやシステムプロパティ等で対処してください。
      確認方法および手順例: IdPのサービス動作状況の確認の「よくあるエラー」の503エラーの項

      • この問題はCentOS 7を使っている場合に顕著です。
      • VMで稼働させていてこの問題がある場合、ホストマシンでHavegedを導入しVMからこれを参照する等で十分なエントロピーを生成できる場合があるようですので、合わせてご検討ください。
    • 11にてLDAPサーバへの接続にLDAPSを使う場合、以下のエラーになるという情報があります。

      書式設定済み
      java.lang.NullPointerException: Thread local SslConfig has not been set

      原因はJDKのバグであるとのことです。該当する場合、以下でUnboundIDを使う回避策が提示されています。
      https://wiki.shibboleth.net/confluence/display/IDP30/LDAPonJava>8
      詳細: https://issues.shibboleth.net/jira/browse/IDP-1357

    • Java 8およびそれ以降を使う場合エントロピー不足で起動が遅くなる場合があるという情報があります。jre/lib/security/java.securityやシステムプロパティ等で対処してください。
      確認方法および手順例: IdPのサービス動作状況の確認の「よくあるエラー」の503エラーの項

      • この問題はCentOS 7を使っている場合に顕著です。
      • VMで稼働させていてこの問題がある場合、ホストマシンでHavegedを導入しVMからこれを参照する等で十分なエントロピーを生成できる場合があるようですので、合わせてご検討ください。
    • Java 8およびそれ以降を使う場合は、/etc/sysconfig/tomcatのJAVA_OPTSに指定するオプションのうち "-XX:Java 8およびそれ以降を使う場合は、/etc/sysconfig/tomcatのJAVA_OPTSに指定するオプションのうち "-XX:MaxPermSize=256m" は意味がありません(Java 7向けの指定です)ので削除してかまいません。
    • GNU Javaは利用できません。 OpenJDKもしくはOracleのJavaを利用してください。

他の環境および最新の情報はShibbolethのサイトでご確認ください:
全体, Jetty 9.2Jetty 9.3, Apache Tomcat 8

...

アンカー
idpInst2
idpInst2

2. OSをインストールする

1. OSでの設定

・OS(CentOS 7)インストール

インストーラでインストールするもの。

...

 環境に合わせ、ホスト名・ネットワーク・セキュリティを設定して下さい。

2. DNSへ登録する

 新しいホスト名とIPアドレスをDNSに登録してください。

3. 時刻同期を設定する

 ntpサービスを用い、貴学環境のntpサーバと時刻同期をしてください。

 ※Shibbolethでは、通信するサーバ間の時刻のずれが約5分を越えるとエラーになります。


...

アンカー
idpInst3
idpInst3

3. jdk

...

11、tomcat 9をインストールする 

1. 古いtomcatの削除

tomcat 6以前のバージョンが入っている場合は、削除してください。9以前のバージョンが入っている場合は、削除してください。


2. jdk のインストール 

CentOS 7にはOpenJDKのパッケージが用意されていますので、これをyumにてインストールします。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# yum install java-1.8.0-11-openjdk java-11-openjdk
展開
titleOracleのJavaを使用する場合
注意

Oracle JDKの公開バージョンは8のみですので、その手順を示します。7と8の間でバージョンをまたぐ場合は前述の通り設定ファイルに記述するスクリプトに一部違いがありますのでご注意ください。

http
-devel


3. tomcat 9のインストール 

CentOS 7に用意されているパッケージはTomcat7なので、Apache Software Foundationが配布するTomcatパッケージをダウンロードしてインストールします。

https://

...

tomcat.

...

apache.org/download-90.cgi

com/javase/downloads/index.jsp にあります"Java SE 8u???"の項にある"JDK"の項より構築環境に合わせてダウンロードしたパッケージを適当なフォルダに置いて、以下のコマンドを実行してください(???は用意されているjdkのリビジョン番号にあわせて記述して下さい)。
panel
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# tar 
rpm
zxv -
ivh jdk-8u???-linux-x64.rpm

上記のようにインストールした場合、パッケージ名は jdk1.8-1.8.0_???-fcs もしくは jdk1.8.0_???-1.8.0_???-fcs 、インストールパスは /usr/java/jdk1.8.0_???-amd64/ もしくは /usr/java/jdk1.8.0_???/ になります。後述のJAVA_HOMEには /usr/java/jdk1.8.0_*/jre もしくは等価なシンボリックリンクを指定してください。

8u161およびそれ以降の場合、暗号アルゴリズムの制限は解除済みですので特に操作は不要です。念のため下記 java.security の内容を確認してください。

8u151および8u152の場合、暗号アルゴリズムの制限を解除するために、/usr/java/jdk1.8.0_???/jre/lib/security/java.security に以下のように指定してください。

コード ブロック
crypto.policy=unlimited
展開
title8u151より前のバージョンの場合の暗号アルゴリズム制限解除方法
再度上記URLから「Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8」にある jce_policy–8.zip をダウンロードし、展開したREADME.txtに従って /usr/java/jdk1.8.0_???/jre/lib/security/local_policy.jarUS_export_policy.jar を(オリジナルをリネームした上で)配置してください。

3. tomcat 7のインストール 

CentOS 7の場合、標準パッケージにTomcat 7があるため、yumにてインストールします。 

C /usr/share -f apache-tomcat-9.?.??.tar.gz
# ln -s /usr/share/apache-tomcat-9.?.?? /usr/share/tomcat


/etc/systemd/system配下に以下の内容でtomcat.serviceを作成します。


パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

[Unit]
Description=Apache Tomcat
After=syslog.target network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/share/tomcat/tomcat.pid
RemainAfterExit=yes
#EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/usr/share/tomcat/bin/startup.sh
ExecStop=/usr/share/tomcat/bin/shutdown.sh
Environment=’CATALINA_OPTS=-Xms512M -Xmx512M -server -XX:+UseParallelGC’
Environment=’JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom

KillMode=none

[Install]
WantedBy=multi-user.target

 ”tomcat”ユーザで起動

"root"ユーザではなく、Tomcat起動用のユーザを使用することを推奨します。
ここでは、一般的な"tomcat"ユーザを作成します。(以降、"tomcat"ユーザを使用する事が前提で説明します。)


パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# yum install tomcatuseradd -r -d /usr/share/tomcat -s /sbin/nologin -c "Tomcat daemon" tomcat


以下のコマンドでその他Tomcat関連の設定ファイルやディレクトリの所有者、パーミッションを設定します。 自動起動の設定


パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# systemctl enable tocmat

/etc/sysconfig/tomcatを編集し、JAVA_OPTSを設定します。(以下、推奨値)

コード ブロック
languagebash
#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"
JAVA_OPTS="-server -Xmx1500m -XX:+UseG1GC "

...

titleApache Software Foundationが配布するTomcatパッケージを使う場合

CentOS 6の場合、標準パッケージにはTomcat 7がないため、Apache Software Foundationが配布するTomcatパッケージをダウンロードしてインストールします。
/usr/javaを作成します。https://tomcat.apache.org/download-90.cgi よりダウンロードした apache-tomcat-9.?.??.tar.gz を/usr/javaに置いて、
以下のコマンドを実行してください(?は用意されているtomcatのリビジョン番号にあわせて記述して下さい)。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# mkdir /usr/java
# tar zxv -C /usr/java -f apache-tomcat-9.?.??.tar.gz # ln -s /usr/java/apache-tomcat-9.?.?? /usr/java/tomcat

自動起動スクリプトを利用すると便利です。ZIPを解凍後にtomcat7起動スクリプトファイルをコピーします。

展開
title学認提供自動起動スクリプトについて

/etc/init.d/tomcat7 を更新する場合はTomcat停止後に行なうのがお勧めです。そうでないとPIDファイル等に不整合が生じます。

ファイル内にJAVA_HOME、CATALINA_HOMEおよびCATALINA_BASEが定義されておりますので、「4. profileの修正」を参考に環境に合わせて変更してください。

Oracle(Sun) JVM / OpenJDK 以外をご使用の方は定義されているオプションを適宜調整してください。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# unzip tomcat7.zip
# chmod a+x tomcat7
# cp tomcat7 /etc/rc.d/init.d/
chown -R tomcat:tomcat /usr/share/tomcat/{temp,logs,work}
# chown tomcat:tomcat /usr/share/tomcat/webapps
# chmod +t /usr/share/tomcat/webapps
# chmod go+rx /usr/share/tomcat/conf

# chgrp tomcat /usr/share/tomcat/conf/*.*
# chmod g+r /usr/share/tomcat/conf/*.*
# mkdir -p /usr/share/tomcat/conf/Catalina/localhost
chgrp -R tomcat /usr/share/tomcat/conf/Catalina
chmod -R g+r /usr/share/tomcat/conf/Catalina
chmod -R +t /usr/share/tomcat/conf/Catalina
# chgrp -R tomcat /usr/share/tomcat/{bin,lib}

自動起動の設定

...

以下のコマンドで自動起動設定を有効にします。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

#

chkconfig --add tomcat7 # chkconfig --level 345 tomcat7 on "tomcat"ユーザで起動 "root"ユーザではなく、Tomcat起動用のユーザを使用することを推奨します。
ここでは、一般的な"tomcat"ユーザを作成します。(以降、"tomcat"ユーザを使用する事が前提で説明します。)

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# useradd -r -d /usr/java/tomcat -s /sbin/nologin -c "Tomcat daemon" tomcat
 また、起動スクリプトを修正し、"tomcat"ユーザで起動するようにします。
ダウンロードした起動スクリプトを使用する場合は以下のように修正します。(
/etc/rc.d/init.d/tomcat7 
情報

もしTomcatが起動していれば、修正前にstopしてください。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

# Remove -XX:MaxPermSize=256m if you are not using Sun/Oracle JVM nor OpenJDK.
export JAVA_OPTS="-server -Xmx1500m -XX:MaxPermSize=256m -XX:+UseG1GC "
export LANG=en_US.UTF-8
TOMCAT_USER=tomcat

 以下のコマンドでその他Tomcat関連の設定ファイルやディレクトリの所有者、パーミッションを設定します。 

systemctl enable tomcat

補足:
以下のコマンドで自動起動設定を無効にすることができます。

# systemctl disable tomcat


4. profileの追加 

/etc/profile.d/java-tomcat.sh という新規ファイルを以下の内容で作成します。

注意

下記のJAVA_HOMEは、OpenJDKを使ったパスとなります。
またCATALINA_HOMEおよびCATALINA_BASEは、Apache Software Foundationが配布するTomcatパッケージをインストールした場合のパスとなります。
環境に合わせて変更してください。

コード ブロック
languagebash
# /etc/profile.d/java-tomcat.sh - set Java and Tomcat stuff
JAVA_HOME=/usr/lib/jvm/java
#export MANPATH=$MANPATH:/usr/java/default/man
CATALINA_HOME=/usr/share/tomcat
CATALINA_BASE=$CATALINA_HOME
PATH=$JAVA_HOME/bin:$CATALINA_BASE/bin:$CATALINA_HOME/bin:$PATH
export PATH JAVA_HOME CATALINA_HOME CATALINA_BASE

追加した環境変数を読み込みます。

パネル
bgColor#eeeeee

# source /etc/profile

 

5.  httpd の設定 

 /etc/httpd/conf/httpd.conf の修正

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

(省略)
#

chown -R tomcat:tomcat /usr/java/tomcat/{temp,logs,work}
# chown tomcat:tomcat /usr/java/tomcat/webapps
# chmod +t /usr/java/tomcat/webapps
# chmod go+rx /usr/java/tomcat/conf

# chgrp tomcat /usr/java/tomcat/conf/*.*
# chmod g+r /usr/java/tomcat/conf/*.*
# mkdir -p /usr/java/tomcat/conf/Catalina/localhost
chgrp -R tomcat /usr/java/tomcat/conf/Catalina
chmod -R g+r /usr/java/tomcat/conf/Catalina
chmod -R +t /usr/java/tomcat/conf/Catalina
# chgrp -R tomcat /usr/java/tomcat/{bin,lib}
また、Tomcatのpidファイル及び保存されているディレクトリを ls -dl 等で所有者・パーミッションを確認の上、必要なら変更してください。

ServerName example-idp.nii.ac.jp:80 ←ホスト名
↑コメントアウト(#)を削除
(省略)

 /etc/httpd/conf.d/ssl.conf の修正

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

(省略)
<VirtualHost _default_:443>
(省略)
#ServerName example-idp.nii.ac.jp:443 ←ホスト名
↑コメントアウト(#)を削除
ProxyPass /idp/ ajp://localhost:8009/idp/ ←追加
(省略)

情報

加えて、SSL 3.0プロトコルに対する攻撃が発見されておりますので、当該プロトコルを無効化することをお勧めします。⇒SSLバージョン3の脆弱性について (CVE-2014-3566)

パネル

SSLProtocol all -SSLv2 -SSLv3

/etc/httpd/conf.d/virtualhost-localhost80.conf を以下の内容で作成してください。これはShibboleth IdPが提供するreload-metadata.sh等のコマンドを使った操作を可能にするためのものです。

注意

すでに同一のvirtual hostを別のところで定義している場合は、そちらに含めてください。また、すでに _default_:80 のVirtualHostが定義されている場合はその中の宣言が localhost:80 に適用されなくなりますので、必要であればその宣言をこのファイルにも含めてください。

_default_:80 が定義されているファイルに下記ProxyPassを含める方法もありますが、外部からの通常のアクセスがセキュアでない80番ポートに対しても行えることになりますので推奨しません。(もちろん、ファイアウォール等で適切に対処されていれば問題ありません)

パネル
bgColor#eeeeee
<VirtualHost localhost:80>
ProxyPass /idp/ ajp://localhost:8009/idp/
</VirtualHost>


6. server.xmlの修正

$CATALINA_BASE/conf/server.xmlを下記のように修正します。
他の用途で使用する予定がなければConnector port="8080"をコメントアウトしてください。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

# ls -dl /var/run/tomcat
drwxr-xr-x 2 root root 4096 Jun 20 16:21 /var/run/tomcat
            
↑このディレクトリが存在し、かつ所有者・グループが tomcat tomcat でなければ以下を実行
# chown -R tomcat:tomcat /var/run/tomcat

...

/etc/profile.d/java-tomcat.sh という新規ファイルを以下の内容で作成します。

注意

下記のJAVA_HOMEは、OpenJDKを使ったパスとなります。
またCATALINA_HOMEおよびCATALINA_BASEは、Apache Software Foundationが配布するTomcatパッケージをインストールした場合のパスとなります。
環境に合わせて変更してください。

コード ブロック
languagebash
# /etc/profile.d/java-tomcat.sh
JAVA_HOME=/usr/lib/jvm/jre
#export MANPATH=$MANPATH:/usr/java/default/man
CATALINA_HOME=/usr/share/tomcat
CATALINA_BASE=$CATALINA_HOME
PATH=$JAVA_HOME/bin:$CATALINA_BASE/bin:$CATALINA_HOME/bin:$PATH
export PATH JAVA_HOME CATALINA_HOME CATALINA_BASE

 

展開
titleCentOS 6の場合

yumでインストールした場合と、rpmからインストールした場合では、ファイルの配置が違います。

コード ブロック
languagebash
# /etc/profile.d/java-tomcat.sh - set Java and Tomcat stuff
JAVA_HOME=/usr/lib/jvm/jre
#export MANPATH=$MANPATH:/usr/java/default/man
CATALINA_HOME=/usr/java/tomcat
CATALINA_BASE=$CATALINA_HOME
PATH=$JAVA_HOME/bin:$CATALINA_BASE/bin:$CATALINA_HOME/bin:$PATH
export PATH JAVA_HOME CATALINA_HOME CATALINA_BASE

追加した環境変数を読み込みます。

パネル
bgColor#eeeeee

# source /etc/profile

 

5.  httpd の設定 

 /etc/httpd/conf/httpd.conf の修正

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

(省略)
#ServerName example-idp.nii.ac.jp:80 ←ホスト名
↑コメントアウト(#)を削除
(省略)

 /etc/httpd/conf.d/ssl.conf の修正

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

(省略)
<VirtualHost _default_:443>
(省略)
#ServerName example-idp.nii.ac.jp:443 ←ホスト名
↑コメントアウト(#)を削除
ProxyPass /idp/ ajp://localhost:8009/idp/ ←追加
(省略)

情報

加えて、SSL 3.0プロトコルに対する攻撃が発見されておりますので、当該プロトコルを無効化することをお勧めします。⇒SSLバージョン3の脆弱性について (CVE-2014-3566)

パネル

SSLProtocol all -SSLv2 -SSLv3

/etc/httpd/conf.d/virtualhost-localhost80.conf を以下の内容で作成してください。これはShibboleth IdPが提供するreload-metadata.sh等のコマンドを使った操作を可能にするためのものです。

注意

すでに同一のvirtual hostを別のところで定義している場合は、そちらに含めてください。また、すでに _default_:80 のVirtualHostが定義されている場合はその中の宣言が localhost:80 に適用されなくなりますので、必要であればその宣言をこのファイルにも含めてください。

_default_:80 が定義されているファイルに下記ProxyPassを含める方法もありますが、外部からの通常のアクセスがセキュアでない80番ポートに対しても行えることになりますので推奨しません。(もちろん、ファイアウォール等で適切に対処されていれば問題ありません)

パネル
bgColor#eeeeee
<VirtualHost localhost:80>
ProxyPass /idp/ ajp://localhost:8009/idp/
</VirtualHost>

...

<!--
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
-->

 Connector port="8009"に以下のように追加してください。

...

$CATALINA_BASE/conf/server.xmlを下記のように修正します。
他の用途で使用する予定がなければConnector port="8080"をコメントアウトしてください。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--

<Connector port="8080"


<Connector protocol="

HTTP

AJP/1.

1" connectionTimeout="20000"

3"
address="::1"
port="8009"
redirectPort="8443"

/>


-->

 Connector port="8009"に以下のように追加してください。

<Connector port="8009" protocol="AJP/1.3" redirectPort" redirectPort="8443"
           secretRequired="8443false"
           enableLookupsenableLookups="false" tomcatAuthentication="false" address="127.0.0.1" maxPostSize="100000" />


...

アンカー
idpInst4
idpInst4

4. Shibbolethのインストール

各ファイル名等の指定は,Version 3.2.1に準拠しています。4に準拠しています。

1. Shibboleth IdP パッケージのダウンロード

http://shibboleth.net/downloads/identity-provider/latest/から最新版のIdP( shibboleth-identity-provider-34.?.?.tar.gz )をダウンロードします。

情報

ダウンロードしたファイルの真正性を確かめるにはPGP署名(ダウンロードURLに".asc"を追加したもの)を確認してください。


 2. インストール 

 shibboleth-identity-provider-34.?.?.tar.gz を適当なディレクトリに置いて、以下のコマンドを実行してください。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# tar xzvf shibboleth-identity-provider-34.?.?.tar.gz
# cd shibboleth-identity-provider-34.?.?
# ./bin/install.sh -Didp.conf.filemode=640

...

注意

インストール時に入力するパスワードを本運用で使う場合は、推測されにくいものを使用してください。
※ここで入力したパスワードは、/opt/shibboleth-idp/conf/idp.propertiesに記載されます。(平文).propertiesに記載されます。(平文)

solid
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
パネル
borderColor#cccccc
bgColor#eeeeee
borderStyle

Buildfile: /root/PKG/shibboleth-identity-provider-4.0.1/bin/build.xml

install:


Source (Distribution) Directory (press <enter> to accept default): [/root/PKG/shibboleth-identity-provider-34.0.1.2] ?
[Enter] ←入力なし

Installation Directory: [/opt/shibboleth-idp]
[Enter] ←入力なし
Hostname: [upkishib-idp.nii.ac.jp]

[Enter] 入力なし ※表示されたホスト名が違う場合、設定してください。
Backchannel PKCS12 Password: backpass[Enter] ←任意のパスワード

Re-enter password: backpass[Enter]

Cookie Encryption Key Password: cookiepass[Enter] 入力なし ※表示されたホスト名が違う場合、設定してください。←任意のパスワード
Re-enter password: cookiepass[Enter]
SAML EntityID: [https://upkishib-idp.nii.ac.jp/idp/shibboleth]
[Enter] ←入力なし
Attribute Scope: [
nii.ac.
jp]
[Enter] ←入力なし ※表示されたスコープが違う場合、設定してください。
 

Backchannel PKCS12 Password: backpass[Enter] ←任意のパスワード

Re-enter password: backpass[Enter]

Cookie Encryption Key Password: cookiepass[Enter] ←任意のパスワード
Re-enter password: cookiepass[Enter]
 jp]
[Enter] 入力なし ※表示されたスコープが違う場合、設定してください。

 (省略)

BUILD SUCCESSFUL
Total time: 2 minutes 9 seconds

 上記のような質問に答えながら、インストールを行います。


3. パーミッションの調整 

Tomcatが”tomcat”ユーザで起動されるので、参照や書き込みが行えるようにディレクトリの所有者を変更します。
同様に、設定ファイルやメタデータの保存ディレクトリなどの所有者・パーミッションも変更します。

...

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# chown -R tomcat:tomcat /opt/shibboleth-idp/logs
# chgrp -R tomcat /opt/shibboleth-idp/conf
# chmod -R g+r /opt/shibboleth-idp/conf
# find /opt/shibboleth-idp/conf -type d -exec chmod -R g+s {} \;
# chgrp tomcat /opt/shibboleth-idp/metadata
# chmod g+w /opt/shibboleth-idp/metadata
# chmod +t /opt/shibboleth-idp/metadata
ヒント

IdPが実際に使用する証明書の秘密鍵はまだ配置されておりませんので、所有者・パーミッションは後の手順で設定します。

4jakarta-taglibs-core.jar と jakarta-taglibs-standard.jar の配置 

 IdPの動作に必要なjstl.jar(jakarta-taglibs-core.jar と jakarta-taglibs-standard.jar)を配置します。
CentOS6の場合、jakarta-taglibs-standardパッケージに入っているので、 yum でインストールします。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# yum install jakarta-taglibs-standard
-idp/metadata
# chgrp tomcat /opt/shibboleth-idp/credentials/secrets.properties
# chmod g+r /opt/shibboleth-idp/credentials/secrets.properties
# chgrp tomcat /opt/shibboleth-idp/credentials/sealer.*
# chmod g+r /opt/shibboleth-idp/credentials/sealer.*
ヒント

IdPが実際に使用する証明書の秘密鍵はまだ配置されておりませんので、所有者・パーミッションは後の手順で設定します。


4jstl-1.2.jar の配置 

 jstl-1.2.jarをhttps://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jarよりダウンロードします。
edit-webapp/ 配下に配置し、idp/usr/share/java 配下にインストールされているので、edit-webapp/ 配下にシンボリックリンクを作成し、idp.warに含めます。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# ln -swget /usr/share/java/jakarta-taglibs-core.jar /opt/shibboleth-idp/edit-webapp/WEB-INF/lib/jakarta-taglibs-corehttps://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jar
# ln -s /usr/share/java/jakarta-taglibs-standardcp jstl-1.2.jar /opt/shibboleth-idp/edit-webapp/WEB-INF/lib/jakarta-taglibs-standard.jar
# /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


5. idp.war の登録

${CATALINA_BASE}/conf/Catalina/localhost/idp.xml という新規ファイルを以下の内容で作成し、idp.warをTomcatが認識できるようにします。

...

情報

上記内容のうち<CookieProcessor>の行はTomcat 8.0.xの特殊な環境向けです。Tomcat 7では以下のようなログが残りますが実害はありません。

書式設定済み
WARNING:   No rules found matching 'Context/CookieProcessor'.

同様にTomcat 9では以下のようなログが残りますが実害はありません。

書式設定済み
03-Sep-2018 11:13:49.146 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Context/CookieProcessor} Setting property 'alwaysAddExpires' to 'true' did not find a matching property.

 httpdの再起動とTomcatの起動を行います。(すでにTomcatが起動している場合はstopしてから行ってください)

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# systemctl restart httpd
# systemctl start tomcat

...


 httpdの再起動とTomcatの起動を行います。(すでにTomcatが起動している場合はstopしてから行ってください)

...

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
# systemctl 
service
restart httpd
restart

# 
service
systemctl 
tomcat7
start 
start
tomcat



Tomcatの起動後、${CATALINA_BASE}/logs/catalina.{日付}.log にエラーが出力されていない事を確認してください。

...

(関連するバグレポート)

...

アンカー
idpInst5
idpInst5

5. サービスの起動・停止方法

...

サービス起動コマンド停止コマンド再起動コマンド
httpdsystemctl start httpdsystemctl stop httpdsystemctl restart httpd
tomcatsystemctl start tomcatsystemctl stop tomcatsystemctl restart tomcat

 

...


サービス起動コマンド停止コマンド再起動コマンド
httpd

...

systemctl start httpd

...

...

systemctl stop httpd

...

...

systemctl restart httpd

...

tomcat

...

service tomcat7 start 

sh /usr/java/tomcat/bin/startup.sh (起動スクリプトを利用しない場合)

...

service tomcat7 stop

sh /usr/java/tomcat/bin/shutdown.sh (起動スクリプトを利用しない場合)

systemctl start tomcatsystemctl stop tomcatsystemctl restart tomcat

 

...


...

インストールが完了したら,サイト情報等の設定を行って下さい.

...