StoredIDはeduPersonTargetedID(ePTID)を生成する方法の一つで、 ComputedIDと比較して、
という利点があります。
1. データベースにテーブルを作成する。
MySQL上にデータベース shibbolethを作成し、以下のテーブルを追加します。
CREATE TABLE shibpid ( localEntity VARCHAR (255) NOT NULL , peerEntity VARCHAR (255) NOT NULL , persistentId VARCHAR (50) NOT NULL , principalName VARCHAR (50) NOT NULL , localId VARCHAR (50) NOT NULL , peerProvidedId VARCHAR (50) NULL , creationDate TIMESTAMP NOT NULL , deactivationDate TIMESTAMP NULL , PRIMARY KEY (localEntity, peerEntity, persistentId) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
2. JDBCのドライバー(mysql-connector-java-5.1.xx-bin.jar)を取得する。
https://dev.mysql.com/downloads/connector/j/
よりmysql-connector-java-5.1.xx.zipをダウンロードしてください。
その際、PGP署名を確認するようにしてください。"Signature"リンクの先にある
-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE----- |
の部分をヘッダフッタも含めてコピーし、mysql-connector-java-5.1.xx.zip.ascというファイルにペーストした上で
https://dev.mysql.com/doc/refman/5.1/ja/checking-gpg-signature.html
にある手順に従って署名検証してください。
ダウンロードしたZIPを展開すると中にmysql-connector-java-5.1.xx-bin.jarというファイルがあります。
3. JDBCドライバーをインストールする。
2.で取得したJARファイルを
/usr/java/tomcat/webapps/idp/WEB-INF/lib
に配置してください。
# cp mysql-connector-java-5.1.xx/mysql-connector-java-5.1.xx-bin.jar /usr/java/tomcat/webapps/idp/WEB-INF/lib/ |
本来は、/opt/shibboleth-idp /edit-webapp/WEB-INF/lib/に配置した上でインストールスクリプトを実行してidp.warを再生成するものですが、 ひとまず上記ディレクトリに置き、次回セキュリティアップデート時にでも下記方法でidp.warを生成、配置すればOKです。
# cp mysql-connector-java-5.1.xx/mysql-connector-java-5.1.xx-bin.jar /opt/shibboleth-idp/edit-webapp/WEB-INF/lib |
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
4. /opt/shibboleth-idp/conf/global.xml を修正する。
/opt/shibboleth-idp/conf/global.xmlでbean MyDataSourceを定義します。
<!-- Use this file to define any custom beans needed globally. --> |
5. /opt/shibboleth-idp/conf/saml-nameid.xml
を修正する。
<ref bean="shibboleth.SAML2PersistentGenerator" /> をアンコメントして有効にします。
<!-- Uncommenting this bean requires configuration in saml-nameid.properties. --> |
idp.persistentId.sourceAttribute, idp.persistentId.salt, idp.persistentId.generatorとidp.persistentId.storeを設定します。
idp.persistentId.saltには他人が推測できないランダムな値を指定してください。古いIdPから設定を引き継ぐ場合は同じ値を指定してください。
# For computed IDs, set a source attribute and a secret salt: |
attribute-resolver.xml
を修正する。 idp.persistentId.sourceAttributeで指定した属性がLDAPで定義されているのみでconf/attribute-resolver.xmlの対応するresolver:AttributeDefinitionがコメントアウトされている場合、
当該resolver:AttributeDefinitionをアンコメントします。(以下はsourceAttributeとしてuidを指定した場合の例)
<!-- Attribute Definition for uid --> |
すべての作業が終わりましたらTomcatを再起動してください。
参考: GakuNinShare:Shibboleth IdP 3 のstoredIdの項