You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Hinweise und Konfigurationsdetails eines Shibboleth 2.x IDPs für das TERENA/ACOnet TCS Personal Certificates Portal.

EntityID

Der global eindeutige Name des Services lautet:
https://tcs-personal.aco.net/simplesamlphp/module.php/saml/sp/metadata.php/default-sp

Attribute

Siehe http://confusa.assembla.com/wiki/show/confusa/Required_attribute_description
Erwähnt werden im Folgenden nur Abweichungen zur IDP-Standardkonfiguration, die bereits Attributdefinitionen zu maileppn, usw. enthält.

eduPersonPrincipalName

Das TCS Personal Portal-Service verengt für seine eigenen Zwecke die Definition von eduPersonPrincicalName (ePPN) und verbietet prinzipiell das Neuvergeben einer bestehenden ePPN an eine andere Person bei Nutzung des TCS Personal Certificate Services. Ein solches Wiederverwenden ist zwar ohnehin fast immer bad practice, wird aber in der für dieses Attribut autoritativen eduPerson-Spezifikation nicht ausgeschlossen. Darüber hinaus wird der ePPN oft aus der lokalen UserID (die zum Login zu Services wie IMAP oder SSH benutzt wird) gebildet, und die Nicht-Wiederverwendung von lokalen UserIDs steht in der Regel nicht zur Debatte, weil jeweils unterschiedlichen institutionellen Entscheidungen/Prozessen unterliegend.

Wenn also die Weitergabe bzw. Übernahme einer UserID von einer Person zu einer anderen (auch nach Jahren der "Stilllegung") an einer Institution nicht ausgeschlossen ist, sollte dort die UserID nicht zur Erzeugung des eduPersonPrincicalName-Attributs genutzt werden. Übermittelt muß dennoch der eduPersonPrincicalName werden, aber dieser muß dann (zumindest für dieses Service) vom IDP aus anderen Daten gespeist werden.

Offensichlich ist es keine gute Idee, die Semantik von standardisierten und weltweit eingesetzten Attributen (wie denen des eduPerson-Standards) für eigene Zwecke neu festzulegen, wie das hier beim TCS Personal Portal geschieht.

eduPersonEntitlement

Siehe Ende von http://confusa.assembla.com/wiki/show/confusa/Portal_overview_for_admins/Requirements

Diese Entitlements dürfen nur unter bestimmten Bedingungen und nur an berechtigte Personen vergeben werden, wie im TERENA Personal CA Certificate Practice Statement, Abschnitt 3.2.3, beschrieben.

schacHomeOrganization

Nachschlagen

Für die schacHomeOrganization kann man in /opt/shibboleth-idp/conf/attribute-resolver.xml folgende Attributdefinition eintragen:

<resolver:AttributeDefinition id="schacHomeOrg" xsi:type="ad:Simple" sourceAttributeID="schacHomeOrg">
    <resolver:Dependency ref="staticSchac" />
    <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:oid:1.3.6.1.4.1.25178.1.2.9" />
    <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.9" friendlyName="schacHomeOrganization" />
</resolver:AttributeDefinition>

Erzeugen

In der selben Datei wird auch die von obiger Attributdefinition referenzierte Abhängigkeit ("staticSchac" genannt) definiert. Nachdem im einfachsten Fall alle Identitäten eines IDPs zur selben "home organization" gehören, kann für alle derselbe Wert (hier als Beispiel example.org) direkt in der IDP-Konfiguration generiert werden:

<resolver:DataConnector id="staticSchac" xsi:type="dc:Static">
  <dc:Attribute id="schacHomeOrg">
    <dc:Value>example.org</dc:Value>
  </dc:Attribute>
</resolver:DataConnector>

Attribute weitergeben

Die Weitergabe oben (und a.a.O.) definierter Attribute wird in /opt/shibboleth-idp/conf/attribute-filter.xml eingerichtet, wo zu der bestehenden Konfiguration folgendes eingetragen werden kann:

<afp:AttributeFilterPolicy id="TCSportal">
  <afp:PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="https://tcs-personal.aco.net/simplesamlphp/module.php/saml/sp/metadata.php/default-sp" />
  <afp:AttributeRule attributeID="eppn">
    <afp:PermitValueRule xsi:type="basic:ANY" />
  </afp:AttributeRule>
  <afp:AttributeRule attributeID="eduPersonEntitlement">
    <afp:PermitValueRule xsi:type="basic:OR">
      <basic:Rule xsi:type="basic:AttributeValueString" value="urn:mace:terena.org:tcs:personal-user" />
      <basic:Rule xsi:type="basic:AttributeValueString" value="urn:mace:terena.org:tcs:personal-admin" />
    </afp:PermitValueRule>
  </afp:AttributeRule>
  <afp:AttributeRule attributeID="schacHomeOrg">
    <afp:PermitValueRule xsi:type="basic:ANY" />
  </afp:AttributeRule>
  <afp:AttributeRule attributeID="displayName">
    <afp:PermitValueRule xsi:type="basic:ANY" />
  </afp:AttributeRule>
  <afp:AttributeRule attributeID="email">
    <afp:PermitValueRule xsi:type="basic:ANY" />
  </afp:AttributeRule>
</afp:AttributeFilterPolicy>

 

  • No labels