Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

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

...

Info

För mer information om TCS Personal och TCS Personal eScience personliga certifikat i SUnet TCS samt dess möjligheter och krav, se SUNET TCS Personal och SWAMI Wiki: TCS Personal och TCS eScience Historical: Personal certificates requirements in Sunet TCS i wikin för Sunet TCS.

Förutsättningar

  • Lärosätet är godkänt för tillitsprofilen SWAMID AL2 samt användare som uppfyller SWAMID AL2 är uppmärkta med korrekt värde för eduPersonAssurance!
  • 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ö"Example of a standard attribute filter for Shibboleth IdP".

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.Verifiera mot sp.swamid.se att ni ser namn, e-postadress, rättighet (entitlement) och unik identitet (eduPersonPrincipalName (EPPN))om rättighet för certifikat baserat på eduPersonAssurance.
  3. Testa om attributreleasen är korrekt enligt instruktionerna på adressen SUNET TCS 2020- Information for administrators#Informationforadministrators-TestthatyourIdPiscorrectlyconfigured.
  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

Info

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

...

Modifiera filen attribute-resolver.xml enligt:

Info

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:
Code Block

<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:
Code Block

<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:

Info

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.

Förutsättning: Attributet eduPersonAssurance är definierat tidigare i attribute-resolver.xml.

Code Block
<AttributeDefinition xsi:type="ScriptedAttribute" id="tcsPersonalEntitlement"
Code Block

<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<InputAttributeDefinition ref="idControlleduPersonAssurance" />
     <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>
          <<Script><![CDATA[
               importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);
               tcsPersonalEntitlement = new BasicAttribute("tcsPersonalEntitlement");
               if ((idControlleduPersonAssurance) && (idControlleduPersonAssurance.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")) {
             http://www.swamid.se/policy/assurance/al2"))) {
                 tcsPersonalEntitlement.getValues().add("urn:mace:terena.org:tcs:personal-adminuser");
                         }
                    }
               }
          ]]>
     </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]]></Script>
     <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" encodeType="false" />
     <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.

Code Block

<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 <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>
encodeType="false" />
</AttributeDefinition>
Example of a standard attribute filter for Shibboleth IdP och Example of a standard attribute filter for Shibboleth IdP v3.4.0 and above finns TCS Personal inlagd men bortkommenterad. Modifiera filen attribute-filter.xml

...

.

Konfiguration för ADFS

På wikisidan Manual attribute releases with ADFS Toolkit finns information om hur du hanterar TCS Personal men du måste göra anpassningar efter era egna förutsättningar.