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

[upki-fed:01098] Re: Shibboleth IdPのShibboleth SP化について



宇羅様

ありがとうございます。

やはりその手ですかね…ということで、
うちのIdPのcontext-checkは二重否定ロジックの構成なので、

              <bean id="shibboleth.context-check.Condition" parent="shibboleth.Conditions.NOT">
                <constructor-arg>
                  <list>
                    <bean class="net.shibboleth.idp.profile.logic.SimpleAttributePredicate"
                          p:useUnfilteredAttributes="true">
                      <property name="attributeValueMap">
                        <map>
                          <entry key="eduPersonAffiliation">
                            <list>
                              <value>faculty</value>
                              <value>student</value>
                              <value>staff</value>
                            </list>
                          </entry>
                        </map>
                      </property>
                    </bean>
                  </list>
                </constructor-arg>
              </bean>

という感じのロジックをORに追加してみたところ、
LDAPに不在のユーザはきちんとIdPで止まるようになりました。

もうちょっと別の属性で条件を書いてもいいかもしれませんが、
とりあえずテストとしては成功ということで。

ちなみにログは

2016-11-29 09:32:15,581 - ERROR [net.shibboleth.idp.profile.impl.ResolveAttributes:257] - Profile Action ResolveAttributes: Error resolving attributes
net.shibboleth.idp.attribute.resolver.NoResultAnErrorResolutionException: No entries returned from search
	at net.shibboleth.idp.attribute.resolver.dc.ldap.impl.StringAttributeValueMappingStrategy.map(StringAttributeValueMappingStrategy.java:62)
2016-11-29 09:32:15,604 - WARN [net.shibboleth.idp.profile.logic.AbstractAttributePredicate:88] - No AttributeContext located for evaluation
2016-11-29 09:32:15,633 - WARN [org.opensaml.profile.action.impl.LogEvent:76] - An error event occurred while processing the request: ContextCheckDenied

のような感じになります。これで大きな問題なく使えそうですね。

皆様、有用な情報ありがとうございました!

細川

On 2016/11/28 18:48, URA Hiroshi wrote:
細川様

Mon, 28 Nov 2016 17:04:09 +0900, Tatsumi Hosokawa <xxxxxxxx@xxxxxxxxxxxxxx> said:

残念ながら動作は変わらないようです。

2016-11-28 17:02:43,459 - ERROR
[net.shibboleth.idp.profile.impl.ResolveAttributes:257] - Profile
Action ResolveAttributes: Error resolving attributes
net.shibboleth.idp.attribute.resolver.NoResultAnErrorResolutionException:
No entries returned from search
	at
	net.shibboleth.idp.attribute.resolver.dc.ldap.impl.StringAttributeValueMappingStrategy.map(StringAttributeValueMappingStrategy.java:62)
2016-11-28 17:02:44,779 - WARN
[net.shibboleth.idp.consent.flow.ar.impl.AbstractAttributeReleaseAction:155]
- Profile Action PopulateAttributeReleaseContext: Unable to locate
attribute context

のようなエラーは出るのですが、SPにはリダイレクトされてしまうようです。

なるほど、LDAPConnector自体はエラーとなるが、SPへの属性送信には影響が
ないのですね。

context-check-intercept-config.xmlで、属性を持っているユーザのみ属性
送信を許可するでしょうか。

  https://wiki.shibboleth.net/confluence/display/IDP30/ActivationConditions#ActivationConditions-AttributeChecking

  <!-- Check that an eduPersonPrincipalName exists -->
  <bean class="net.shibboleth.idp.profile.logic.SimpleAttributePredicate">
      <property name="attributeValueMap">
          <map>
              <entry key="eppn">
                  <list>
                      <value>*</value>
                  </list>
              </entry>
          </map>
      </property>
  </bean>


--
宇羅 博志 (URA Hiroshi) / xxx@xxxxxxxxxx
株式会社 創夢 / tel: 03-5453-1251 fax: 03-5453-1252



--
慶應義塾ITC本部  細川達己  xxxxxxxx@xxxxxxxxxxxxxx
Tel. 03-5427-1685  Fax. 03-5427-1722