Intégration SAML/SSO dans TCS 2020 avec Sectigo

Le portail de demande de certificats de personne (Client Certificates) accessible en self-service avec l'authentification SAML est cours de développement dans Sectigo.
Nous mettrons à jour cette section lorsqu'il sera disponible.
En attendant, les demandes de certificats client peuvent être réalisées directement, via une invitation, dans le portail SCM de Sectigo par un administrateur (ayant le rôle RAO-CS / DRAO-CS).

Intégration SAML/SSO dans TCS 2015 avec Digicert

L'intégration SAML/SSO dans la fédération ne permet d'obtenir que des certificats personnels. Il faut créer un compte “Utilisateur” pour demander un certificat Serveur, Code Signing, Document Signing

Attributs requis

  • Le fournisseur d'Identité (IDP) doit fournir les attributs
    1. schacHomeOrganization et schacHomeOrganizationType = jeu d'attributs utilisateurs minimal reconnu dans le cadre de eduGAIN
    2. eduPersonPrincipalName = identifiant unique au niveau national 

    3. displayName = Nom et prénom de la personne 

    4. mail = adresse email canonique de la personne fournie par l'établissement
    5. eduPersonEntitlement = attribut généré dynamiquement à la connexion qui définit le rôle de chaque utilisateur (dont la valeur doit être urn:mace:terena.org:tcs:personal-user pour l'obtention de certificats de personnes)

Configuration de l'IDP

Fichier attribute-resolver.xml

  
      <!-- eduPersonEntitlement-->
      <resolver:AttributeDefinition id="eduPersonEntitlement" xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="eduPersonEntitlement">
          <resolver:Dependency ref="email" />
          <resolver:Dependency ref="eduPersonAffiliation" />
          <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);
              eduPersonEntitlement = new BasicAttribute("eduPersonEntitlement");
              if (email != null && requestContext.getPeerEntityId() != null) {
                  if (requestContext.getPeerEntityId() == "https://www.digicert.com/sso" && eduPersonAffiliation.getValues().get(0).match("member")) {eduPersonEntitlement.getValues().add("urn:mace:terena.org:tcs:personal-user");
                  }//if TCS personal PORTAL user
                  if (requestContext.getPeerEntityId() =="https://www.digicert.com/sso" && eduPersonAffiliation.getValues().get(0).match("member")) {eduPersonEntitlement.getValues().add("urn:mace:terena.org:tcs:escience-user");                                                           
                  }//if TCS escience PORTAL user
              }//IF
                  else eduPersonEntitlement.getValues().add("");
              ]]>
          </Script>
      </resolver:AttributeDefinition>
      <!-- Static Connector -->
        <resolver:DataConnector id="staticSchacHomeOrganization" xsi:type="Static" xmlns="urn:mace:shibboleth:2.0:resolver:dc">
        <Attribute id="schacHomeOrganization">
          <Value>my-value.fr</Value>
        </Attribute>
      </resolver:DataConnector>  

Fichier edugain-attribute-filters-all.xml

  <!-- Règles pour la ressource GÉANT Trusted Certificate Service (TCS)  -->
  <AttributeFilterPolicy id="https://www.digicert.com/sso">
    <PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="https://www.digicert.com/sso" ignoreCase="true"/>
          <AttributeRule attributeID="eduPersonPrincipalName">
      <PermitValueRule xsi:type="basic:ANY"/>
    </AttributeRule>
          <AttributeRule attributeID="displayName">
      <PermitValueRule xsi:type="basic:ANY"/>
    </AttributeRule>
          <AttributeRule attributeID="email">
      <PermitValueRule xsi:type="basic:ANY"/>
    </AttributeRule>
          <AttributeRule attributeID="schacHomeOrganization">
      <PermitValueRule xsi:type="basic:ANY"/>
    </AttributeRule>
          <AttributeRule attributeID="eduPersonEntitlement">
      <PermitValueRule xsi:type="basic:ANY"/>
    </AttributeRule>
  </AttributeFilterPolicy>