Mål: Teknisk dokumentation hur ett lärosäte gör för att öppna möjligheten till personliga certifikat via TCS Personal och TCS Personal eScience. |
För mer information om TCS Personal och TCS Personal eScience samt dess möjligheter och krav, se SUNET TCS Personal och SWAMI Wiki: TCS Personal och TCS eScience |
eduPersonEntitlement
(EPE)).eduPersonPrincipalName
(EPPN)).Konfigurationerna under detta avsnitt fungerar endast för Shibboleth 2 eller senare. För simpleSAMLphp och ADFS2 kan konfigurationsexemplen endast användas som inspiration. |
Observera: Konfigurationen under detta avsnitt får endast användas om samtliga användare vid lärosätet uppfyller kraven för att få kvittera ut certfikat av typerna TCS Persoanl och TCS Personal eScience. |
<resolver:DataConnector id="staticTcsPersonalEntitlements" xsi:type="dc:Static" xmlns="urn:mace:shibboleth:2.0:resolver:dc"> <Attribute id="tcsPersonalEntitlement"> <Value>urn:mace:terena.org:tcs:personal-user</Value> </Attribute> <Attribute id="tcsPersonaleScienceEntitlement"> <Value>urn:mace:terena.org:tcs:escience-user</Value> </Attribute> </resolver:DataConnector> |
<resolver:AttributeDefinition xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonalEntitlement"> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonaleScienceEntitlement"> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" /> </resolver:AttributeDefinition> |
Observera: Konfigurationen under detta avsnitt används som mall om endast några användare vid lärosätet uppfyller kraven för att få kvittera ut certfikat av typerna TCS Personal och TCS Personal eScience. |
Förutsättning: I LDAP finns attributet idControll med värdet "yes" om legtimationskontroll är genomförd för användaren, annars saknas attributet eller har ett annat värde.
Tillägg för administrativa rättigheter: De delar i nedanstående kodexempel som handlar om swamiGmaiAssertion
gäller hur man skickar vidare information om att en person har rättighet att vara administratör av certifikat. I det aktuella exemplet ger värdet urn:mace:swami.se:gmai:tcs:padm
administratörsrättighet i TCS Personal och urn:mace:swami.se:gmai:tcs:eadm
administratörsrättighet i TCS Personal eScience. Observera att personen måste även ha blivit delegerad i certifikatsportalen.
<resolver:AttributeDefinition xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="idControll" dependencyOnly="true" > <resolver:Dependency ref="myLDAP" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="swamiGmaiAssertion" dependencyOnly="true"> <resolver:Dependency ref="myLDAP" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonalEntitlement" > <resolver:Dependency ref="idControll" /> <resolver:Dependency ref="swamiGmaiAssertion" /> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" /> <Script> <![CDATA[ importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider); tcsPersonalEntitlement = new BasicAttribute("tcsPersonalEntitlement"); if ((idControll) && (idControll.getValues().contains("yes"))) { tcsPersonalEntitlement.getValues().add("urn:mace:terena.org:tcs:personal-user"); } if (swamiGmaiAssertion) { for (i=0; i < swamiGmaiAssertion.getValues().size(); i++) { if (swamiGmaiAssertion.getValues().get(i).equals("urn:mace:swami.se:gmai:tcs:padm")) { tcsPersonalEntitlement.getValues().add("urn:mace:terena.org:tcs:personal-admin"); } } } ]]> </Script> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonaleScienceEntitlement" > <resolver:Dependency ref="idControll" /> <resolver:Dependency ref="swamiGmaiAssertion" /> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" /> <Script> <![CDATA[ importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider); tcsPersonaleScienceEntitlement = new BasicAttribute("tcsPersonaleScienceEntitlement"); if ((idControll) && (idControll.getValues().contains("yes"))) { tcsPersonaleScienceEntitlement.getValues().add("urn:mace:terena.org:tcs:escience-user"); } if (swamiGmaiAssertion) { for (i=0; i < swamiGmaiAssertion.getValues().size(); i++) { if (swamiGmaiAssertion.getValues().get(i).equals("urn:mace:swami.se:gmai:tcs:eadm")) { tcsPersonaleScienceEntitlement.getValues().add("urn:mace:terena.org:tcs:escience-admin"); } } } ]]> </Script> </resolver:AttributeDefinition> |
Förutsättning: Om en person har genomgått legitimationskontroll är denne medlem i gruppen ID-kort
.
Känd begränsning: Grupper i grupper fungerar inte.
Tillägg för administrativa rättigheter: De delar i nedanstående kodexempel som handlar om grupperna TCSpersonalAdmin
och TCSpersonalEscienceAdmin
gäller hur man skickar vidare information om att en person har rättighet att vara administratör av certifikat. I det aktuella exemplet ger gruppen TCSpersonalAdmin
administratörsrättighet i TCS Personal och TCSpersonalEscienceAdmin
administratörsrättighet i TCS Personal eScience. Observera att personen måste även ha blivit delegerad i certifikatsportalen.
<resolver:AttributeDefinition xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="memberOf" dependencyOnly="true"> <resolver:Dependency ref="myLDAP" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonalEntitlement" > <resolver:Dependency ref="memberOf" /> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" /> <Script> <![CDATA[ importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider); tcsPersonalEntitlement = new BasicAttribute("tcsPersonalEntitlement"); if (memberOf) { for (i=0; i < memberOf.getValues().size(); i++) { if (memberOf.getValues().get(i).equals("ID-kort")) { tcsPersonalEntitlement.getValues().add("urn:mace:terena.org:tcs:personal-user"); } else if (memberOf.getValues().get(i).equals("TCSpersonalAdmin")) { tcsPersonalEntitlement.getValues().add("urn:mace:terena.org:tcs:personal-admin"); } } } ]]> </Script> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonaleScienceEntitlement" > <resolver:Dependency ref="memberOf" /> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" /> <Script> <![CDATA[ importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider); tcsPersonaleScienceEntitlement= new BasicAttribute("tcsPersonaleScienceEntitlement"); if (memberOf) { for (i=0; i < memberOf.getValues().size(); i++) { if (memberOf.getValues().get(i).equals("ID-kort")) { tcsPersonaleScienceEntitlement.getValues().add("urn:mace:terena.org:tcs:escience-user"); } else if (memberOf.getValues().get(i).equals("TCSpersonalEscienceAdmin")) { tcsPersonaleScienceEntitlement.getValues().add("urn:mace:terena.org:tcs:escience-admin"); } } } ]]> </Script> </resolver:AttributeDefinition> |
<AttributeFilterPolicy id="releaseTcsPersonalEntitlement"> <PolicyRequirementRule xsi:type="basic:OR"> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://tcs-personal.sunet.se/simplesamlphp/module.php/saml/sp/metadata.php/default-sp" /> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://tcs-personal-portal.terena.org/simplesamlphp/module.php/saml/sp/metadata.php/default-sp" /> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://sp.swamid.se/shibboleth" /> </PolicyRequirementRule> <AttributeRule attributeID="tcsPersonalEntitlement"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> </AttributeFilterPolicy> <AttributeFilterPolicy id="releaseTcsPersonaleScienceEntitlement"> <PolicyRequirementRule xsi:type="basic:OR"> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://tcs-escience.sunet.se/simplesamlphp/module.php/saml/sp/metadata.php/default-sp" /> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://tcs-escience-portal.terena.org/simplesamlphp/module.php/saml/sp/metadata.php/default-sp" /> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://sp.swamid.se/shibboleth" /> </PolicyRequirementRule> <AttributeRule attributeID="tcsPersonaleScienceEntitlement"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> </AttributeFilterPolicy> |