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

Compare with Current View Page History

« Previous Version 8 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.

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.

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. 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 Personal 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.

 

<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="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonalEntitlement" >
     <resolver:Dependency ref="idControll" />
     <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");
               }
          ]]>
     </Script>
</resolver:AttributeDefinition>

<resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonaleScienceEntitlement" >
     <resolver:Dependency ref="idControll" />
     <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");
               }
          ]]>
     </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.

 

<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");
                         }
                    }
               }
          ]]>
     </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");
                         }
                    }
               }
          ]]>
     </Script>
</resolver:AttributeDefinition>

Modifiera filen attribute-filter.xml enligt:

<!--  New TCS Personal -->
<afp:AttributeFilterPolicy id="releaseTcsPersonalEntitlement">
      <afp:PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="https://www.digicert.com/sso" />
        <afp:AttributeRule attributeID="displayName">
            <afp:PermitValueRule xsi:type="basic:ANY" />
      </afp:AttributeRule>
      <afp:AttributeRule attributeID="eduPersonPrincipalName">
            <afp:PermitValueRule xsi:type="basic:ANY"/>
      </afp:AttributeRule>
      <afp:AttributeRule attributeID="tcsPersonalEntitlement">
            <afp:PermitValueRule xsi:type="basic:ANY" />
      </afp:AttributeRule>
      <afp:AttributeRule attributeID="tcsPersonaleScienceEntitlement">
            <afp:PermitValueRule xsi:type="basic:ANY" />
      </afp:AttributeRule>
      <afp:AttributeRule attributeID="email">
            <afp:PermitValueRule xsi:type="basic:ANY" />
      </afp:AttributeRule>
      <afp:AttributeRule attributeID="schacHomeOrganization">
            <afp:PermitValueRule xsi:type="basic:ANY"/>
      </afp:AttributeRule>
</afp:AttributeFilterPolicy>
  • No labels