ESUPSGC

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
languagexml
themeRDark
<util:map id="sgcMappingGroupesRoles">
  <beans:entry key="group_admin" value="ROLE_ADMIN" />
  <beans:entry key="group_manager" value="ROLE_SUPER_MANAGER" />
  <beans:entry key="group_livreur" value="ROLE_LIVREUR" />
  <beans:entry key="group_updater" value="ROLE_UPDATER" />
  <beans:entry key="group_consult" value="ROLE_CONSULT" />
  <beans:entry key="group_user" value="ROLE_USER" />
</util:map>

 

Configurations esup-nfc-tag-server

 Même principe que pour esup-sgc.

...

La carte est donc laissée en l'état, seul le csn est lu et envoyé à esup-sgc pour enrollement.

...

Trixie et Maven Jetty

Ce site de démonstration est porté par une VM qui fonctionne depuis février 2024 sous debian bookworm.On a choisi au passage ici de déployer septembre 2025 sous debian trixie et avec les futures versions 3 d'esup-sgc et esup-nfc-tag non pas via un Tomcat mais via le Jetty installé via apt.

À toute fin utile, voici un extrait des fichiers de configurations nous permettant cette mise en place - le webapp d'esup-sgc (obtenu via mvn package) est ici déployé en tant que /opt/jetty-esup-sgc-demo/webapps/root

(pour esup-nfc-tag, les configurations jetty sont similaires)

actuellement en phase de qualification - https://github.com/EsupPortail/esup-sgc/tree/esup-sgc-v3 - https://github.com/EsupPortail/esup-nfc-tag-server/tree/esup-nfc-tag-server-v3 ).

On a choisi au passage ici de déployer esup-sgc et esup-nfc-tag non pas via un Tomcat mais en lançant simplement le jetty embarqué par maven au travers du pom.xml du projet.

À toute fin utile, voici un extrait des fichiers de configurations nous permettant cette mise en place.

(pour esup-nfc-tag, les configurations sont similaires, le numéro de port change simplement)

  • systemd - /etc/systemd/system/jetty-esup-sgc-demo.service


    Bloc de code
    themeRDark
    [Unit][Unit]
    Description=ESUP NFC Demo Maven Jetty
    After=network.target
    
    [Service]
    Type=simple
    User=esup
    Group=esup
    WorkingDirectory=/opt/esup-sgc-demo
    ExecStart=/usr/bin/mvn clean jetty:run -Djetty.port=8080
    Restart=on-failure
    RestartSec=5
    Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
    start.ini instance jetty - /opt/jetty-esup-sgc-demo/start.ini
    Bloc de code
    themeRDark
    --module=deploy,http,jsp,jstl,http-forwarded
    jetty.http.port=8080
    
    systemd - /etc/systemd/system/jetty-esup-sgc-demo.service
    Bloc de code
    themeRDark
    [Unit]
    Description=Jetty 9 Web Application Server
    Documentation=https://www.eclipse.org/jetty/documentation/current/
    After=network.target
    
    [Service]
    
    # Configuration
    Environment="JETTY_HOME=/usr/share/jetty9/"
    Environment="JETTY_STATE=/tmp/jetty-esup-sgc-demo.state"
    Environment="JETTY_BASE=/opt/jetty-esup-sgc-demo"
    Environment="JAVA_OPTS=-Djava.awt.headless=true"
    EnvironmentFile=-/etc/default/jetty9
    
    # Lifecycle
    Type=simple
    ExecStart=/usr/share/jetty9/bin/jetty.sh run
    SuccessExitStatus=143
    Restart=on-abort
    
    # Logging (usage de logrotate pour la rotation)
    StandardOutput=file:/var/log/jetty-esup-sgc-demo/esup-sgc.log
    StandardError=file:/var/log/jetty-esup-sgc-demo/esup-sgc.log
    
    # Security
    User=jetty
    Group=jetty
    PrivateTmp=yes
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    NoNewPrivileges=true
    WorkingDirectory=/usr/share/jetty9/
    ProtectSystem=strict
    ReadWritePaths=/var/lib/jetty9/
    
    [Install]
    WantedBy=multi-user.target


  • configuration apache proxypass - /etc/apache2/sites-enabled/esup-sgc-demo.univ-rouen.fr.conf
    Bloc de code
    themeRDark
    ...
       <Location />
         AuthType shibboleth
         ShibRequestSetting requireSession 1
         require shib-session
         ShibUseHeaders On
       </Location>
    
        ProxyPreserveHost On
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Port 443
        ProxyPass / http://localhost:8080/ ttl=10 timeout=3600 loadfactor=100 retry=1
        ProxyPassReverse / http://localhost:8080
    ...
    


  • configuration shibboleth (avec sp 3) - /etc/shibboleth/shibboleth2.xml


    Bloc de code
    languagexml
    themeRDark
    <SPConfig xmlns="urn:mace:shibboleth:3.0:native:sp:config"
        xmlns:conf="urn:mace:shibboleth:3.0:native:sp:config"
        xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
        clockSkew="180">
    
        <RequestMapper type="Native">
            <RequestMap applicationId="default">
                <Host name="esup-sgc-demo.univ-rouen.fr" applicationId="default" authType="shibboleth" requireSession="false"/>
                <Host name="esup-nfc-tag-demo.univ-rouen.fr" applicationId="esup-nfc-tag-demo" authType="shibboleth" requireSession="false"/>
            </RequestMap>
        </RequestMapper>
    
        <ApplicationDefaults entityID="https://esup-sgc-demo.univ-rouen.fr"
            REMOTE_USER="eppn subject-id pairwise-id persistent-id"
            cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1">
    
            <Sessions lifetime="28800" timeout="3600" checkAddress="false"
                handlerURL="/Shibboleth.sso" handlerSSL="true" cookieProps="https" relayState="ss:mem"
                redirectLimit="exact"
                idpHistory="false" idpHistoryDays="7">
    
              <SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="Login"
                                 relayState="cookie">
                <SessionInitiator type="SAML2" acsIndex="1" acsByIndex="false" template="bindingTemplate.html"/>
            <SessionInitiator type="Shib1"/>
            <SessionInitiator type="SAMLDS" URL="https://discovery.renater.fr/edugain/WAYF"/>
              </SessionInitiator>
          
                <md:AssertionConsumerService Location="/SAML2/POST" index="1"
                         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>
            
                <!-- Status reporting service. -->
                <Handler type="Status" Location="/Status"/>
    
                <!-- Session diagnostic service. -->
                <Handler type="Session" Location="/Session" showAttributeValues="true"/>
    
            </Sessions>
    
            <MetadataProvider type="XML" validate="false"
                    url="https://metadata.federation.renater.fr/renater/main/main-idps-renater-metadata.xml"
                  backingFilePath="/etc/shibboleth/metadatas/main-idps-renater-metadata.xml" maxRefreshDelay="7200">
            </MetadataProvider>
    
            <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>
    
            <AttributeExtractor type="Metadata" errorURL="errorURL" DisplayName="displayName"/>
    
            <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>
    
            <CredentialResolver type="File"
                key="esup-sgc-demo.univ-rouen.fr.key" certificate="esup-sgc-demo.univ-rouen.fr.crt"/>
            
        <ApplicationOverride id="esup-nfc-tag-demo" entityID="https://esup-nfc-tag-demo.univ-rouen.fr" homeURL="https://esup-nfc-tag-demo.univ-rouen.fr"/>
        
        </ApplicationDefaults>
        
        <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>
    
        <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>
    
    </SPConfig>
    

...