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

Compare with Current View Page History

« Previous Version 14 Next »

Hinweise und Konfigurationsdetails eines Shibboleth IDPs für das GÉANT (formals TERENA) Trusted Certificates Service bzw. genauer für persönliche und "e-science/grid"-Zertifikate – nur solche sind zur Zeit nach SAML-Login bestellbar.

entityID

Der global eindeutige Name des Services lautet: https://www.digicert.com/sso

Attribute

Siehe DigiCert bzw. "GÉANT Trusted Certificate Service (TCS)" auf https://eduid.at/entities/sp. Das Service braucht also zwingend die folgenden Attribute:

eduPersonPrincipalName

Das TCS verengt für seine eigenen Zwecke die Definition von eduPersonPrincipalName (ePPN) und verbietet prinzipiell das Neuvergeben eines 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 lokalen, jeweils unterschiedlichen, institutionellen Entscheidungen und 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. On-the-wire übermittelt muß dennoch des Attribut eduPersonPrincicalName werden, aber dieses 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 abweichend festzulegen, wie das hier beim TCS geschieht.

eduPersonEntitlement

Zum Zugriff muß das eduPersonEntitlement-Attribut einen der beiden folgenden Werte haben (egal welchen, diese sind mittlerweile equivalent):

  • urn:mace:terena.org:tcs:personal-user
  • urn:mace:terena.org:tcs:escience-user

Etwaige früher verwendete "-admin" Entitlement-Werte sind obsolet und können ggfs. lokal entfernt werden: Die Berechtigung für AdministratorInnen erfolgt direkt (und nur) im DigiCert-System.

N.B.: Diese Entitlements dürfen ggfs. nur unter bestimmten Bedingungen und nur an berechtigte Personen vergeben werden, siehe TCS Personal/eSciente/Document Signing CA Certificate Practice Statement, u.a. Abschnitte 3.2.3 und 4.1.1.

schacHomeOrganization

Nachschlagen

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

<AttributeDefinition id="schacHomeOrganization" xsi:type="Simple" sourceAttributeID="schacHomeOrganization">
  <Dependency ref="staticAttributes" />
  <AttributeEncoder xsi:type="SAML1String" name="urn:oid:1.3.6.1.4.1.25178.1.2.9" encodeType="false" />
  <AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.9" friendlyName="schacHomeOrganization" encodeType="false" />
</AttributeDefinition>

Erzeugen

In derselben Datei wird auch die von obiger Attributdefinition referenzierte Abhängigkeit ("staticAttributes" genannt) definiert. Im Beispiel unten geschieht das unter Nutzung der property idp.scope, welche in conf/idp.properties definiert wird. Anderenfalls kann dort stattdessen natürlich eine statische Zeichenkette eingetragen werden (z.B. example.ac.at):

<DataConnector id="staticAttributes" xsi:type="Static">
  <Attribute id="schacHomeOrganization">
    <Value>%{idp.scope}</Value>
  </Attribute>
</DataConnector>

Attribute weitergeben

Die Weitergabe oben definierter Attribute wird in /opt/shibboleth-idp/conf/attribute-filter.xml eingerichtet.

Wer bereits den diesbezüglichen Empfehlungen aus diesem Wiki folgt und die Freigaberegel "ACOnet-registered services" übernommen hat, muß hier für TCS nichts weiter tun.

Anderenfalls kann zu der bestehenden Konfiguration etwa folgendes eingetragen werden:

<AttributeFilterPolicy id="TCSportal">
  <PolicyRequirementRule xsi:type="Requester" value="https://www.digicert.com/sso" />
  <AttributeRule attributeID="eduPersonPrincipalName">
    <PermitValueRule xsi:type="ANY" />
  </AttributeRule>
  <AttributeRule attributeID="eduPersonEntitlement">
    <PermitValueRule xsi:type="Value" value="urn:mace:terena.org:tcs:personal-user" />
  </AttributeRule>
  <AttributeRule attributeID="schacHomeOrganization">
    <PermitValueRule xsi:type="ANY" />
  </AttributeRule>
  <AttributeRule attributeID="displayName">
    <PermitValueRule xsi:type="ANY" />
  </AttributeRule>
  <AttributeRule attributeID="mail">
    <PermitValueRule xsi:type="ANY" />
  </AttributeRule>
</AttributeFilterPolicy>
  • No labels