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
Nächste ÜberarbeitungBeide Seiten der Revision
de:shibidp3attributes [2017/02/24 16:00] – [Generell gilt] Raoul Gunnar Boreniusde:shibidp3attributes [2020/05/13 16:05] Silke Meyer
Zeile 1: Zeile 1:
-====== Attribute Erzeugung und Weitergabe in der DFN-AAI - Beispiele ======+====== Attribute - Generierung und Weitergabe in der DFN-AAI ====== 
 +Zum grundlegenden Verständnis der Attribut-Generierung, -Freigabe und -Übertragung empfehlen wir die Lektüre dieser [[https://download.aai.dfn.de/ws/2018_fhdo/attributes.pdf|Präsentation von einem der DFN-AAI Workshops]].
  
 Nachdem Ihr IdP im Produktiven Teil der DFN-AAI angekommen ist, müssen Sie für die SPs auf die Ihre User zugreifen sollen die entsprechenden Attribut-Freigaben konfigurieren. Auf den folgenden Sub-Seiten finden Sie einige Beispiele zu den üblichsten Konfigurationen in der DFN-AAI. Nachdem Ihr IdP im Produktiven Teil der DFN-AAI angekommen ist, müssen Sie für die SPs auf die Ihre User zugreifen sollen die entsprechenden Attribut-Freigaben konfigurieren. Auf den folgenden Sub-Seiten finden Sie einige Beispiele zu den üblichsten Konfigurationen in der DFN-AAI.
Zeile 8: Zeile 9:
 ==== Generell gilt ==== ==== Generell gilt ====
  
-  * bei den meisten SPs müssen Sie den SP-Betreiber erst kontaktieren bevor Ihre User Zugriff bekommen. Eine Attributfreigabe alleine reicht meist nicht aus, der Betreiber muss oft auch die entityID des IdPs bei sich auf eine Autorisierungsliste setzen.+  * bei vielen SPs müssen Sie den SP-Betreiber erst kontaktierenbevor Ihre User Zugriff bekommen. Eine Attributfreigabe alleine reicht nicht notwendigerweise aus, der Betreiber muss ggf. auch die entityID des IdP bei sich auf eine Autorisierungsliste setzen.
   * Informationen zu den SPs in der DFN-AAI finden Sie unter https://www.aai.dfn.de/verzeichnis/   * Informationen zu den SPs in der DFN-AAI finden Sie unter https://www.aai.dfn.de/verzeichnis/
-  * testen Sie die Attribut-Freigabe immer zuerst auch nochmal gegen die Test-SPs in der DFN-AAI-Test, dazu belassen Sie in der DFN-AAI-Metadatenverwaltung ihren IdP einfach in der Testumgebung. Der IdP kann problemlos gleichzeitig in der Testumgebung und der Produktivumgebung aktiv sein.+  * testen Sie die Attribut-Freigabe immer zuerst auch nochmal gegen die Test-SPs in der DFN-AAI-Test. Das machen Sie entweder 
 +    * auf einem identisch konfigurierten permanenten Development-System (sehr zu empfehlen!) 
 +    * oder auch mit Ihrem Produktiv-IdP den Sie dazu in der DFN-AAI-Metadatenverwaltung einfach in der Testumgebung belassen. Der IdP kann problemlos gleichzeitig in der Testumgebung und der Produktivumgebung aktiv sein.
   * in idp-audit.log vermerkt der IdP pro SP welche Attribute übertragen wurden   * in idp-audit.log vermerkt der IdP pro SP welche Attribute übertragen wurden
  
-==== Änderung in attribute-resolver.xml gegenüber IdP 2.x ====+=== Änderung in attribute-resolver.xml gegenüber IdP 2.x ===
  
   * [[https://wiki.shibboleth.net/confluence/display/IDP30/NameIDGenerationConfiguration|Name IDs]] werden hier nicht mehr konfiguriert   * [[https://wiki.shibboleth.net/confluence/display/IDP30/NameIDGenerationConfiguration|Name IDs]] werden hier nicht mehr konfiguriert
Zeile 20: Zeile 23:
   * Scripted AttributeDefinition - alles neu, unterschiedliche Scripting Engines für Java 7 und Java 8, siehe [[https://wiki.shibboleth.net/confluence/display/IDP30/ScriptedAttributeDefinition|Dokumentation im Shibboleth Wiki]] und [[https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJava1.8|Running the Rhino engine under Java 1.8]]   * Scripted AttributeDefinition - alles neu, unterschiedliche Scripting Engines für Java 7 und Java 8, siehe [[https://wiki.shibboleth.net/confluence/display/IDP30/ScriptedAttributeDefinition|Dokumentation im Shibboleth Wiki]] und [[https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJava1.8|Running the Rhino engine under Java 1.8]]
  
-===== DataConnector für IdP 2.x Computed ID ===== +=== Änderung in attribute-filter.xml gegenüber IdP 2.x ===
-Siehe unter [[de:shibidp3extdataconnector|Data Connector]].+
  
-===== Eindeutiger, pseudonymer Identifier - eduPersonUniqueId =====+  * [[https://wiki.shibboleth.net/confluence/display/IDP30/AttributeFilterLegacyNameSpaceMapping|Syntax vereinfacht]] (u.a. nur noch ein Namespace) 
 +  * Filtern von NameIDs (transientID und persistentID) enfällt.
  
-Im Kontext von Forschungsprojekten/-Infrastrukturen und Fachinformationsdiensten besteht häufig das Bedürfnisdienstspezifische Zugangsberechtigungen (Entitlements) für einzelne Personen oder Personengruppen zu vergeben. Da solche Informationen üblicherweise nicht im Identity Management System der jeweiligen Heimateinrichtung gepflegt werden können und/oder sollen, müssen zur Autorisierung weitere Attributquellen, sog. Attribute Authorities eingebunden werden, in denen Community- bzw. Projekt-spezifische Attribute verwaltet werden. Um das Mapping zwischen dem/der bei der jeweiligen Heimateinrichtung angemeldeten Nutzer(in) und diesen Attributen herzustellen ist ein global gültiger, eindeutiger Identifier erforderlich, z.B. eduPersonPrincipalName, eMail-Adresse oder [[http://macedir.org/specs/internet2-mace-dir-eduperson-201310.html#eduPersonUniqueId|eduPersonUniqueId]] (neu, 2013). Das letztgenannte Attribut hat den Vorteil, dass es sich um einen pseudonymen Identifier handelt, d.h. von SP-Seite aus kann nicht auf die dahinter liegende Identität rückgeschlossen werden.+Zum **grundlegenden Verständnis** des Zusammenspiels von AttributgenerierungWeitergabe und Verarbeitung siehe z.B. diese [[https://download.aai.dfn.de/ws/2019_hlm/attribute.pdf|Präsentation]].
  
-<file xml /opt/shibboleth-idp/conf/attribute-resolver.xml> +Siehe auch [[https://wiki.shibboleth.net/confluence/display/IDP30/AttributeFilterConfiguration|Dokumentation im Shibboleth Wiki]]
-<resolver:AttributeDefinition xsi:type="ad:Script" id="eduPersonUniqueId"> +
-    <resolver:Dependency ref="staticAttributes" /+
-    <resolver:Dependency ref="uid" /+
-    <resolver:DisplayName xml:lang="en">Unique ID</resolver:DisplayName> +
-    <resolver:DisplayName xml:lang="de">Eindeutige ID</resolver:DisplayName> +
-    <resolver:DisplayDescription xml:lang="en">Unique ID: A unique identifier  +
-       for a person, mainly for inter-institutional user identification</resolver:DisplayDescription> +
-    <resolver:DisplayDescription xml:lang="de">Eindeutige Nutzerkennung</resolver:DisplayDescription> +
-    <resolver:AttributeEncoder xsi:type="enc:SAML2String" +
-              name="urn:oid:1.3.6.1.4.1.5923.1.1.1.13" friendlyName="eduPersonUniqueId" /+
-    <ad:Script><![CDATA[ +
-        // Java 7: +
-        //importPackage(Packages.org.apache.commons.codec.digest); +
-        // Java 8: +
-        DigestUtils = Java.type("org.apache.commons.codec.digest.DigestUtils");+
  
-        // um Java-Versions-unabhängig zu sein wird das SAML-Attribut nicht +<callout color="#ff9900title="Beispiele"> 
-        // hier im Script initialisiert sondern per Static-Data-Connector +Die Beispiele finden Sie jetzt in der [[de:shibidp:config-attributes#haeufig_genutzt_service_provider|IdP 4.x-DokumentationAlle dort dokumentierten Attributefreigabeb gelten für Shibboleth IdP 3.x und 4.x
-        // weiter unten in dieser Datei. +</callout>
-        // Der Dummy-Wert von der Initialisierung muss hier nur noch +
-        // gelöscht werden: +
-        eduPersonUniqueId.getValues().clear(); +
-  +
-        // unique value erzeugen +
-        uniqueValue uid.getValues().get(0) + "SALT_MIN_48_CHARS"+
- +
-        // md5 value erzeugen +
-        localpart DigestUtils.md5Hex(uniqueValue); +
-  +
-        // Scope dazu +
-        eduPersonUniqueId.getValues().add(localpart + "@uni-beispiel.de");      +
-        ]]+
-    </ad:Script> +
-</resolver:AttributeDefinition> +
- +
-<!-- ... --> +
- +
-<!-- ========================================== --> +
-<!--      Data Connectors                       --> +
-<!-- ========================================== --> +
- +
-<resolver:DataConnector id="staticAttributes" xsi:type="dc:Static"> +
-    <!-- ... --> +
-    <!-- kleiner Trick um Java-Versions-unabhängig Attribut-Variablen für +
-         die Scripted-Attribute-Definitionen in dieser Datei zu +
-         initialisieren --> +
-    <dc:Attribute id="eduPersonUniqueId"> +
-        <dc:Value>dummy</dc:Value> +
-    </dc:Attribute> +
-</resolver:DataConnector> +
- +
-</file>+
  
 +{{tag>idp3}}