[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[upki-fed:01014] Re: Shibboleth IdP 3におけるFPSP相当機能の条件記述について



NIIの西村です。

> この場合、「その他」を表す部分である、
...
> がないとやはり動作しなかった(「その他」のSPが全部利用できなくなる)のですが、
> ここの記述にも最初の条件の2つのentityIDが存在していて、
> ちょっと綺麗じゃないな(後日メンテナンス時に忘れそうで怖い…)的な印象を持ちました。

実は私も気になっておりました。
単なる思い付きで恐縮ですが、各entityIDで拒否する条件を列挙して、全体のNOTをとるとか?

On 2016/02/05 18:15, Tatsumi Hosokawa wrote:
> 慶應義塾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が存在していて、
> ちょっと綺麗じゃないな(後日メンテナンス時に忘れそうで怖い…)的な印象を持ちました。
> 
> これはこのように書くのがやはり適切なのでしょうか、それとももっとシンプルな書き方があるのでしょうか?
> 
> もしご存知の方、いらっしゃいましたらご教授いただけますでしょうか。
> 
> よろしくお願いいたします。

-- 
西村健
国立情報学研究所 TEL:03-4212-2890