Aller au contenu

Configuration générale de SquashTM

Variables d'environnement Java

Le contenu de la variable SQUASH_JAVA_ARGS est ajouté à la fin de la ligne de commande java. Cela vous permet d'ajouter des paramètres ou d'écraser ceux par défaut (car les paramètres sont traités de gauche à droite, et les derniers définis prennent le dessus sur les précédents).
Par exemple, SquashTM exécute : java -Xms128m -Xmx2048m $SQUASH_JAVA_ARGS. Donc, si vous définissez $SQUASH_JAVA_ARGS à -Xmx4096m, la commande deviendra : java -Xms128m -Xmx2048m -Xmx4096m. La JVM sera alors lancée avec une mémoire maximale Xmx fixée à 4 Go.

Mémoire nécessaire

Assurez-vous que le serveur sur lequel l'application est installée dispose de suffisamment de RAM pour gérer toute la mémoire nécessaire pour :

  • la taille du tas (-Xms, -Xmx)
  • l'espace métadonnées (-XX:MetaspaceSize, -XX:MaxMetaspaceSize)
  • la pile de chaque thread (-Xss)
  • le cache de code (-XX:ReservedCodeCacheSize)
  • autres (arena, byte buffers…)

Le serveur doit avoir plus de mémoire que -Xmx + -XX:MaxMetaspaceSize + -XX:ReservedCodeCacheSize + 128 Mo.
Voir la documentation de Java pour plus d'information.

Fichier de configuration de SquashTM

Ce paragraphe décrit les paramètres de configuration disponibles dans le fichier de configuration (conf/squash.tm.cfg.properties) de SquashTM.

Attention

Une fois les modifications effectuées et le fichier squash.tm.cfg.properties (ou le fichier de configuration auxiliaire) sauvegardé, vous devez redémarrer SquashTM pour qu'elles soient prises en compte.

Autres méthodes de configuration

SquashTM utilise Spring Boot qui fournit de nombreux mécanismes, autres que la modification du fichier squash.tm.cfg.properties, pour définir les valeurs des paramètres de configuration : variables d'environnement, JSON intégré dans SPRING_APPLICATION_JSON… Consultez la documentation de Spring Boot pour obtenir la liste exhaustive des façons de définir ces valeurs.
Par exemple, si vous souhaitez démarrer SquashTM dans Docker en définissant squashtm.stack.trace.control.panel.visible à true, vous pouvez utiliser :

docker run --name='squash-tm' --env SQUASHTM_STACK_TRACE_CONTROL_PANEL_VISIBLE=true -it -p 8090:8080 squashtest/squash:13.0.0

Gestion de la configuration

ParamètreDescriptionValeur par défautRemarques
spring.profiles.includePermet de diviser la configuration en plusieurs fichiers-depuis Squash TM 1.18.0
Liste d'identifiants séparés par des virgules.
Les fichiers de configuration auxiliaires doivent être nommés soit squash.tm.cfg-<ident>.properties soit application-<ident>.properties.

Tomcat

ParamètreDescriptionValeur par défautRemarques
server.portDéfinit le port d'accès du serveur8080Veuillez noter que le système ne vérifiera pas si le port choisi est disponible. Assurez-vous donc que c'est le cas en contactant l'administrateur système.
server.servlet.session.timeoutDéfinit le délai d'expiration de la session3600 (secondes)-
server.tomcat.accesslog.enabledActive les logs d'accès Tomcatfalsetrue ou false
server.tomcat.basedirDéfinit le répertoire de base pour Tomcat${squash.path.root}/tomcat-work-
server.tomcat.use-relative-redirectsAssure que les redirections internes utilisent le protocole HTTPS dans les environnements HTTPStruetrue ou false
server.servlet.context-pathContext path de SquashTM/squashDéfinir server.servlet.context-path=/foo obligera les utilisateurs à se connecter via l'URL <squash-base-url>/foo.

Lorsque le port 80 est bloqué pour des raisons de sécurité, il est nécessaire de définir server.tomcat.use-relative-redirects à true pour que les redirections internes soient systématiquement effectuées via le port 443.

Chemins de SquashTM

ParamètreDescriptionValeur par défautRemarques
spring.config.locationDéfinit l'emplacement de la configuration../conf-
squash.path.rootDéfinit le chemin racine pour SquashTM${spring.config.location}/..-
squash.path.bundles-pathDéfinit le chemin pour les bundles${squash.path.root}/bundles-
squash.path.plugins-pathDéfinit le chemin pour les plugins${squash.path.root}/plugins-
squash.path.languages-pathDéfinit le chemin pour les fichiers de langue${spring.config.location}/lang-
squash.path.local-git-repositories-folderDéfinit le chemin pour les clones locaux de dépôts Git${squash.path.root}/git-repositoriesdepuis Squash TM 8.0.0
Voir cette page.
squash.project-imports.folder-pathDéfinit le chemin pour les fichiers en file d'attente et les logs des imports${squash.path.root}/importsdepuis Squash TM 8.0.0
Voir cette page pour les imports Xray.
squash.report-custom-template.folder-pathDéfinit le chemin pour les templates personnalisés des rapports${spring.config.location}/report.custom.templatesdepuis Squash TM 9.0.0
Voir cette page pour les templates des rapports.

Sécurité

ParamètreDescriptionValeur par défautRemarques
squash.security.basic.token-charsetDéfinit l'encodage pour les endpoints (points de terminaison) sécurisés par authentification de base-depuis Squash TM 1.16.1
Par exemple :
UTF-8, ISO-8859-1
squash.crypto.secretDéfinit la clé de chiffrement pour les identifiants des outils tiers-depuis Squash TM 1.17.0
Les identifiants et mots de passe saisis pour la connexion aux outils tiers sont chiffrés dans la base de données en utilisant cette clé de chiffrement.
L'application est livrée avec une clé de chiffrement par défaut, celle-ci doit être immédiatement changée.
Doit faire au minimum 12 caractères, mais préférablement 16+ caractères pour une sécurité renforcée. Les espaces et tabulations ne sont pas autorisées.
Par exemple :
jN9$mK5vP#xR2hL8nQ4&
Changer cette clé ultérieurement rendra inutilisables les identifiants précédemment stockés.
squash.rest-api.disallow-basic-authenticationInterdit l'authentification de base pour l'API RESTtruedepuis Squash TM 7.1.0
squash.rest-api.jwt.secretDéfinit le secret utilisé pour chiffrer les jetons pour les appels API REST-depuis Squash TM 7.1.0
Doit être d'au moins 512 bits et encodé en base64 (au moins 86 caractères).
Par exemple :
Ym9uam91cmplc3Vpc2RldmVsb3BwZXVzZXN1cnNxdWFzaHRtZXRub3Vzc29tbWVzZW5sYW5uZWUyMDI0ISEhIS

Dépréciation de l'authentification de base

Depuis Squash TM 10.1.0, la propriété squash.rest-api.disallow-basic-authentication est définie à true par défaut (auparavant, elle était à false par défaut).
À partir de mi-2026, l'authentification de base (login/mot de passe) pour les appels API ne sera plus possible, l'authentification devra se faire par jeton.

Connexion à la base de données

ParamètreDescriptionValeur par défautRemarques
spring.profiles.activeDéfinit le type de moteur de base de données-depuis Squash TM 10.1.0
Valeurs possibles : postgresql ou mariadb.
spring.datasource.passwordDéfinit le mot de passe-depuis Squash TM 10.1.0
spring.datasource.usernameDéfinit le nom d'utilisateur-depuis Squash TM 10.1.0
spring.datasource.urlDéfinit l'URL de connexion-depuis Squash TM 10.1.0
spring.datasource.hikari.maximumPoolSizeConfigure la taille du pool de connexions20Référez-vous à la documentation HikariCP pour plus de détails.

Fichiers de configuration auxiliaires

SquashTM est livré avec deux fichiers de configuration auxiliaires, squash.tm.cfg-mariadb.properties et squash.tm.cfg-postgresql.properties, que vous pouvez utiliser de la façon suivante :

  • Si vous utilisez PostgreSQL :
    • mettre postgresql comme valeur de spring.profiles.include dans le fichier squash.tm.cfg.properties ;
    • indiquer les valeurs des paramètres de la table précédente dans le fichier squash.tm.cfg-postgresql.properties.
  • Si vous utilisez MariaDB :
    • mettre mariadb comme valeur de spring.profiles.include dans le fichier squash.tm.cfg.properties ;
    • indiquer les valeurs des paramètres de la table précédente dans le fichier squash.tm.cfg-mariadb.properties.

Vous pouvez également ne pas utiliser ces fichiers auxiliaires et indiquer les valeurs des paramètres de la table précédente directement dans le fichier squash.tm.cfg.properties.

Mise à jour de la base de données

ParamètreDescriptionValeur par défautRemarques
squash.db.update-modeActive/désactive la mise à jour automatique de la base de donnéesinteractivedepuis Squash TM 9.0.0
Voir cette page pour les valeurs possibles.

Fonctionnalités d'administration

ParamètreDescriptionValeur par défautRemarques
squashtm.feature.file.repositoryActive/désactive l'externalisation des pièces jointesfalsetrue ou false
Lisez la documentation avant d'activer.
squashtm.stack.trace.control.panel.visibleAffiche/cache la configuration de l'affichage de la trace d'erreurfalsetrue ou false
Si true, le panneau de configuration pour activer/désactiver les détails d'erreur est visible dans la page 'Paramètres système'.

Rapports

ParamètreDescriptionValeur par défautRemarques
report.criteria.project.multiselectActive/désactive les sélections multiples dans les sélecteurs de projetsfalse-

Connexion aux bugtrackers

ParamètreDescriptionValeur par défautRemarques
squashtm.bugtracker.timeoutDéfinit le délai d'attente pour les tentatives du serveur d'atteindre un bugtracker15 (secondes)-
squash.bugtracker.cache-update-delayDéfinit le délai entre les mises à jour du cache du connecteur du bugtracker86400 (secondes)depuis Squash TM 7.3.0
squash.bugtracker.cache-update-cronDéfinit une expression Cron pour la mise à jour du cache des connecteurs du bugtracker. Si définie, elle remplacera le délai.-depuis Squash TM 9.0.0
Exemple : "0 0 0 * * *" mettra à jour le cache tous les jours à minuit.
Pour plus d'informations sur les expressions Cron Spring, consultez la documentation Spring CronExpression.
squash.bugtracker.cache-worker-pool-sizeDéfinit le nombre de workers dédiés à la mise à jour du cache des connecteurs du bugtracker.5depuis Squash TM 9.0.0
squash.bugtracker.max-results-per-searchDéfinit le nombre maximum de résultats renvoyés pour les recherches par autocomplétion sur les issues.50 (résultats)depuis Squash TM 9.0.0
La valeur maximale est 100.
La valeur minimale est 5.
Il est recommandé d'abaisser cette valeur si les projets GitLab utilisés contiennent un grand nombre d'issues.

Bugzilla

ParamètreDescriptionValeur par défautRemarques
plugin.bugtracker.bugzilla.cache.enableActive/désactive la fonctionnalité de cache des champs Bugzillafalsetrue ou false
Utilisez cette fonctionnalité si la récupération des champs prend beaucoup de temps.
Si true, tous les champs des serveurs Bugzilla seront mis en cache en mémoire une fois récupérés.
plugin.bugtracker.bugzilla.cache-at-start.bugtracker-urlsDéfinit les URLs des gestionnaires de bugs qui doivent initialiser le cache des champs au démarrage de SquashTM-Utilisez une liste séparée par des virgules
plugin.bugtracker.bugzilla.cache-refresh.cron-expressionDéfinit l'expression Cron qui détermine quand effectuer un rafraîchissement du cache des champs Bugzilla-Pour plus d'informations sur les expressions Cron Spring, consultez la documentation Spring CronExpression.

Import Excel

ParamètreDescriptionValeur par défautRemarques
squash.xls-imports.max-concurrent-importsDéfinit le nombre maximum d'imports simultanés-depuis Squash TM 7.4.0
SquashTM refusera d'effectuer un import Excel si cette limite est atteinte.
Cette limite est utilisée pour éviter de surcharger SquashTM ; sa valeur dépend du CPU et de la RAM du serveur.
L'absence de valeur signifie qu'il n'y a pas de limite, c'est la configuration par défaut.
squash.xls-imports.max-test-cases-per-importDéfinit le nombre maximum de cas de test dans un fichier d'import-depuis Squash TM 7.4.0
SquashTM refusera d'effectuer un import Excel si cette limite est atteinte.
Cette limite est utilisée pour éviter de surcharger SquashTM ; sa valeur dépend du CPU et de la RAM du serveur.
L'absence de valeur signifie qu'il n'y a pas de limite, c'est la configuration par défaut.
squash.xls-imports.max-test-steps-per-importDéfinit le nombre maximum de pas de test dans un fichier d'import-depuis Squash TM 7.4.0
SquashTM refusera d'effectuer un import Excel si cette limite est atteinte.
Cette limite est utilisée pour éviter de surcharger SquashTM ; sa valeur dépend du CPU et de la RAM du serveur.
L'absence de valeur signifie qu'il n'y a pas de limite, c'est la configuration par défaut.
squash.xls-imports.max-requirements-per-importDéfinit le nombre maximum d'exigences dans un fichier d'import-depuis Squash TM 8.0.0
SquashTM refusera d'effectuer un import Excel si cette limite est atteinte.
Cette limite est utilisée pour éviter de surcharger SquashTM ; sa valeur dépend du CPU et de la RAM du serveur.
L'absence de valeur signifie qu'il n'y a pas de limite, c'est la configuration par défaut.

Import de projet

Actuellement, seul l'import de projets Xray est disponible.

ParamètreDescriptionValeur par défautRemarques
squash.project-imports.delayDéfinit le délai entre deux processus d'import3600 (secondes)depuis Squash TM 8.0.0

Synchronisations Jira et GitLab

ParamètreDescriptionValeur par défautRemarques
squash.external.synchronisation.enabledActive/désactive le traitement planifié de toutes les synchronisationstruedepuis Squash TM 7.0.0
true ou false
squash.external.synchronisation.delayDéfinit le délai entre deux synchronisations300 (secondes)-
squash.external.synchronisation.max-items-per-syncDéfinit le nombre maximum d'éléments dans le champ d'application lors de la création d'une nouvelle synchronisation-depuis Squash TM 8.0.0

squash.external.synchronisation.enabled active ou désactive le processus planifié pour toutes les synchronisations.
Cette propriété n'affecte pas l'attribut activée des synchronisations.
Passer cette propriété à false peut être utile dans des situations telles que :

  • Vous n'utilisez pas de synchronisations ;
  • L'instance est un SquashTM de pré-production ayant une copie de la base de données de production et vous devez éviter que les synchronisations enregistrées dans la base de données ne s'exécutent sur cette instance pour ne pas polluer vos tickets Jira/GitLab ;
  • Vous utilisez une autre instance de SquashTM pour gérer les synchronisations.

squash.external.synchronisation.delay définit le délai entre deux mises à jour, exprimé en secondes. Si cette propriété est manquante ou incorrecte, le délai par défaut est fixé à cinq minutes (300 secondes) et un avertissement apparaît dans les logs de SquashTM au démarrage de l'application. Plus le délai est court, plus SquashTM consomme de ressources. Pour la plupart des utilisations courantes, un délai entre 5 et 15 minutes est suffisant.

Jira

ParamètreDescriptionValeur par défautRemarques
plugin.synchronisation.jira.batchSizeDéfinit la taille du batch pour les requêtes API REST de Jira50-

Le plugin Xsquash4Jira a une propriété, plugin.synchronisation.jira.batchSize, définissant la taille du batch pour mettre à jour les informations de Jira.
La valeur par défaut est 50, qui doit être inférieure ou égale à la valeur jira.search.views.default.max définie dans le fichier de propriétés jira-config.properties. Cette valeur par défaut fonctionne bien avec Data Center et Cloud, si aucune modification de configuration n'a été apportée à l'instance Jira.

GitLab

ParamètreDescriptionValeur par défautRemarques
plugin.synchronisation.gitlab.webhook.secret-tokenDéfinit le jeton secret optionnel utilisé pour valider les webhooks GitLab-Voir plus de détails ici.
plugin.synchronisation.gitlab.webhook.show-secret-tokenAffiche/masque le jeton secret sur l'écran d'administration du plugintruetrue ou false
Voir plus de détails ici.

TM-TA

ParamètreDescriptionValeur par défautRemarques
tm.test.automation.pollinterval.millisDéfinit l'intervalle de polling pour l'automatisation des tests3000 (millisecondes)-

LDAP et Active Directory

Consultez cette page pour plus d'informations.

LDAP unique

Utilisez ces paramètres pour configurer l'authentification avec un seul serveur LDAP.

ParamètreDescriptionValeur par défautRemarques
authentication.providerDéfinit le fournisseur d'authentification-ldap ou ldap,internal pour multi-sources (c-à-d internal signifie que les utilisateurs peuvent également utiliser leur compte local SquashTM)
authentication.ldap.server.urlDéfinit l'URL du serveur LDAP-Par exemple :
ldap://localhost:389
authentication.ldap.server.managerDnDéfinit le user DN du manager (si l'accès anonyme n'est pas autorisé)-Par exemple :
CN=admin,CN=Users,DC=example,DC=com
authentication.ldap.server.managerPasswordDéfinit le mot de passe du manager (si l'accès anonyme n'est pas autorisé)-Par exemple :
quelquechose
authentication.ldap.user.searchBaseDéfinit la base de recherche DN-Par exemple :
DC=example,DC=com
authentication.ldap.user.searchFilterDéfinit le filtre de recherche-Par exemple :
(uid={0})
authentication.ldap.user.fetchAttributesDéfinit s'il faut récupérer les attributs de l'utilisateurtruetrue ou false
authentication.ldap.user.dnPatternsDéfinit les modèles de DN de base pour la recherche d'utilisateurs-Par exemple :
uid={0},ou=people

Multi-LDAP

Utilisez ces paramètres pour configurer l'authentification avec plusieurs serveurs LDAP.

ParamètreDescriptionValeur par défautRemarques
authentication.providerDéfinit le fournisseur d'authentification-ldap-multi ou ldap-multi,internal pour multi-sources (c-à-d internal signifie que les utilisateurs peuvent également utiliser leur compte local SquashTM)
authentication.ldap.multi.root.namesDéfinit les noms des multiples serveurs LDAP-Par exemple :
ldap1,ldap2

Pour chaque serveur LDAP (ex. ldap1, ldap2), utilisez les propriétés suivantes, préfixées par le nom du serveur :

ParamètreDescriptionValeur par défautRemarques
[nom].authentication.ldap.server.urlDéfinit l'URL du serveur LDAP-Par exemple :
ldap://localhost:389
[nom].authentication.ldap.server.managerDnDéfinit le user DN du manager (si l'accès anonyme n'est pas autorisé)-Par exemple :
CN=admin,CN=Users,DC=example,DC=com
[nom].authentication.ldap.server.managerPasswordDéfinit le mot de passe du manager (si l'accès anonyme n'est pas autorisé)-Par exemple :
quelquechose
[nom].authentication.ldap.user.searchBaseDéfinit la base de recherche DN-Par exemple :
DC=example,DC=com
[nom].authentication.ldap.user.searchFilterDéfinit le filtre de recherche-Par exemple :
(uid={0})
[nom].authentication.ldap.user.fetchAttributesDéfinit s'il faut récupérer les attributs de l'utilisateur-Par exemple :
false
[nom].authentication.ldap.user.dnPatternsDéfinit les modèles de DN de base pour la recherche d'utilisateurs-Par exemple :
uid={0},ou=people

Active Directory unique

Utilisez ces paramètres pour configurer l'authentification avec un seul serveur Active Directory.

ParamètreDescriptionValeur par défautRemarques
authentication.providerDéfinit le fournisseur d'authentification-ad.ldap ou ad.ldap,internal pour multi-sources (c-à-d internal signifie que les utilisateurs peuvent également utiliser leur compte local SquashTM)
authentication.ad.server.urlDéfinit l'URL du serveur AD-Par exemple :
ldap://localhost:389
authentication.ad.server.domainDéfinit le domaine du serveur AD-Par exemple :
ad.squashtest.org
authentication.ad.server.managerDnDéfinit le user DN du manager-Par exemple :
admin
authentication.ad.server.managerPasswordDéfinit le mot de passe du manager-Par exemple :
quelquechose
authentication.ad.user.searchBaseDéfinit la base de recherche--
authentication.ad.user.searchFilterDéfinit le filtre de recherche-Par exemple :
(&(objectClass=user)(userPrincipalName={0}))

Multi-Active Directory

Utilisez ces paramètres pour configurer l'authentification avec plusieurs serveurs Active Directory.

ParamètreDescriptionValeur par défautRemarques
authentication.providerDéfinit le fournisseur d'authentification-ad.ldap-multi ou ad.ldap-multi,internal pour multi-sources (c-à-d internal signifie que les utilisateurs peuvent également utiliser leur compte local SquashTM)
authentication.ad.multi.root.namesDéfinit les noms des multiples serveurs AD-Par exemple :
ad1,ad2

Pour chaque serveur AD (ex. ad1, ad2), utilisez les propriétés suivantes, préfixées par le nom du serveur :

ParamètreDescriptionValeur par défautRemarques
[nom].authentication.ad.server.urlDéfinit l'URL du serveur AD-Par exemple :
ldap://localhost:389
[nom].authentication.ad.server.domainDéfinit le domaine du serveur AD-Par exemple :
ad.squashtest.org
[nom].authentication.ad.server.managerDnDéfinit le user DN du manager-Par exemple :
admin
[nom].authentication.ad.server.managerPasswordDéfinit le mot de passe du manager-Par exemple :
quelquechose
[nom].authentication.ad.user.searchBaseDéfinit la base de recherche--
[nom].authentication.ad.user.searchFilterDéfinit le filtre de recherche-Par exemple :
(&(objectClass=user)(userPrincipalName={0}))

SAML

Consultez cette page pour plus d'informations.

PropriétéDescriptionValeur par défautRemarques
Configuration principale
saml.enabledActive/désactive SAMLfalsetrue ou false
authentication.providerDéfinit le fournisseur d'authentification-saml ou saml,internal pour une source multiple (c-à-d internal signifie que les utilisateurs peuvent également utiliser leur compte SquashTM local)
saml.idp.metadata-urlDéfinit l'URL ou le chemin où les métadonnées de l'IDP peuvent être trouvées-Formats autorisés :
- file://chemin/absolu/vers/fichier : récupère un fichier localement par son chemin absolu
- http:// ou https://metadata.hote-distant/chemin/vers/fichier : téléchargement distant des métadonnées via HTTP(S)
- chemin/relatif/vers/fichier : un chemin relatif au répertoire de configuration de SquashTM (par exemple saml/idp.xml)
saml.sp.registration-idIdentifiant unique utilisé pour enregistrer votre fournisseur de services (SP) dans la configuration SAML du plugin.-Par exemple : google.
saml.sp.entity-idIdentifiant unique de l'instance SquashTM. Cette valeur doit être unique au sein de votre écosystème d'authentification et sera communiquée au fournisseur d'identité (IdP).-Par exemple : urn:squash-tm:saml ou https://squash-tm.votre-entreprise.com/saml.
saml.sp.metadata.private-keyClé privée au format PKCS8 utilisée par le fournisseur de services (SP) pour signer les requêtes et déchiffrer les messages.-Format PKCS8 obligatoire.
saml.sp.metadata.certificateCertificat X.509 du fournisseur de services (SP) utilisé pour la validation des signatures et le chiffrement.--
Point d'entrée
squash.security.preferred-auth-urlDéfinit le point d'entrée d'authentification SAML comme point d'entrée principal/auth/saml/login/{registration-id}Les utilisateurs non authentifiés seront automatiquement redirigés vers le point d'entrée SAML au lieu du formulaire de connexion habituel.
Options SSO
saml.sso.force-authNActive/désactive la réauthentification forcéefalsetrue ou false
Si activé, l'utilisateur devra se réauthentifier auprès de l'IDP chaque fois qu'il voudra s'authentifier auprès de SquashTM. Cela désactive effectivement le mécanisme SSO.
saml.sso.provider-nameDéfinit un nom lisible par l'humain qui sera inclus dans les messages envoyés à l'IDP, utile à des fins de journalisation(vide)-
saml.sso.bindingDéfinit quelle liaison SquashTM utilise pour initier le SSO avec l'IDPPremière méthode de liaison listée dans la clause <SingleSignOnService/> des métadonnées de l'IDPPour plus d'informations, voir ce document.
Par exemple :
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST, urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
saml.sso.assertion-consumer-indexRequiert que l'IDP envoie ses réponses au service consommateur donné.Le service consommateur par défaut dans les métadonnées SPUn entier positif ou nul, ou vide
La liste des services consommateurs disponibles peut être trouvée dans les clauses <AssertionConsumerService/> dans les métadonnées SP.
saml.sso.nameIDRequiert que l'IDP renvoie le principal avec un NameIDFormat donné, qui est essentiellement le nom d'utilisateur de l'utilisateur dans SquashTMSi vide, l'IDP en choisira un parmi ceux listés dans les métadonnées SPPar exemple :
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:2.0:nameid-format:transient
saml.sso.allow-createNotifie l'IDP que la création de nouveaux utilisateurs est autorisée lorsqu'ils sont inconnusfalsetrue ou false
saml.sso.passiveSi activé, SquashTM informera l'IDP qu'il ne considère pas l'interaction de l'utilisateur nécessaire pour l'authentification-true ou false
saml.sso.include-scopingSi activé, SquashTM ajoutera des contraintes de portée supplémentaires lorsqu'un utilisateur s'authentifiefalsetrue ou false
saml.sso.allowed-idpsDéfinit, dans une architecture IDP multicouche, quels IDP sont autorisés à traiter les demandes d'authentification.-Une liste d'IDP séparés par des virgules
Remarque : le scoping doit être activé.
saml.sso.proxy-countDéfinit le nombre maximum de sauts de proxy autorisés pour les messages d'authentification2Un entier positif ou nul
Dans ce contexte, un proxy est un IDP au sein d'une chaîne d'IDP qui peut déléguer l'un à l'autre. Une valeur de 0 interdit l'utilisation de proxies et l'IDP qui reçoit la demande d'authentification ne peut pas déléguer et doit authentifier l'utilisateur lui-même.
Remarque : le scoping doit être activé.
saml.sso.authn-contextsDéfinit les contextes d'authentification qui doivent être honorés par l'IDP lorsqu'il authentifie l'utilisateur(vide, c-à-d pas d'exigences spécifiques)Une liste séparée par des virgules
Utile lorsque le défi d'authentification IDP par défaut n'est pas jugé assez sûr et que SquashTM demande des garanties d'un processus plus strict.
Par exemple :
urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI, urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract
Remarque : le scoping doit être activé.
Pour plus d'informations, voir ce document.
saml.sso.authn-context-comparisonIndique à l'IDP comment il doit traiter les identifiants présentés par l'utilisateur lors de l'authentificationexactexact, minimum, maximum, ou better
Remarque : le scoping doit être activé.
Pour plus d'informations, voir ce document.
saml.sso.relay-stateDéfinit un jeton arbitraire à envoyer d'avant en arrière à l'IDP(vide)Fait partie de la spécification SAML mais SquashTM n'a pas de cas d'utilisation pour cela.
Options des métadonnées SP
name-id-formatDéfinit le format du NameID utilisé pour identifier l'utilisateur dans la requête d'authentification SAML.(vide)depuis Squash TM 10.1.0
Par exemple : urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress, urn:oasis:names:tc:SAML:2.0:nameid-format:transient
authn-requests-signedIndique si les requêtes d'authentification SAML envoyées par le SP doivent être signées.falsetrue ou false
single-logout-service-bindingDéfinit le type de binding (protocole de transport) utilisé par le SP pour communiquer avec le Single Logout Service de l'IdP.urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POSTurn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST ou urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
saml.sp.metadata.trusted-keysDéfinit quelles clés doivent être considérées comme des ancres de confiance pour la vérification PKIX du fichier de métadonnées SPallall (toutes les clés du keystore seront considérées comme fiables), vide (équivalent à all), none (aucune des clés du keystore ne sera considérée comme fiable), ou une liste de clés séparées par des virgules (les clés doivent exister dans le keystore).
Options de session SP
saml.session.max-assertion-timeDéfinit l'intervalle de validité d'une assertion d'authentification pendant le processus SSO3000 (secondes)Si le processus n'est pas terminé dans ce délai, le processus a échoué et le SSO doit être réinitialisé à partir de zéro. Notez que la valeur par défaut est suffisamment grande pour la plupart des situations.
saml.session.max-auth-timeDéfinit l'intervalle de validité d'une authentification IDP864000 (secondes, soit 10 jours)À l'expiration, SquashTM considérera que l'utilisateur doit se réauthentifier auprès de l'IDP.
saml.session.clock-skewDéfinit en secondes la tolérance maximale acceptée pour les décalages d'horloge entre le fournisseur de services (SP) et le fournisseur d'identité (IdP)300 (secondes)À l'expiration, SquashTM considérera les assertions SAML comme expirées, même si un léger écart d'horloge subsistait entre les systèmes
Options de proxy inverse / répartiteur de charge
saml.proxy.enabledActive/désactive le support du proxy inversefalsetrue ou false
saml.proxy.server-nameDéclare le nom d'hôte du proxy inverse-Ceci doit être défini si le support du proxy est activé, car il n'a pas de valeur par défaut.
saml.proxy.schemeDéclare le schéma utilisé par le proxy inverse pour les communications sortanteshttpshttp ou https
saml.proxy.server-portDéclare le port utilisé par le proxy inverse pour les communications sortantes443Un numéro de port valide
saml.proxy.context-pathDéclare le chemin de contexte de l'application tel que servi par le proxy inverse/squashUn chemin de contexte, commençant par une barre oblique /
saml.proxy.include-port-in-urlIndique si le numéro de port doit être explicitement inclus dans l'URL de la requêtetruetrue ou false
Attributs supplémentaires de l'assertionL'assertion retournée par l'IDP peut contenir des attributs supplémentaires sur le compte utilisateur que vous souhaitez peut-être utiliser dans SquashTM.
Les propriétés suivantes vous permettent de mapper certains de ces attributs au compte utilisateur de SquashTM.
Leur valeur par défaut est null (aucun mapping défini pour cet attribut). C'est différent d'une valeur vide, c-à-d que si vous n'en avez pas besoin, laissez-les en commentaire.
saml.user-mapping.alternate-usernameDéfinit une valeur d'attribut supplémentaire comme nom d'utilisateur dans SquashTM (au lieu du NameID nominal)-Un nom de propriété
saml.user-mapping.first-nameDéfinit une valeur d'attribut supplémentaire comme prénom d'un compte utilisateur dans SquashTM-Un nom de propriété
saml.user-mapping.last-nameDéfinit une valeur d'attribut supplémentaire comme nom de famille d'un compte utilisateur dans SquashTM-Un nom de propriété
saml.user-mapping.emailDéfinit une valeur d'attribut supplémentaire comme email d'un compte utilisateur dans SquashTM-Un nom de propriété

OpenID Connect

Consultez cette page pour plus d'informations.
<idp-name> doit être remplacé par le nom de l'IDP en minuscules.

ParamètreDescriptionValeur par défautRemarques
Configuration principale
oidc.access.whitelistRestreint l'accès en fonction du domaine de l'email de l'utilisateur-Une liste de domaines séparés par des virgules
Par défaut, l'accès à SquashTM et la restriction des utilisateurs doivent être configurés directement dans l'IDP.
Cette propriété gère la restriction d'accès du côté de SquashTM au cas où l'IDP n'offrirait pas cette possibilité.
Elle vérifie que le domaine de l'email de l'utilisateur qui se connecte correspond à une ou plusieurs des valeurs de domaine indiquées via cette propriété.
Si cette propriété est laissée vide, aucune restriction ne sera appliquée.
Par exemple :
@company-name.com,@domain.fr
squash.security.preferred-auth-urlDéfinit le point d'entrée principal pour les requêtes d'utilisateurs non authentifiés/login (c-à-d la page de connexion pour l'authentification de base par formulaire)Cette propriété gère le comportement de SquashTM en termes de requêtes d'utilisateurs non authentifiés.
Elle définit l'URL vers laquelle l'utilisateur sera redirigé pour la connexion, en d'autres termes, elle définit le point d'entrée principal.
Si la valeur définie correspond au modèle /oidc/authorization/<idp-name>, la connexion sera redirigée vers la page de connexion de l'IDP spécifié ou connectée directement s'ils sont déjà connectés à leur IDP.
Note : il s'agit d'une propriété générique de SquashTM et elle n'est pas exclusive à OpenID Connect.
Options du fournisseur IDPLes options ci-dessous vous permettent de déclarer un nouvel IDP personnalisé à utiliser avec SquashTM. Pour certains fournisseurs (Google, Facebook, GitHub, Okta…), certaines de ces propriétés sont préconfigurées et peuvent être omises.
Les valeurs de configuration OpenID Connect pour un IDP sont souvent accessibles depuis l'endpoint de configuration bien connu du fournisseur : <issuer-uri>/.well-known/openid-configuration
spring.security.oauth2.client.provider.<idp-name>.user-name-attributeSpécifie quel attribut utiliser comme nom d'utilisateur dans SquashTM--
spring.security.oauth2.client.provider.<idp-name>.issuer-uriSpécifie l'URL de l'identifiant de l'émetteur--
spring.security.oauth2.client.provider.<idp-name>.authorization-uriSpécifie l'endpoint de l'IDP pour démarrer la demande d'autorisation--
spring.security.oauth2.client.provider.<idp-name>.token-uriSpécifie l'endpoint pour récupérer les jetons d'accès--
spring.security.oauth2.client.provider.<idp-name>.user-info-uriSpécifie l'endpoint pour récupérer les données utilisateur--
spring.security.oauth2.client.provider.<idp-name>.jwk-set-uriSpécifie l'URI pour récupérer la clé publique du fournisseur d'authentification-Ceci est utilisé pour vérifier les jetons JWT.
Options du client IDP
spring.security.oauth2.client.registration.<idp-name>.client-idSpécifie l'identifiant du client OAuth2-Fourni par l'IDP lors de l'enregistrement de votre instance SquashTM.
spring.security.oauth2.client.registration.<idp-name>.client-secretSpécifie le secret du client OAuth2-Fourni par l'IDP lors de l'enregistrement de votre instance SquashTM.
spring.security.oauth2.client.registration.<idp-name>.authorization-grant-typeSpécifie le type d'autorisation OAuth2-SquashTM prend en charge authorization_code.
spring.security.oauth2.client.registration.<idp-name>.redirect-uriSpécifie l'URL à laquelle la réponse d'authentification sera envoyée-Doit matcher le pattern /oidc/code/*
Il s'agit de l'URI de redirection configurée dans l'IDP.
spring.security.oauth2.client.registration.<idp-name>.scopeDéfinit les informations que l'IDP fournira sur l'utilisateur-Les scopes disponibles peuvent varier d'un IDP à l'autre. OpenID Connect nécessite le scope openid, mais des scopes supplémentaires peuvent être spécifiés.
spring.security.oauth2.client.registration.<idp-name>.client-nameSpécifie le nom du client IDP--