[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[upki-fed:01013] Shibboleth IdP 3におけるFPSP相当機能の条件記述について
- Subject: [upki-fed:01013] Shibboleth IdP 3におけるFPSP相当機能の条件記述について
- Date: Fri, 5 Feb 2016 18:15:17 +0900
- From: Tatsumi Hosokawa <xxxxxxxx@xxxxxxxxxxxxxx>
慶應義塾ITC本部の細川です。
現在、
https://meatwiki.nii.ac.jp/confluence/pages/viewpage.action?pageId=20021272
あたりを見ながら、FPSP対応の学認IdPをShibboleth 3.2.1に移行する実験をしているのですが、
conf/intercept/context-check-intercept.xml での条件の書き方に悩んでいます。
たとえば、
entityID-A: edupersonAffiliation が faculty または staff
entityID-B: edupersonAffiliation が faculty
その他: 制限なし
の条件でフィルタしたいと思った場合、とりあえず次のように書いてみたのですが、動いていそうな雰囲気です。
<bean id="shibboleth.context-check.Condition" parent="shibboleth.Conditions.OR">
<constructor-arg>
<list>
<bean id="shibboleth.context-check.Condition" parent="shibboleth.Conditions.AND">
<constructor-arg>
<list>
<bean parent="shibboleth.Conditions.RelyingPartyId" c:candidates="#{ 'entityID-A' }" />
<bean class="net.shibboleth.idp.profile.logic.SimpleAttributePredicate"
p:useUnfilteredAttributes="true">
<property name="attributeValueMap">
<map>
<entry key="eduPersonAffiliation">
<list>
<value>faculty</value>
<value>staff</value>
</list>
</entry>
</map>
</property>
</bean>
</list>
</constructor-arg>
</bean>
<bean id="shibboleth.context-check.Condition" parent="shibboleth.Conditions.AND">
<constructor-arg>
<list>
<bean parent="shibboleth.Conditions.RelyingPartyId" c:candidates="#{ 'entityID-B' }" />
<bean class="net.shibboleth.idp.profile.logic.SimpleAttributePredicate"
p:useUnfilteredAttributes="true">
<property name="attributeValueMap">
<map>
<entry key="eduPersonAffiliation">
<list>
<value>faculty</value>
</list>
</entry>
</map>
</property>
</bean>
</list>
</constructor-arg>
</bean>
<bean id="shibboleth.context-check.Condition" parent="shibboleth.Conditions.NOT">
<constructor-arg>
<list>
<bean parent="shibboleth.Conditions.RelyingPartyId" c:candidates="#{{ 'entityID-A', 'entityID-B' }}" />
</list>
</constructor-arg>
</bean>
</list>
</constructor-arg>
</bean>
この場合、「その他」を表す部分である、
<bean id="shibboleth.context-check.Condition" parent="shibboleth.Conditions.NOT">
<constructor-arg>
<list>
<bean parent="shibboleth.Conditions.RelyingPartyId" c:candidates="#{{ 'entityID-A', 'entityID-B' }}" />
</list>
</constructor-arg>
</bean>
がないとやはり動作しなかった(「その他」のSPが全部利用できなくなる)のですが、
ここの記述にも最初の条件の2つのentityIDが存在していて、
ちょっと綺麗じゃないな(後日メンテナンス時に忘れそうで怖い…)的な印象を持ちました。
これはこのように書くのがやはり適切なのでしょうか、それとももっとシンプルな書き方があるのでしょうか?
もしご存知の方、いらっしゃいましたらご教授いただけますでしょうか。
よろしくお願いいたします。
--
慶應義塾ITC本部 細川達己 xxxxxxxx@xxxxxxxxxxxxxx
Tel. 03-5427-1685 Fax. 03-5427-1722