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 samt dess möjligheter och krav, se SUNET TCS Personal.

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 "Example of a standard attribute filter for Shibboleth IdP".

...

  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 om rättighet för certifikat baserat på eduPersonAssurance 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.

...

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

 

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

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="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="tcsPersonalEntitlement" >
     <resolver:Dependency ref="idControlleduPersonAssurance" />
     <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 ((idControlleduPersonAssurance) && (idControlleduPersonAssurance.getValues().contains("yeshttp://www.swamid.se/policy/assurance/al2"))) {
                    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="idControlleduPersonAssurance" />
     <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 ((idControlleduPersonAssurance) && (idControlleduPersonAssurance.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.

 

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 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 (memberOfhttp://www.swamid.se/policy/assurance/al2"))) {
                    for (i=0; i < memberOf.getValues().size(); i++) {
                         if (memberOftcsPersonaleScienceEntitlement.getValues().get(i).equals("ID-kort")) {
                              tcsPersonalEntitlement.getValues().add("urn:mace:terena.org:tcs:personalescience-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:
Code Block
<!--  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>