このページの古いバージョンを表示しています。現在のバージョンを表示します。

現在のバージョンとの相違点 ページ履歴を表示

« 前のバージョン バージョン 25 次のバージョン »

1. はじめに

本メニューでは、IdPをカスタマイズします。
uApproveJP-3をインストールして実現します。
送信属性の設定をオプショナルとしたり、また必須属性と設定するなど組み込み機能と比べ
柔軟な設定が可能となっています。 



2. 実習セミナーでは

一般的な手順は「3. 手順書」に記載されています。ただし、本実習セミナー特有の設定内容等を以下に記載しています。
両方を参照しつつ作業を進めてください。

・前提条件

実習セミナーでは、リレーショナルデータベースを用いたものとします。
事前準備として、以下のようにCentOS 7の標準であるmariaDBをインストールし、
起動させておいてください。

# yum install mariadb-server
# systemctl start mariadb

なお、実習では不要ですが実運用の場合は以下を実行してください。
(OS起動時の自動起動および、rootアカウントにパスワードを設定します)

# systemctl enable mariadb
# mysql_secure_installation

・インストール

uApproveJPのパッケージは、「3.手順書」に記載されていますが、以下の例のように実習セミナー用の
DSサーバからダウンロードします。(wgetコマンドでバイナリファイルのパッケージを取得)

例)最新版が3.2.0の場合
# wget https://ex-ds.gakunin.nii.ac.jp/uApproveJP-3.2.0-bin.zip

手順書の記載に合わせて「/usr/local/src」配下に展開しておきます。
# unzip -d /usr/local/src uApproveJP-3.2.0-bin.zip
以降、手順書中の $UAPPROVE_INSTALL$ の部分は /usr/local/src/uApproveJP-3.2.0/ と読み替えてください。

・CentOS 7環境に合わせたMySQLDataSourceの設定

手順書内にある「2.1.5. shibboleth.JPAStorageServiceの設定」の設定内容が一部CentOS 7対応で
変更する必要があります。手順書に沿って変更した後に、以下の部分のみ再度変更してください。

/opt/shibboleth-idp/conf/global.xmlを編集します。

<bean id="shibboleth.MySQLDataSource"
      class="org.apache.commons.dbcp.BasicDataSource"
      p:driverClassName="com.mysql.jdbc.Driver"
      p:url="jdbc:mysql://localhost:3306/shibboleth"
      p:username="shibboleth"

・ローカライズ(日本語環境用メッセージファイル)

手順書内にある「2.3 ローカライズ」の日本語環境用のメッセージファイルテンプレートは以下のURLの
ページにリンクがあるので、そこからダウンロードしてください。

※実習セミナーではIdP3.2.1を使っていますので、IdP3.2用の3ファイルをダウンロードします。

例)IdP3.2の場合
# cd /opt/shibboleth-idp/messages/

# wget https://wiki.shibboleth.net/confluence/download/attachments/21660022/authn-messages_ja.properties
# wget https://wiki.shibboleth.net/confluence/download/attachments/21660022/consent-messages_ja.properties
# wget https://wiki.shibboleth.net/confluence/download/attachments/21660022/error-messages_ja.properties

・AttributeInMetadataマッチングルール

/opt/shibboleth-idp/conf/attribute-filter.xmlを設定します。

AttributeFilterPolicyGroupタグにuApproveJP用の設定を2箇所に追加します。

<AttributeFilterPolicyGroup id="ShibbolethFilterPolicyForGakuNinTestFed"
        xmlns="urn:mace:shibboleth:2.0:afp"
        xmlns:afp="urn:mace:shibboleth:2.0:afp"
        xmlns:basic="urn:mace:shibboleth:2.0:afp:mf:basic"
        xmlns:saml="urn:mace:shibboleth:2.0:afp:mf:saml"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:uajpmf="http://www.gakunin.jp/ns/uapprove-jp/afp/mf"
        xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd
                            urn:mace:shibboleth:2.0:afp:mf:basic http://shibboleth.net/schema/idp/shibboleth-afp-mf-basic.xsd
                            urn:mace:shibboleth:2.0:afp:mf:saml http://shibboleth.net/schema/idp/shibboleth-afp-mf-saml.xsd
                            http://www.gakunin.jp/ns/uapprove-jp/afp/mf http://gakunin.jp/schema/idp/gakunin-afp-mf-uapprovejp.xsd">

実習セミナーでは、「surname、givenName、mail、eduPersonAffiliation」をオプショナル属性とします。
以下のように4つの属性を全て変更してください。
例)surname属性の設定
<AttributeRule attributeID="surname">
   <PermitValueRule xsi:type="uajpmf:AttributeInMetadata"
                               matchIfMetadataSilent="true"
                               
onlyIfRequired="false"
                               
onlyIfChecked="true" />
</AttributeRule>

・Tomcatの再起動

Tomcatを再起動して、更新した設定ファイルを読み込ませます。

# systemctl restart tomcat

 


3. 手順書

下記の設定手順書を参照し、作業を行います。
※リンク先のページを開くと、「インストールおよび設定方法」と記載されたリンクがあるので、
 そのリンクをクリックしてください。
※「1 基本的なデプロイ」から「2.3 ローカライズ」内の「カスタムメッセージ」まで行います。ただし「1.5 カスタムテンプレート」および「2.2 テンプレート」は、読み飛ばしてください。
※「2.4 AttributeInMetadataマッチングルール」については、上記実習セミナーの設定を行います。
※手順書内に記載されているtomcat再起動のコマンドは、CentOS 7のものに置き換えてください。
 (「2.実習セミナーでは」の「tomcat再起動」を参照)

※補足:属性選択画面の必須属性とオプショナル属性について
 uApproveJPでは、IdP側の設定(conf/attribute-filter.xmlの<PermitValueRule xsi:type="uajpmf:AttributeInMetadata" onlyIfChecked="true">)と
 SPメタデータの設定(//md:SPSSODescriptor/md:AttributeConsumingService/md:RequestedAttribute)に基づいて属性を必須かオプショナルにわけられます。(詳細は後述)
 オプショナル属性はチェックボックスによりユーザに属性の送信を委ねます。必須属性はユーザによる属性毎送信拒否の設定が行えません(チェックボックスにチェックが入った状態でグレーアウトしています)。
 また、IdP側の設定にある<PermitValueRule xsi:type="uajpmf:AttributeInMetadata" onlyIfChecked="true">以外のルールで、送信が許可された属性は全て
 必須属性となります。ここで「<PermitValueRule ...>以外」とは、onlyIfChecked="false"の場合の他、xsi:type="ANY"等のルールも含まれます。

PermitValueRuleに与える設定と属性選択画面の表示の組み合わせを表にすると、以下のようになります。



 

 

 

SPメタデータ 

<md:AttributeConsumingService>
なし

<md:AttributeConsumingService>
あり

<md:RequestedAttribute>
なし

<md:RequestedAttribute>
あり

isRequired="false"isRequired="true"

IdP

設定

(attribute-filter)

<PermitValueRule
xsi:type="uajpmf:AttributeInMetadata"
onlyIfChecked="true">

onlyIfRequired="false"
matchIfMetadataSilent="false"

表示しない表示しないオプショナル属性必須属性

onlyIfRequired="false"
matchIfMetadataSilent="true"

オプショナル属性表示しないオプショナル属性必須属性

onlyIfRequired="true"
matchIfMetadataSilent="true"

オプショナル属性表示しない表示しない必須属性

onlyIfRequired="true"
matchIfMetadataSilent="false"

表示しない表示しない表示しない必須属性

<PermitValueRule
xsi:type="uajpmf:AttributeInMetadata"
onlyIfChecked="true"> 以外

必須属性必須属性必須属性必須属性

 

 

 


4. 動作確認

① 設定後、Tomcatの再起動を行ってない場合は行なってください。

systemctl restart tomcat

② 各自が使用するSPの接続確認用ページにアクセスします。

例)1番を割り振られた場合 https://ex-sp-test01.gakunin.nii.ac.jp/

③ ログインボタンをクリックします。

④ DSの所属機関の選択画面が表示されるので、各自が使用するIdPを選択します。

⑤ IdPのログイン画面が表示されるので、Username/Passwordを入力して認証を行います。

⑥ 送信可能な属性値の一覧画面が表示されます。オプショナル属性と指定したsurname、givenName、mail、eduPersonAffiliation
 のみ選択できるチェックボックスが表示され、その他の属性にはチェックの入ったチェックボックスが
 グレーアウトして表示され、チェック解除できないことを確認してください。
 次に、「次回ログイン時に再度チェックします。」を選択し、同意ボタンをクリックします。
 ※オプション情報を全て選択せずに行います。(surname、givenName、mail、eduPersonAffiliation)

⑦ 属性受信の確認ページが表示されるので、オプション情報の属性が送信されていない事を確認します。

⑧ 一旦ブラウザを閉じ、再度ログインします。オプション情報の「surname」を選択し、同意ボタンを
 クリックします。

⑨ 属性受信の確認ページで「surname」が正しく受信された事を確認してください。

※送信可能な属性値の一覧画面にある「同意方法の選択」を「このサービスに送信する情報が
 変わった場合は、再度チェックします。」などに変更して、次回も送信属性同意確認が行われるか、
 試してみてください。(同意確認時の設定が保存されます)
 保存した対象となるSPにアクセスしても同意確認が行われなくなるのですが、ログイン画面にて
 「このサービスへの属性送信の同意を取り消します。」にチェックしてログインしてください。
 すると、保存されていた情報がクリアされ、再度送信属性確認が行われます。

※送信属性の同意情報は、組み込み機能と違いサーバ側(リレーショナルデータベース)に保存している為、
 はじめに認証し同意情報を保存したブラウザと違うものを使用しても、Firefoxで言うCookieなどが保存
 されないプライベートウィンドウを使用しても、保存した情報が有効になります。
 (どこからアクセスしても、同一ユーザが同一サービスに対して保存した同意情報が有効)
 ⑨まで確認できたら、IEやFirefoxのプライベートウィンドウを使うなどして、保存した同意情報が有効であるか
 確認してみてください。 

  Parent Page  

  • ラベルがありません