Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: mention givenName,sn

Hinweise und Konfigurationsdetails eines Shibboleth 2.x IDPs für das TERENA/ACOnet TCS Personal Certificates PortalIDP für das GÉANT "Trusted Certificates Service".

Info

Siehe ACOnet Zertifikatsservice für allgemeine Informationen.

entityID

Der global eindeutige Name des SAML Services Providers von Sectigo (dem TCS-Anbieter ab Mitte 2020) lautet:
 https:///tcs-personal.aco.net/simplesamlphp/module.php/saml/sp/metadata.php/default-sp

Attribute

cert-manager.com/shibboleth

Das Service wurde von der InCommon-Federation registriert und wird von dort über eduGAIN weiterpubliziert. D.h. nur jene ACOnet-Teilnehmerinstitutionen, die sowohl an eduID.at als auch an eduGAIN/Interfederation teilnehmen (und die TCS-Zusatzvereinbarung abgeschlossen haben), können sich über ihre eigene Institution bei diesem Service anmelden, sei es für Admin-Zugriffe oder zum Beantragen persönlicher Zertifikate für Endbenutzer*innen.

Attribute

Admin-Zugriff SCM Portal

Für die TCS-Administrator*innen einer Institution ist die Anmeldung am Sectigo Certificate Manager (SCM)-Portal über SAML möglich. Dazu müssen die Attribute:

vom IDP übermittelt werden (und zuvor vom ACOnet-Team im SCM provisioniert worden sein).

Persönliche Zertifikate

Für das Beantragen persönlicher Zertifikate (etwa zum Signieren von E-Mails) braucht das Service die folgenden Attribute:

Der Service-URL des SAML Self-Service Portals lautet: https://cert-manager.com/customer/ACOnet/idp/clientgeant – siehe TCS FAQ.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

Note
iconfalse

Das TCS Personal Portal-Service verengt für seine eigenen Zwecke die Definition von eduPersonPrincicalName von eduPersonPrincipalName (ePPN) und verbietet prinzipiell das Neuvergeben einer 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  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.


Info
iconfalse

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 On-the-wire übermittelt muß dennoch der eduPersonPrincicalName des Attribut "eduPersonPrincicalName" werden, aber dieser 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 jenen aus eduPerson-Standards) für eigene Zwecke neu abweichend 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

bei TCS geschehen ist. Aus Gründen der Kompatibiltät mit eingeführten Services wird dieses Attribut aber (bis auf Weiteres) beibehalten.

eduPersonEntitlement

Zur Beantragung persönlicher Zertifikate muß das eduPersonEntitlement-Attribut den folgenden Werte haben:

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

Etwaige früher verwendete "-admin" Entitlement-Werte sind obsolet und können ggfs. lokal entfernt werden: Die Berechtigung für Administrator*innen erfolgt direkt (und nur) in SCM.

Diese Entitlements dürfen N.B.: 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:

Code Block
languagehtml/xml
<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:

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

Attribute weitergeben

...

siehe die jeweils gültigen TCS-Vereinbarungen (TODO).

schacHomeOrganization

Die Dokumentation zum Erzeugen/Nachschlagen von Attributen für den Shibboleth IDP enthält eine fertige Vorlage zum Erzeugen von "schacHomeOrganization".

Attribute weitergeben

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

...

:

Code Block
languagehtml/xml
<afp:AttributeFilterPolicy<AttributeFilterPolicy id="TCSportalTCS">
  <afp:PolicyRequirementRule<PolicyRequirementRule xsi:type="basic:AttributeRequesterStringRequester" value="https://tcscert-personalmanager.aco.net/simplesamlphp/module.php/saml/sp/metadata.php/default-spcom/shibboleth" />
  <AttributeRule <afp:AttributeRule attributeID="eduPersonPrincipalName">
    <afp:PermitValueRule xsi:type="basic:ANY permitAny="true" />
  </afp:AttributeRule>
  <afp:AttributeRule <AttributeRule attributeID="eduPersonEntitlementdisplayName">
    <afp:PermitValueRule xsi:type="basic:OR" permitAny="true" />
      <basic:Rule xsi:type="basic:AttributeValueString" value="urn:mace:terena.org:tcs:personal-user<AttributeRule attributeID="givenName" permitAny="true" />
      <basic:Rule xsi:type="basic:AttributeValueString" value="urn:mace:terena.org:tcs:personal-admin<AttributeRule attributeID="sn" permitAny="true" />
    </afp:PermitValueRule>
  </afp:AttributeRule>
  <afp:AttributeRule <AttributeRule attributeID="schacHomeOrgmail">
    <afp:PermitValueRule xsi:type="basic:ANY permitAny="true" />
  </afp:AttributeRule>
  <afp:AttributeRule<AttributeRule attributeID="displayNameschacHomeOrganization">
    <afp:PermitValueRule xsi:type="basic:ANY permitAny="true" />
  </afp:AttributeRule>
  <afp:AttributeRule <AttributeRule attributeID="emaileduPersonEntitlement">
    <afp:PermitValueRule<PermitValueRule xsi:type="basic:ANYValue" value="urn:mace:terena.org:tcs:personal-user" />
  </afp:AttributeRule>
</afp:AttributeFilterPolicy>