Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp3attributes-publishers [2019/07/04 11:10] Silke Meyerde:shibidp:config-attributes-publishers [2023/12/05 09:42] (aktuell) Gerrit Gragert
Zeile 1: Zeile 1:
-====== Attribut-Configuration für (kommerzielle) Verlagsanbieter =====+====== Attributfreigaben für Verlagsanbieter =====
 +(zurück zur [[de:shibidp:config-attributes#haeufig_genutzte_service_provider|Übersicht]])
  
-Sofern Ihre Hochschule (oder meist die Bibliothek der Hochschule) Lizenzverträge mit kommerziellen Verlagsanbietern abgeschlossen hat ist es mittlerweile möglich statt der unkomfortablen IP-basierten +Viele kommerzielle Verlagsanbieter bieten inzwischen eine Anmeldung über SAML an, also über die DFN-AAI oder eduGAIN. Sie haben sich dazu auf **einheitliche Attributanforderungen** geeinigtso dass Sie mit einer einzigen Konfiguration am IdP alle großen Verlagsanbieter auf einmal abdecken können. Die Voraussetzung dafür ist meist ein Lizenzvertrag zwischen Ihrer Hochschule bzw. Bibliothek und dem Anbieter.
-Autorisierung auch einen Login per SAML/AAI zu nutzenbei den Anbietern übrigends oft auch etwas missverständlich "Shibboleth"-Login genannt (das ist so als ob man statt von "Web-Seiten" von "Apache-Seiten" reden würde).+
  
-Glücklicherweise haben sich die Anbieter im Verlagsbereich schon seit geraumer Zeit auf einheitliche Attributanforderungen geeinigt, so dass Sie mit einer einzigen Konfiguration am IdP alle großen Verlagsanbieter auf einmal "erschlagen"+Dennoch sollten Sie die Anbieter einzeln darüber zu informieren, dass Sie den SAML-basierten Zugriff nutzen wollen. Bei manchen kann man dies online aktivieren, bei anderen wenden Sie sich bitte an die Kontaktperson des Verlags.
- +
-** Wichtig: trotzdem bleibt es Ihnen nicht erspart, alle Anbieter einzeln darüber zu informieren, dass Sie jetzt einen SAML-fähigen IdP betreiben und diesen gerne für den Zugriff nutzen wollen. Bei manchen Anbietern kann man dies online aktivieren, andere müssen auf anderen Wegen kontaktiert werden. Klären Sie das bitte mit der jeweiligen Kontaktperson des Verlages**+
  
 Die Verlage erwarten im Normalfall eines von zwei Attributen: Die Verlage erwarten im Normalfall eines von zwei Attributen:
  
-  * Zugehörigkeit des Users: eduPersonScopedAffiliation mit dem Wert "member@SCOPE" +  * Zugehörigkeit des Users: ''eduPersonScopedAffiliation'' mit dem Wert "member@SCOPE" 
-  * Berechtigung des Users: eduPersonEntitlement mit dem Wert "urn:mace:dir:common-lib-terms"+  * Berechtigung des Users: ''eduPersonEntitlement'' mit dem Wert "urn:mace:dir:common-lib-terms" 
 + 
 +<callout color="#ff9900" title="Welche Gruppen bekommen Zugriff?"> 
 +Ihr Lizenzvertrag oder ggf. das Landeshochschulgesetz Ihres Bundeslandes geben Auskunft darüber, welche Gruppen welche Berechtigungen bekommen. 
 +</callout> 
 + 
 +Eine Orientierung für die Attributfreigaben bietet auch die Gruppe FIM4L (Federated Identity Management For Libraries) https://www.fim4l.org/ mit ihren Principles and Recommendation. 
 + 
 +===== Beispiel =====
  
-Im ersten Moment erscheint es vielleicht naheliegenddas IdM-Scheme um das eduPerson-Schema zu +Wir zeigen im Folgenden eine Beispielkonfigurationdie **im IdM vorhandene Gruppen** nutzt, um diese beiden Attribute IdP-seitig zu befüllen und freizugebenIm Beispiel gibt es folgende Gruppen:
-erweitern, um dann jedem vorhandenen User die entsprechende Zugehörigkeit und Berechtigung +
-im IdM zu geben.+
  
-Da die Usergruppen im IdM-System in den allermeisten Fällen schon unterscheidbar +^ Gruppe          ^ memberOf ^ 
-angelegt sind (z.B. Studenten, Angestellte, ProfessorenGäste in einzelnen Teilbäumen oder zumindest +Angestellte     | cn=angestellte,ou=users,dc=beispiel-uni,dc=de | 
-in eigenen "memberOfs") ist es viel eleganter diese schon vorhandene Gruppeninformatition zu nutzen+| Studierende A   | cn=studiengang A,ou=users,dc=beispiel-uni,dc=de | 
-um im idP "on-the-fly" die nötigen Werte für eduPersonScopedAffiliation und eduPersonEntitliment +| Studierende B   | cn=studiengang B,ou=users,dc=beispiel-uni,dc=de | 
-zu erzeugen. Der große Vorteil dieser Methode istdass Ihr IdM-System nicht erweitert werden +| Professor*innen | cn=profs,ou=users,dc=beispiel-uni,dc=de | 
-muss und z.B. Eingabemasken für IdM-Sachbearbeiter nicht modifiziert werden müssen.+| Gäste           | cn=gaeste,ou=users,dc=beispiel-uni,dc=de |
  
-Wir gehen von einem Beispiel-IdM ausin dem es folgende Gruppen gibt:+Es soll erreicht werdendass die ersten vier Gruppen als Angehörige der Einrichtung die Verlagsressourcen nutzen dürfen, Gäste dagegen nicht.
  
-^ Gruppe      ^ memberOf ^ +==== Attributdefinition im upgegradeten IdP 4.x ====
-| Angestellte | cn=angestellte,ou=users,dc=beispiel-uni,dc=de | +
-| Studenten A | cn=studiengang A,ou=users,dc=beispiel-uni,dc=de | +
-| Studenten B | cn=studiengang B,ou=users,dc=beispiel-uni,dc=de | +
-| Professoren | cn=professoren,ou=users,dc=beispiel-uni,dc=de | +
-| Gäste       | cn=gaeste,ou=users,dc=beispiel-uni,dc=de |+
  
-Beispielhaft solle die ersten drei Gruppen im Sinne des Landshochschulgesetzes als "Angehörige" (="member"der Einrichtung anzusehen sein, die Gruppe "Gäste" dagegen nicht und ist somit nicht nutzungsberechtigt. +In aktualisierten IdP 4.x mit der alten Syntax/ohne die Attribute Registry machen Sie es so:
-**Bitte konsultieren Sie für Ihren konkreten Fall den Lizenzvertrag mit dem Anbieter und ggfs. das LHG Ihres Bundeslandes um festzustellen welche Gruppen welche Berechtigungen bekommen sollen!**+
  
 <file xml ./conf/attribute-resolver.xml> <file xml ./conf/attribute-resolver.xml>
Zeile 46: Zeile 44:
    <DisplayDescription xml:lang="en">Type of affiliation with Home Organization</DisplayDescription>    <DisplayDescription xml:lang="en">Type of affiliation with Home Organization</DisplayDescription>
    <DisplayDescription xml:lang="de">Art der Zugehörigkeit zur Heimateinrichtung</DisplayDescription>    <DisplayDescription xml:lang="de">Art der Zugehörigkeit zur Heimateinrichtung</DisplayDescription>
-  <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:eduPersonAffiliation" /> 
   <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1" friendlyName="eduPersonAffiliation" />   <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1" friendlyName="eduPersonAffiliation" />
  
Zeile 71: Zeile 68:
      <SourceValue ignoreCase="true">cn=professoren,.+</SourceValue>      <SourceValue ignoreCase="true">cn=professoren,.+</SourceValue>
    </ValueMap>    </ValueMap>
- 
  </AttributeDefinition>  </AttributeDefinition>
  
Zeile 81: Zeile 77:
    <DisplayDescription xml:lang="en">Type of affiliation with Home Organization with scope</DisplayDescription>    <DisplayDescription xml:lang="en">Type of affiliation with Home Organization with scope</DisplayDescription>
    <DisplayDescription xml:lang="de">Art der Zugehörigkeit zur Heimateinrichtung mit Geltungsbereich</DisplayDescription>    <DisplayDescription xml:lang="de">Art der Zugehörigkeit zur Heimateinrichtung mit Geltungsbereich</DisplayDescription>
-   <AttributeEncoder xsi:type="SAML1ScopedString" name="urn:mace:dir:attribute-def:eduPersonScopedAffiliation" encodeType="false" /> 
    <AttributeEncoder xsi:type="SAML2ScopedString" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.9" friendlyName="eduPersonScopedAffiliation" encodeType="false" />    <AttributeEncoder xsi:type="SAML2ScopedString" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.9" friendlyName="eduPersonScopedAffiliation" encodeType="false" />
  </AttributeDefinition>  </AttributeDefinition>
Zeile 92: Zeile 87:
    <DisplayDescription xml:lang="en">URI that indicates a set of rights to specific resources</DisplayDescription>    <DisplayDescription xml:lang="en">URI that indicates a set of rights to specific resources</DisplayDescription>
    <DisplayDescription xml:lang="de">Zeichenkette, die Rechte für spezifische Ressourcen beschreibt</DisplayDescription>    <DisplayDescription xml:lang="de">Zeichenkette, die Rechte für spezifische Ressourcen beschreibt</DisplayDescription>
-   <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> 
    <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" />    <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" />
    <Script>    <Script>
Zeile 102: Zeile 96:
    </Script>    </Script>
  </AttributeDefinition>  </AttributeDefinition>
 +</file>
  
 +==== Attributdefinition im IdP 4.x ====
 +
 +In **Neu**installationen des IdP 4.x ist die Datei übersichtlicher gestaltet:
 +
 +<file xml ./conf/attribute-resolver.xml>
 +
 + <!-- eduPersonAffiliaton aus dem 'memberof' herausholen -->
 +    
 + <AttributeDefinition xsi:type="Mapped" id="eduPersonAffiliation">
 +  <InputDataConnector ref="myLDAP" attributeNames="memberOf"/>
 +
 +   <!-- default 'affiliate', damit immer mindestens ein Wert vorhanden ist -->
 +   <DefaultValue>affiliate</DefaultValue>
 +
 +   <!-- Mapping der Gruppen aus dem IdM jede Gruppe bekommt eine eigene eduPersonAffiliation
 +   und zusätzlich "member" sofern "Angehörige" im Sinne LHG -->
 +
 +   <ValueMap>
 +     <ReturnValue>student</ReturnValue>
 +     <SourceValue ignoreCase="true">cn=studiengang.+</SourceValue>
 +   </ValueMap>
 +   <ValueMap>
 +     <ReturnValue>staff</ReturnValue>
 +     <SourceValue ignoreCase="true">cn=angestellte,.+</SourceValue>
 +     <SourceValue ignoreCase="true">cn=professoren,.+</SourceValue>
 +   </ValueMap>
 +
 +   <ValueMap>
 +     <ReturnValue>member</ReturnValue>
 +     <SourceValue ignoreCase="true">cn=studiengang.+</SourceValue>
 +     <SourceValue ignoreCase="true">cn=angestellte,.+</SourceValue>
 +     <SourceValue ignoreCase="true">cn=professoren,.+</SourceValue>
 +   </ValueMap>
 + </AttributeDefinition>
 +
 + <!-- eduPersonScopedAffiliation aus eduPersonAffiliation bilden -->
 + <AttributeDefinition xsi:type="Scoped" id="eduPersonScopedAffiliation" scope="%{idp.scope}">
 +   <InputAttributeDefinition ref="eduPersonAffiliation"/>
 + </AttributeDefinition>
 +
 + <!-- eduPersonEntitlement je nach eduPersonAffiliation setzen -->
 + <AttributeDefinition xsi:type="ScriptedAttribute" id="eduPersonEntitlement">
 +   <InputAttributeDefinition ref="eduPersonAffiliation" />
 +   <Script>
 +          <![CDATA[
 +              if (eduPersonAffiliation.getValues().contains("member")) {
 +                      eduPersonEntitlement.getValues().add("urn:mace:dir:entitlement:common-lib-terms");
 +              }
 +           ]]>
 +   </Script>
 + </AttributeDefinition>
 </file> </file>
 +
 +==== Attributfreigabe ====
  
 <file xml ./conf/attribute-filter.xml> <file xml ./conf/attribute-filter.xml>
-    <!-- Anonyme Angaben können an alle SP freigegeben werden+    <!-- Anonyme Angaben an alle SPs freigeben werden -->
-        damit sind fast alle Verlags-SPs in der Föderation schon zufrieden -->+
     <AttributeFilterPolicy id="LibraryTermsToAnyone">     <AttributeFilterPolicy id="LibraryTermsToAnyone">
         <PolicyRequirementRule xsi:type="ANY" />         <PolicyRequirementRule xsi:type="ANY" />
Zeile 121: Zeile 168:
         </PermitValueRule>         </PermitValueRule>
       </AttributeRule>       </AttributeRule>
- 
     </AttributeFilterPolicy>     </AttributeFilterPolicy>
 </file> </file>
 +
 +{{tag>idp4}}
  • Zuletzt geändert: vor 5 Jahren