...
本ガイドでは Shibboleth Identity Provider (IdP)のための uApprove.jp のインストールおよび設定方法を説明します。
IdP プラグインおよび uApprove.jp viewer のインストール方法と、 ストレージとしてファイルもしくは SQL データベースを用いた設定方法を示します。
このガイドでは例として以下の設定値を使用します。
1.2 前提条件
1.3 インストール
パネル |
---|
|
1.3.1 IdP-Plugin
idp.example.org
- Identity Provider の DNS 名
/opt/uApprove
- uApprove.jp をインストールするディレクトリ
/opt/uApprove/conf
- uApprove.jp の設定ファイルのディレクトリ
/opt/shibboleth-identityprovider-2.x
- Shibboleth IdP のインストール時にZIPファイルを展開したディレクトリ (
install.sh
が存在するディレクトリ)
- Shibboleth IdP のインストール時にZIPファイルを展開したディレクトリ (
/opt/shibboleth-idp
- Shibboleth IdP のインストール先
${CATALINA_HOME}
- Tomcat のインストール先 (例えば、
/usr/java/tomcat
)
- Tomcat のインストール先 (例えば、
1.2 前提条件
uApprove.jp のインストールと設定の前に、以下の前提条件が揃っていることを確認してください。
- Shibboleth Identity Provider 2.3.
- 正しく配備した Shibboleth Identity Provider が必要です。
Java と Tomcat が動作することも含みます。
- 正しく配備した Shibboleth Identity Provider が必要です。
- SQL Database
- ストレージとして SQL データベースを使用する場合は SQL サーバが必要です。
uApprove.jp は既に MySQL 用の設定が行われていますが、他の SQL サーバも使用できます。
- ストレージとして SQL データベースを使用する場合は SQL サーバが必要です。
1.3 インストール
uApprve.jp をダウンロードして unzip してください:
パネル |
---|
|
パネル |
---|
|
1.3.1 IdP-Plugin
パネル |
---|
|
...
- ユーザ名
- ユーザが同意した Term of use の最終バージョン
- Shibboleth SP にリリースされた暗号化された属性のリスト
- Shibboleth SP の Entity ID
最初にどちらのストレージを使用するか決めなければなりません:
- ファイルベース
- 少人数の構成で利用することを推奨します。(100 ユーザ未満)
- SQL データベース
- MySQL データベースを完全にサポートしています。JDBC コネクタを持つデータベースでも動くでしょう。もしかしたら 動かすために高等な設定が必要になるかもしれません。
ファイルベース
ファイルベースストレージの設定は /optファイルベースストレージの設定は /opt/uApprove/conf/common.properties で行います:
...
パネル |
---|
termsOfUse=/opt/uApprove/conf/terms-of-use.xml |
注意 |
---|
含まれている |
パネル |
---|
|
簡単に 16 バイトの乱数を生成するためには、以下コマンドを利用できます:
パネル |
---|
openssl rand -base64 16 2>/dev/null |
...
パネル |
---|
|
警告 |
---|
uApprove.jp-2.2.1a 以降はネームスペースの URI が変更になりました。 |
ルールの定義
|
警告 |
---|
uApprove.jp-2.2.1a 以降はネームスペースの URI が変更になりました。
|
ルールの定義
uApprove.jpはPolicy RequirementルールとAttribute RulesのPermit/Deny Valueルールを拡張します:
- Policy Requirementルール
- このルールは
<afp:PolicyRequirementRule xsi:type="uajpmf:AttributeUapprove">
要素によって定義されます。 そして、SPのメタデータ内に<AttributeConsumingService>
要素が存在する場合に適用されます。
- このルールは
Attribute RuleのPermit/Deny Value Rule
このルールは下記のオプショナルな属性を持つ
<afp:PermitValueRule xsi:type="uajpmf:AttributeUapprove"/>
要素と<afp:DenyValueRule xsi:type="uajpmf:AttributeUapprove"/>
要素両方によって定義されます。isApproved (オプショナル)
ユーザによってSPへ送信を許可された属性を示すブーリアン値です。
デフォルト値: true
しかし、もし SPのメタデータ内の<AttributeConsumingService>
要素内の<RequestedAtrribute>
要素でisRequired="true"
となっている属性は、必須属性として扱われ、常にSPに送信されます。
requestedOnly (オプショナル)
SPのメタデータで定義された属性のみを表示するか否かを示すブーリアン値です。
デフォルト値: false
xsi:type="uajpmf:AttributeUapprove"
を持たない許可された属性は必須属性として扱われます。uApprove.jpはPolicy RequirementルールとAttribute RulesのPermit/Deny Valueルールを拡張します:
uajpmf:AttributeUapprove Matchファンクションを用いたPermit Valueルールの例を示します:
...
オプションである reset-approvals は以下の二通りの方法で操作可能です:
- In-flow モード
- ユーザがログイン手続きにおいてリセット可能であることを意味します。 たとえばログインフォームのチェックボックスを使用するといった方法です。
- Standalone モード
- JSP などを直接呼ぶ操作です。
In-flow モード
In-Flow の reset-approvals アプリケーションを有効にするには、Shibboleth の UsernamePassword ログインフォーム ${CATALINA_HOME}/webapps/idp/login.jsp にチェックボックスの追加で対応可能です。
...
1.6 トラブルシューティング
1.6.1 ログ出力
IdP プラグインは Shibboleth IdP web アプリケーション中で動作するため IdP logger を使用します。IdP logger の設定は /opt/shibboleth-idp/conf/logging.xml で行います:
パネル |
---|
... <logger name="ch.SWITCH.aai" level="DEBUG"> |
...
|
...
|
...
|
...
uApprove.jp viewer のログは 1.4.3 で説明したように設定します。log level を DEBUG
に変更します。
1.6.2 Tomcat, Jasper JSP compiling for 1.5 target
uApprove.jp は JDK1.5 を対象に提供されています。あなたの Tomcat がバージョン 1.5 以上の JDK で実行していたとしても Jasper エンジンは実行中の JSP を別ターゲット(例 1.3)向けにコンパイルしている可能性があります。 以下の ${CATALINA_HOME}/conf/web.xml の設定は JSP のコンパイルターゲットを指定するものです:
パネル |
---|
<servlet>
...
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.5</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.5</param-value>
</init-param>
...
</servlet> |
...
1.7 リファレンス
...
SPは <SPSSODescriptor>
要素内の <AttributeConsumingService>
要素内の <RequestedAttribute>
要素を用いて SP が必須とする、もしくは希望する属性を定義できます。 <RequestedAttribute>
要素は下記の属性を持ちます:
- isRequired (optional)
- SPによって必須である、もしくは希望する属性を示すブーリアン値。
デフォルト値: false (希望する)。
- SPによって必須である、もしくは希望する属性を示すブーリアン値。
2.1.1 属性の説明
<RequestedAttribute>
要素に以下の属性を記述して、属性の説明文を定義できます。定義した説明文は、uApprove.jp の viewer アプリケーションによって表示されます。
- uajpmd:description (optional)
- 属性の説明文。
<uajpmd:RequestedAttributeExtension>
要素を用いると、複数の言語で説明文を定義することができます。 <uajpmd:RequestedAttributeExtension>
要素の定義は uajpmd:description
属性の定義に優先します。 <uajpmd:RequestedAttributeExtension>
要素は <SPSSODescriptor>
要素の子要素 <Extensions>
に記述します。
<uajpmd:RequestedAttributeExtension>
要素には以下の属性が必要です。
- uajpmd:FriendlyName
- 関連づけたい
<RequestedAttribute>
要素のFriendlyName
属性の値と同じ値を記述します。
- 関連づけたい
説明文は <uajpmd:Description>
要素に記述します。<uajpmd:RequestedAttributeExtension>
要素は一つ以上の <uajpmd:Description>
要素をもつことができます。
<uajpmd:Description>
要素には以下の属性が必要です。
- uajpmd:FriendlyName
- 関連づけたい
<RequestedAttribute>
要素のFriendlyName
属性の値と同じ値を記述します。
- 関連づけたい
<AttributeConsumingService>
要素の例を下記に示します:
パネル |
---|
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|