Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

de:shibidp3activationcondition [2017/08/18 15:02]
Martin Lunze angelegt
de:shibidp3activationcondition [2017/08/18 15:20] (aktuell)
Martin Lunze
Zeile 32: Zeile 32:
  </​constructor-arg>​  </​constructor-arg>​
  </​bean>​  </​bean>​
 + </​constructor-arg>​
 + </​bean>​
 +
 + # Die Angabe einer ActivationCondition führt hier leider nicht dazu, dass die LDAP-Abfragen nur gestellt werden, wenn der SP in der Condition steht
 + # Sondern:
 + # - Das Attribut wird nämlich erst gebaut (LDAP-Abfrage) und erst danach greift die Condition und regelt die Weitergabe des Attributs an die Filter
 + # - Die Condition MUSS daher auch an die groupLDAP-Dependency (DataConnector) gehangen werden, um die Ausführung der LDAP-Anfragen zu steuern
 + #
 + <bean id="​SP-consumes-isMemberOf"​ parent="​shibboleth.Conditions.RelyingPartyId">​
 + <​constructor-arg name="​candidates">​
 + <​list>​
 + <​value>​https://​your.other.sp.de/​shibboleth</​value>​
 + </​list>​
  </​constructor-arg>​  </​constructor-arg>​
  </​bean>​  </​bean>​
Zeile 83: Zeile 96:
  <​AttributeEncoder xsi:​type="​SAML2String"​ name="​urn:​oid:​1.3.6.1.4.1.5923.1.5.1.1"​ friendlyName="​isMemberOf"​ />  <​AttributeEncoder xsi:​type="​SAML2String"​ name="​urn:​oid:​1.3.6.1.4.1.5923.1.5.1.1"​ friendlyName="​isMemberOf"​ />
  </​AttributeDefinition>​  </​AttributeDefinition>​
 +
 + <​AttributeDefinition xsi:​type="​Simple"​ id="​isMemberOf"​ sourceAttributeID="​cn"​ activationConditionRef="​SP-consumes-isMemberOf">​
 + <​Dependency ref="​groupLDAP"​ />
 + <​DisplayName xml:​lang="​de">​Gruppe</​DisplayName>​
 + <​DisplayName xml:​lang="​en">​Group</​DisplayName>​
 + <​DisplayDescription xml:​lang="​de">​Name der Gruppe zu der der Nutzer gehört</​DisplayDescription>​
 + <​DisplayDescription xml:​lang="​en">​Name of group with which the person is associated</​DisplayDescription>​
 + <​AttributeEncoder xsi:​type="​SAML1String"​ name="​urn:​mace:​dir:​attribute-def:​isMemberOf"​ />
 + <​AttributeEncoder xsi:​type="​SAML2String"​ name="​urn:​oid:​1.3.6.1.4.1.5923.1.5.1.1"​ friendlyName="​isMemberOf"​ />
 + </​AttributeDefinition>​
 +
 + # Gruppen werden so definiert, dass Sie ein oder mehrere Entitlements erhalten, die Aussage darüber geben an welchen SP diese gerichtet sind
 + #
 + # student, groups, tu-dresden.de
 + # dn: cn=student,​ou=groups,​dc=tu-dresden,​dc=de
 + #​ objectClass:​ top
 + #​ objectClass:​ posixGroup
 + #​ objectClass:​ eduPerson
 + # cn: student
 + #​ gidNumber:​ 345
 + #​ memberUid:​ stud
 + #​ eduPersonEntitlement:​ https://​your.other.sp.de/​shibboleth
 + #
 + # Bei dem beschriebenen Vorgehen werden nur die Gruppen aus LDAP heraus gesucht, in denen der Nutzer Mitglied ist und die für den SP bestimmt sind
 + # Damit ist sichergestellt,​ dass nicht alle SPs alle Gruppen erhalten
 + # Dabei soll zusätzlich gewährleistet sein, dass LDAP nur dann nach Gruppen gefragt wird, wenn der SP diese auch wirklich freigegeben bekommen hat
 + # Somit werden unnötige LDAP-Abfragen bei allen Logins an anderen SPs vermieden
 + #
 + <​DataConnector id="​groupLDAP"​ xsi:​type="​LDAPDirectory"​ activationConditionRef="​SP-consumes-isMemberOf"​
 + ldapURL="​%{idp.attribute.resolver.LDAP.ldapURL}"​
 + baseDN="​%{idp.attribute.resolver.LDAP.groupsDN}"​
 + principal="​%{idp.attribute.resolver.LDAP.bindDN}"​
 + principalCredential="​%{idp.attribute.resolver.LDAP.bindDNCredential}"​
 + searchScope="​ONELEVEL"​
 + maxResultSize="​0">​
 + <​FilterTemplate>​
 + <​![CDATA[
 + (&​(eduPersonEntitlement=$resolutionContext.attributeRecipientID)(memberUid=$resolutionContext.principal))
 + ]]>
 + </​FilterTemplate>​
 + </​DataConnector>​
 <!-- ... --> <!-- ... -->
 </​file>​ </​file>​
  • Zuletzt geändert: vor 23 Monaten