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

Compare with Current View Page History

« Previous Version 5 Next »

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 frågor kring dokumentationen nedan kontakta operations snabel-a SWAMID.SE

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

Förutsättningar

  • Lärosätet har en Identity Provider uppsatt som är medlem i SWAMID (Om frågor - kontakta operations snabel-a SWAMID.SE).
  • Lärosätet har blivit godkänd och konfigurerad som abonnent av TCS Personal resp. TCS Personal eScience.
  • Attribut skickas till Service Providers i SWAMID enligt avsnittet attribute-filter.xml på wikisidan Konfigurera metadata för att använda SWAMID.
  • sp.swamid.se används som testmiljö.

Rekommenderad arbetsgång

  1. Modifiera attribute-resolvern för din Identity Provider så att den inkluderar rättighet att använda TCS enligt nedan beskrivet format (eduPersonEntitlement (EPE)).
  2. Modifiera attribute-release policy för din Identity Provider enligt kod nedan. Syftet är att tillåta ivägskickande av uppgift identitetskontroll till certfikatsportalen Confusa SAMT för test på sp.swamid.se.
  3. Verifiera mot sp.swamid.se att ni ser namn, e-postadress, rättighet (entitlement) och unik identitet (eduPersonPrincipalName (EPPN)).
  4. Kontrollera att person med rätt rättighet kan logga in i TCS Personal och TCS Personal eScience med möjlighet att skapa certifikat.

Konfiguration för Shibboleth

Konfigurationerna under detta avsnitt fungerar endast för Shibboleth 2 eller senare. För simpleSAMLphp och ADFS2 kan konfigurationsexemplen endast användas som inspiration.

Om ALLA personer uppfyller kravet på uppvisande av legitimation modifiera filen attribute-resolver.xml enligt:

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.

Lägg till en en statisk källa:
<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>
Lägg till attributdefinition:
<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>

Om ENDAST NÅGRA personer uppfyller kravet på uppvisande av legitimation modifiera filen attribute-resolver.xml enligt:

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.

Alternativ 1: Särskilt attribut finns i LDAP för att visa att legitimationskontroll är genomförd

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>
Alternativ 2: Grupp används i LDAP för att visa att legitimationskontroll är genomförd (fungerar med Actice Directory)

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>

Modifiera filen attribute-filter.xml enligt:

<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>
  • No labels