Hinweise und Konfigurationsdetails eines Shibboleth 2.x 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
Diese entsprechen exakt den im alten Service genutzten (mit Comodo als anbieter und dem TCS Personal Portal), siehe http://confusa.assembla.com/wiki/show/confusa/Required_attribute_description
Erwähnt werden im Folgenden nur Abweichungen zur Shibboleth IDP-Standardkonfiguration, die bereits Attributdefinitionen zu mail, eppn, usw. enthält.
eduPersonPrincipalName
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 geschieht.
eduPersonEntitlement
Nur noch die beiden Werte
urn:mace:terena.org:tcs:personal-user
urn:mace:terena.org:tcs:escience-user
sind relevant und werden als völlig equivalent behandelt (eines davon reichr also). Etwaige "-admin
" Entitlement-Werte sind nunmehr obsolet.
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. ( TODO: Neue Version des CPS!)
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://www.digicert.com/sso" /> <afp:AttributeRule attributeID="eduPersonPrincipalName"> <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" /> </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>