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 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 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="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" /> <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>