SAML
Présentation
Le plugin SAML ajoute un nouveau point d'entrĂ©e pour l'authentification sur Squash TM. Il s'accompagne de nombreux avantages, tels qu'un service d'authentification sĂ©curisĂ© et centralisĂ©, et un service SSO. Ce plugin ne remplace pas le point d'entrĂ©e par dĂ©faut qu'est le formulaire de connexion. Les utilisateurs et administrateurs peuvent continuer d'utiliser cette interface pour s'authentifier en local s'ils le souhaitent (cette fonctionnalitĂ© peut ĂȘtre dĂ©sactivĂ©e).
Squash TM supporte SAML 2.0.
Fonctionnalités
Les fonctionnalités prises en charge sont les suivantes :
- SSO Web ;
- SSO initié par SP ou IdP ;
- Profils HTTP-POST, HTTP Redirect ;
- Vérification de confiance à l'aide de Metadata Interoperability ou ICP (PKIX) ;
- Prise en charge du scoping et des contextes d'authentification ;
- Génération de métadonnées SP ;
- Publication de métadonnées SP.
Points de Terminaison
Le plugin SAML ajoute des points de terminaison (endpoints) :
/auth/saml/login/{registration-id}
: point d'entrée SAML pour l'authentification de l'utilisateur ;/auth/saml/sso/{registration-id}
: point de terminaison pour les profils SSO, également connus sous le nom de service ACS (Assertion Consumer Service) ;/auth/saml/metadata/{registration-id}
: l'URI des métadonnées ;/auth/saml/SingleLogout
: URL de déconnexion simple.
Pour rappel, le chemin de contexte de l'application est toujours requis. Par exemple, pour le déploiement final de Squash TM, l'URL serait semblable à : http://someserver:8080/squash/auth/saml/login/google
.
Limites
Le plugin SAML ne prend en charge les métadonnées que pour un seul fournisseur d'identité (IdP) et un seul SP. Pour cette raison, il n'y a pas de services de découverte d'IdP : les utilisateurs sont redirigés vers le seul IdP connu.
Intégrer Squash et le plugin SAML à son environnement
Le schéma ci-dessous illustre les acteurs et les ressources impliquées dans les interactions SAML.
Utilisateurs : Les utilisateurs veulent avoir accÚs aux ressources détenues par le Fournisseur de service, aprÚs avoir réussi à s'authentifier auprÚs du Fournisseur d'identité.
Fournisseur d'identité : Le fournisseur d'identité (ou IdP, de l'anglais Identity Provider) détient l'annuaire des utilisateurs. C'est lui qui se charge de l'authentification des utilisateurs, et, si elle est réussie, de fournir des certificats d'authentification s'il s'agit d'un scénario SSO. Les services SAML pris en charge par l'IdP sont listés et publiés dans un fichier intitulé Métadonnées IdP qui définit quelles données seront échangées et comment elles le seront.
Fournisseur de service : Le fournisseur de services (SP, de l'anglais Service Provider) est le serveur avec lequel l'utilisateur souhaite interagir. Dans notre cas, il s'agit de Squash TM. Ce fournisseur délÚgue les problÚmes d'authentification à l'IdP, mais c'est lui qui détient les autorisations. Comme l'IdP, il publie les fonctionnalités SAML qu'il prend en charge dans des métadonnées SP.
SP/IdP Metadata : Ces fichiers publient les fonctionnalités prises en charge par le serveur qu'elles décrivent. Ils comportent les listes de point de terminaisons, de type de lien SSO préférés (HTTP-POST, redirect, etc.), d'informations attendues sur les utilisateurs (et sous quel format), de certificats utilisés pour le chiffrement, et de signatures.
à son lancement, Squash construit le fichier de métadonnées du SP à partir des propriétés du fichier de configuration et accÚde aux métadonnées du SP et de l'IdP. Les métadonnées SP sont accessibles via l'URL /auth/saml/metadata/{registration-id}
oĂč le registration-id
est la valeur entrĂ©e dans le fichier de configuration. Les mĂ©tadonnĂ©es de l'IdP peuvent ĂȘtre rĂ©cupĂ©rĂ©es soit localement, soit Ă distance via une connexion HTTP(S). Dans l'exemple, les mĂ©tadonnĂ©es IdP sont tĂ©lĂ©chargeables directement depuis l'IdP.
L'Ă©tape suivante est la validation des mĂ©tadonnĂ©es, qui inclut une validation syntaxique et une vĂ©rification de la signature des mĂ©tadonnĂ©es. Les certificats peuvent Ă©ventuellement ĂȘtre vĂ©rifiĂ©s, notamment au niveau de leur chaĂźne de confiance et de leur rĂ©vocation (ou il est possible de simplement assumer leur validitĂ© si la source est de confiance).
Lorsque toutes les vĂ©rifications ont Ă©tĂ© effectuĂ©es, Squash signe ces mĂ©tadonnĂ©es et les publie pour qu'elles puissent ĂȘtre utilisĂ©es par des outils tiers. C'est alors qu'il est possible de configurer l'IdP et dĂ©clarer l'instance Squash TM comme une source de demandes d'authentification valide, et lui fournir les mĂ©tadonnĂ©es SP si nĂ©cessaire.
Ă ce stade, le plugin est opĂ©rationnel. Squash TM interagit avec l'IdP directement ou indirectement (via le navigateur Internet de l'utilisateur), selon le profil de liens SSO choisi. Squash TM peut Ă©galement ĂȘtre configurĂ© pour fonctionner avec des serveurs mandataires (proxy) si l'un d'entre eux se trouve entre deux serveurs et qu'une communication directe est requise (non-illustrĂ©).
Utilisation
Par défaut, les utilisateurs peuvent s'authentifier sur Squash TM en utilisant soit l'interface avec le formulaire d'authentification (/login
), soit l'interface SAML SSO (/auth/saml/login/{registration-id}
). Chaque interface peut ĂȘtre sĂ©lectionnĂ©e en tant qu'interface principale. Par dĂ©faut, les utilisateurs seront automatiquement redirigĂ©s vers cette interface. Si un utilisateur souhaite s'authentifier en utilisant l'autre interface, il peut le faire en accĂ©dant directement Ă son URL.
Une fois que l'utilisateur a rĂ©ussi Ă s'identifier via SAML, le contexte utilisateur est créé. Le NameID sera le mĂȘme que l'identifiant de connexion utilisĂ© et transmis lors de l'authentification (l'identifiant est dĂ©fini dans les mĂ©tadonnĂ©es). Le compte utilisateur correspondant y sera alors liĂ©, sans quoi l'utilisateur sera authentifiĂ© mais ne pourra accĂ©der Ă aucun projet sur Squash TM.
Un utilisateur s'étant authentifié sur Squash TM via SAML peut changer son mot de passe local sur sa page de Préférences de compte. Par ailleurs, un administrateur peut lui définir un mot de passe via la page d'administration des utilisateurs. Un utilisateur s'étant authentifié via le formulaire de connexion peut changer son mot de passe normalement. En revanche, un utilisateur ne peut pas changer son mot de passe SAML via Squash TM.
Il est possible de n'autoriser l'authentification que via l'interface SAML SSO, voir Sources d'authentification.
Dans ce cas, les utilisateurs ne peuvent pas s'authentifier avec leur compte local et ils ne peuvent pas, ou un administrateur, changer ou définir leur mot de passe local.
S'ils accĂšdent Ă la page /login
, ils sont redirigés vers l'interface SAML SSO (/auth/saml/login/{registration-id}
).
Configuration
Cette partie dĂ©taille les Ă©tapes de configuration nĂ©cessaires Ă l'installation du plugin SAML. Ici seront abordĂ©es les principales actions Ă rĂ©aliser, ainsi que les options pouvant ĂȘtre choisies. La partie sur la configuration avancĂ©e est abordĂ©e dans la prochaine partie.
Les étapes nécessaires à l'installation du plugin sont les suivantes :
- déploiement du binaire ;
- configuration de l'application ;
Déploiement du binaire
Ă partir du dossier $SQUASH_HOME/plugin-files/saml/
, copier le fichier .jar
et coller le dans le dossier du mĂȘme nom dans votre application Squash TM $SQUASH_HOME/plugins/
.
Métadonnées du fournisseur de service
Le plugin SAML génÚre des métadonnées SP à partir des propriétés de configuration. Pour ce faire, il est nécessaire de fournir une clé privée au format PKCS8 et le certificat X.509. Ces deux éléments sont nécessaires pour signer les métadonnées SP et pour le chiffrement des messages SAML.
Créer une clé privée pour Squash TM
La commande suivante permet de générer une clé privée au format PKCS8 :
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private_key.pem
Exporter un certificat
Ensuite, la commande suivante permet d'exporter la clé privée sous forme de certificat valable un an (ajuster la durée si nécessaire) :
openssl req -x509 -new -key private_key.pem -sha256 -days 365 -out squashtm.cer
Ce certificat est requis pour gĂ©nĂ©rer les mĂ©tadonnĂ©es du fournisseur de services (SP). Il inclut la clĂ© publique et est partagĂ© avec le fournisseur d'identitĂ© (IdP) afin de vĂ©rifier les signatures des requĂȘtes et de chiffrer les assertions.
Configuration
Utilisation d'un fichier dédié
Le plugin SAML propose de nombreuses propriétés de configuration et le fichier de configuration est plutÎt lourd, surtout par rapport aux autres plugins de Squash TM. Il est possible de configurer le plugin en utilisant son propre fichier de configuration dédié, ou bien y faire référence dans le fichier de configuration principal plutÎt que d'y intégrer le contenu comme cela était requis pour les anciens plugins.
Pour cela, copier le fichier config/squash.tm.cfg-saml.properties
et le coller dans le répertoire de configuration home. Dans la distribution de Squash TM en tant qu'application autonome, ce répertoire est en général SQUASH_HOME/conf
. Puis, éditer le fichier de configuration principal SQUASH_HOME/conf/squash.tm.cfg.properties
et lui associer le fichier de configuration du plugin en lui ajoutant/éditant la propriété suivante :
spring.profiles.include=saml
Si cette propriété était déjà présente, il est possible d'ajouter saml
à la liste, séparé par une virgule.
(Alternative) Intégration des propriétés
Si cela est plus pratique, il est également possible de simplement copier et coller le contenu du fichier de configuration du plugin dans le fichier de configuration principal, sans avoir besoin d'ajouter SAML à la liste des profils.
Configuration minimale
Le fichier de configuration propose de nombreuses propriétés, mais seulement certaines d'entre elles sont obligatoires. Squash TM ne démarrera pas ou ne fonctionnera pas correctement si ces propriétés sont laissées vides ou ne sont pas renseignées correctement.
Les propriétés listées ci-dessous sont requises. Les détails (valeurs autorisées, etc.) sont disponibles dans les commentaires du fichier squash.tm.cfg-saml.properties
, et plus loin dans cette mĂȘme documentation.
saml.enabled
: Interrupteur principal. Cette propriété permet d'activer ou de désactiver le plugin sans commentaire et sans avoir à supprimer le fichier jar.
saml.idp.metadata-url
: L'emplacement des métadonnées du fournisseur d'identité (IdP). Les protocoles file://
, http://
et https://
sont autorisés. Par exemple, file:///opt/squash-tm/conf/saml/FederationMetadata.xml
ou https://login.microsoftonline.com/entreprise.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml
.
saml.sp.registration-id
: Identifiant unique utilisé pour enregistrer votre fournisseur de services (SP) dans la configuration SAML du plugin. Par exemple : google
.
saml.sp.entity-id
: Identifiant unique de l'instance Squash. 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-key
: ClĂ© privĂ©e au format PKCS8 utilisĂ©e par le fournisseur de services (SP) pour signer les requĂȘtes et dĂ©chiffrer les messages.
saml.sp.metadata.certificate
: Certificat X.509 du fournisseur de services (SP) utilisé pour la validation des signatures et le chiffrement.
Sources d'authentification
Par défaut, les utilisateurs peuvent s'authentifier soit avec leur compte local, soit avec leur compte SAML SSO.
Il est possible d'autoriser uniquement l'authentification avec le compte SAML SSO, grùce à la propriété suivante :
authentication.provider=saml
Configuration avancée
Le chapitre précédent présentait les préoccupations générales en ce qui concerne la configuration de Squash-SAML. Dans la plupart des cas, cette configuration devrait bien s'intégrer à l'environnement de travail. Cependant, le plugin propose plusieurs options pour une personnalisation plus poussée comme par exemple des exigences avancées pour le chiffrement RSA, ou encore pour prendre en compte l'organisation de votre réseau. Ce chapitre traite de ces options supplémentaires et revient sur quelques éléments présentés dans le chapitre précédent.
Conventions
Format des chemins de fichiers
Les mĂ©tadonnĂ©es peuvent ĂȘtre rĂ©cupĂ©rĂ©es Ă la lecture en tant que fichiers locaux ou Ă distance via des appels HTTP(S) en utilisant la propriĂ©tĂ© saml.idp.metadata-url
.
Via HTTP(S) : le chemin du fichier est l'URL Ă partir de laquelle il peut ĂȘtre tĂ©lĂ©chargĂ©. Le protocole est soit http://
, soit https://
. Exemple : https://votre.idp/metadonnees.xml
Via un chemin absolu : URL menant Ă un fichier local qui fonctionne bien en tant que chemin absolu. Dans ce cas, le protocole est file://
. Exemple : file:///dev/squashtm/saml/idp.xml
(sous Linux), file://C:/dossierappli/squashtm/conf/idp.xml
(sous Windows).
Via un chemin relatif vers le dossier de configuration : Tout chemin qui n'a pas de protocole défini sera considéré comme étant un chemin relatif vers le dossier de configuration. L'emplacement du dossier de configuration peut varier selon l'environnement et le mode d'installation choisi pour Squash TM.
Exemple : saml/idp.xml
devient $CONF_DIR/saml/idp.xml
.
Propriété Espaces de noms
Les propriétés sont regroupées par des espaces de noms en relation avec les acteurs (par exemple l'IdP) ou les ressources (métadonnées). Elles sont listées sans l'espace de nom par souci de concision, et avec l'espace de nom au-dessus de la table correspondante. Ce format est pratique dans un contexte de documentation. Cependant, lors de la modification du fichier de configuration, il sera nécessaire de déclarer le nom complet de la propriété.
Point d'entrée principal
Comme dit précédemment dans le chapitre Utilisation, les utilisateurs peuvent choisir de s'identifier en utilisant l'un des deux systÚmes d'authentification (page habituelle du formulaire d'authentification ou point d'entrée SAML). Cependant, l'un de ces deux systÚmes est défini comme étant le point d'entrée principal, et si l'utilisateur n'exprime aucune préférence pour l'un des deux systÚmes, il sera redirigé vers ce point d'entrée principal lors de l'authentification.
Par dĂ©faut, Squash TM instaure la page de formulaire en tant que point d'entrĂ©e principal. Ceci peut ĂȘtre modifiĂ© dans la configuration.
Options
Espace de nom : squash.security
Propriété | Commentaire |
---|---|
preferred-auth-url |
Cette propriĂ©tĂ© guide le comportement de Squash TM en matiĂšre de requĂȘtes d'utilisateurs non-identifiĂ©s. Elle dĂ©finit l'URL vers laquelle ce type d'utilisateurs doit ĂȘtre redirigĂ©, c.-Ă -d. le point d'entrĂ©e principal. Si cette propriĂ©tĂ© est dĂ©finie par /auth/saml/login/{registration-id} , le point d'entrĂ©e principal sera SAML.Il faut noter que cette propriĂ©tĂ© appartient Ă Squash TM et n'est pas spĂ©cifique au plugin SAML. Si vous utilisez d'autres plugins d'authentification, il faut vĂ©rifier leurs configurations respectives afin d'Ă©viter tout conflit en lien avec ce sujet. Valeur par dĂ©faut : /login (page du formulaire d'authentification par dĂ©faut). |
Traitement des métadonnées
Les métadonnées de Squash TM (en tant que fournisseur de service) sont générées au démarrage de l'application et accessibles via l'URL /auth/saml/metadata/{registration-id}
. Celles du fournisseur d'identitĂ© peuvent ĂȘtre rĂ©cupĂ©rĂ©es localement ou Ă distance (voir la partie ci-dessus).
Du fait de la nature sensible de ces fichiers, leur contenu doit ĂȘtre contrĂŽlĂ© de prĂšs. Il existe deux maniĂšres d'effectuer ce contrĂŽle :
- soit les métadonnées sont signées, et la signature vérifiée ;
- soit la source des métadonnées est de confiance et vérifiée par d'autres mécanismes (elles proviennent d'un serveur HTTPS ou d'un dossier trÚs privé).
Options des métadonnées SP
Espace de nom : saml.sp.metadata
Propriété | Commentaire |
---|---|
name-id-format |
DĂ©finit le format du NameID utilisĂ© pour identifier l'utilisateur dans la requĂȘte d'authentification SAML. Exemples : - urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - urn:oasis:names:tc:SAML:2.0:nameid-format:transient Valeur par dĂ©faut : vide |
authn-requests-signed |
Indique si les requĂȘtes d'authentification SAML envoyĂ©es par le SP doivent ĂȘtre signĂ©es. Valeur par dĂ©faut : false |
single-logout-service-binding |
Définit le type de binding (protocole de transport) utilisé par le SP pour communiquer avec le Single Logout Service de l'IdP. Exemples : - urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST - urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect Valeur par défaut : urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST |
Exposition des métadonnées du Fournisseur de service
Squash TM expose les métadonnées SP à l'URL /auth/saml/metadata/{registration-id}
et les signe si vous le souhaitez, sauf si elles Ă©taient dĂ©jĂ signĂ©es (les mĂ©tadonnĂ©es ne peuvent ĂȘtre pas signĂ©es plus d'une fois).
SSO
Les options listĂ©es ici sont en relation avec le processus SSO en lui-mĂȘme. Il est possible de modifier les Ă©lĂ©ments et les conditions des Ă©changes de messages. Si les mĂ©tadonnĂ©es SP ont plusieurs alternatives pour une mĂȘme clause (telle que <NameIDFormat/>
), il est Ă©galement possible d'indiquer au plugin quelle valeur devrait ĂȘtre utilisĂ©e pour cette clause au lieu de la valeur par dĂ©faut.
Dans certains cas, la valeur property doit ĂȘtre choisie parmi les spĂ©cifications SAML. Voici quelques liens utiles :
Options standard
Espace de nom : saml.sso
Propriété | Commentaire |
---|---|
force-authN |
Si cette option est activée, l'utilisateur devra se réauthentifier auprÚs de l'IdP à chaque fois qu'il s'authentifie sur Squash TM. Cela garantit que l'assertion d'authentification de l'utilisateur est bien à jour. Toutefois, cela peut devenir pénible si le processus d'authentification auprÚs de l'IdP implique une interaction humaine et cela désactiverait effectivement le mécanisme SSO. Valeur par défaut : false |
provider-name |
Le nom lisible par un humain qui sera inclus dans les messages envoyés à l'IdP. Utile à des fins d'historique Valeur par défaut : vide |
binding |
Le type lien que Squash TM utilisera pour initier le SSO avec l'IdP. Ce type de lien doit ĂȘtre prĂ©sent dans les mĂ©tadonnĂ©es de l'IdP. Exemples : - urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST - urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect En pratique, il vous faudra extraire la valeur souhaitĂ©e des mĂ©tadonnĂ©es de l'IdP. Valeur par dĂ©faut : la premiĂšre mĂ©thode de binding listĂ©e dans la clause <SingleSignonService> des mĂ©tadonnĂ©es de l'IdP. |
assertion-consumer-index |
Demande Ă l'IdP d'envoyer ses rĂ©ponses au service consommateurs donnĂ©. La liste des services consommateurs disponibles peut ĂȘtre retrouvĂ©e dans les clauses <AssertionConsumerService> des mĂ©tadonnĂ©es SP. L'ordre des services consommateurs est listĂ© avec l'attribut index au sein du libellĂ©.Valeur par dĂ©faut : si laissĂ©e vide, la valeur par dĂ©faut sera utilisĂ©e (avec l'attribut isDefault , ou avec index =0). |
nameID |
Le NameID qui doit ĂȘtre renvoyĂ© par l'IdP, et celui qui sera utilisĂ© pour reprĂ©senter le nom principal de l'utilisateur (son identifiant). Exemples : - urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - urn:oasis:names:tc:SAML:2.0:nameid-format:transient Valeur par dĂ©faut : l'IdP choisira parmi celles spĂ©cifiĂ©es dans sa copie des mĂ©tadonnĂ©es SP. |
allow-create |
Notifie l'IdP que la création d'un nouvel utilisateur est permise lorsque celui-ci est inconnu. Notez qu'il s'agit ici de la création d'un nouvel utilisateur sur l'IdP. Squash TM ne donne que son opinion sur les actions que devrait effectuer l'IdP ; la décision finale appartient à l'IdP. Dans tous les cas, lorsqu'un utilisateur parvient à s'identifier auprÚs de l'IdP, Squash TM lui crée un compte utilisateur si ce compte n'existe pas déjà , comme expliqué précédemment dans la partie Utilisation. La propriété ci-présente n'influe aucunement sur cette création. Valeur par défaut : false |
passive |
Si cette option est activĂ©e, Squash TM informera l'IdP qu'il ne considĂšre pas que l'interaction utilisateur soit nĂ©cessaire Ă l'authentification, ce qui peut nuire Ă l'expĂ©rience utilisateur. Notez que l'IdP peut ĂȘtre en dĂ©saccord avec cette dĂ©cision. Valeur par dĂ©faut : false |
relay-state |
Un token arbitraire qui sera échangé avec l'IdP. Cela fait partie des spécifications SAML, mais Squash n'en fait pas d'utilisation concrÚte. Cette propriété peut prendre toute valeur. Valeur par défaut : vide |
Scoping
L'utilisation de l'élément Scoping permet d'avoir des échanges avancés avec le SSO. Par exemple, vous pouvez demander des garanties sur la qualité de l'authentification des utilisateurs du cÎté de l'IdP (en spécifiant le contexte d'authentification) ou encore restreindre les IdPs de confiance au sein d'une architecture IdP multiniveaux.
Les propriétés suivantes seront prises en compte seulement si le scoping est activé.
Espace de nom : saml.sso
(identique Ă celui des options standard)
Propriété | Commentaire |
---|---|
include-scoping |
L'interrupteur principal pour le scoping. Si la valeur est false , les autres options listées ci-dessous seront désactivées.Valeur par défaut : false |
allowed-idps |
Cette propriété configure la clause <IdPList> . Au sein d'une architecture IdP multiniveaux, cette liste définit les IdPs autorisés à traiter les demandes d'authentification. La valeur est une liste d'entityID s IdP séparés par des virgules.Valeur par défaut : vide (aucune restriction) |
proxy-count |
Le nombre maximum de proxys autorisés pour les messages d'authentification. Dans ce contexte, un proxy est égal à un IdP au sein d'une architecture IdP multiniveaux. Une valeur égale à 0 entraßne une interdiction de l'utilisation de proxys. L'IdP qui reçoit la demande d'authentification ne peut pas la déléguer ; c'est lui qui doit identifier l'utilisateur.Valeur par défaut : 2 |
authn-contexts |
Une liste des contextes oĂč l'authentification de l'utilisateur doit ĂȘtre prise en charge par l'IdP ; les contextes sont sĂ©parĂ©s par des virgules. Cette propriĂ©tĂ© est utile lorsque la mĂ©thode d'authentification standard n'est pas considĂ©rĂ©e comme Ă©tant suffisamment sĂ©curisĂ©e et que Squash TM demande les garanties d'un processus plus rigoureux. Exemples : - urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI - urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract Valeur par dĂ©faut : vide (aucune restriction) |
authn-context-comparison |
Les exigences supplémentaires en ce qui concerne le traitement des identifiants fournis par l'utilisateur lors de l'authentification auprÚs de l'IdP. Les valeurs autorisées sont : exact , minimum , maximum , better .Valeur par défaut : exact . |
Expiration de l'authentification
RĂ©guliĂšrement, Squash TM invalidera unilatĂ©ralement une assertion d'authentification lorsqu'elle aura dĂ©passĂ© la durĂ©e de validitĂ© entrĂ©e dans sa configuration (tout comme le Fournisseur d'identitĂ© peut lui-mĂȘme Ă©tablir une date d'expiration pour ses propres assertions d'authentification). Dans ce cas, l'utilisateur devra donc s'authentifier Ă nouveau auprĂšs du Fournisseur d'identitĂ©. Cette expiration peut entraĂźner une perte de travail si le serveur n'a pas Ă©tĂ© en mesure de sauvegarder le travail non sauvegardĂ©. Pour cette raison, nous encourageons les utilisateurs Ă se rĂ©authentifier par eux-mĂȘmes auprĂšs du Fournisseur d'identitĂ© lorsqu'ils le souhaitent.
Focus
L'utilisateur doit impĂ©rativement se rĂ©authentifier auprĂšs du Fournisseur d'IdentitĂ© mĂȘme lorsque sa session sur l'IdP est toujours valide car Squash rejettera l'authentification si la mĂȘme assertion est prĂ©sentĂ©e.
Options
Espace de nom : saml.session
Propriété | Commentaire |
---|---|
max-auth-time |
Définit en secondes la durée de vie d'une assertion d'authentification avant que l'utilisateur doive se réauthentifier auprÚs du fournisseur d'identité (IdP) . Valeur par défaut : 864000 (dix jours) |
max-assertion-time |
DĂ©finit en secondes la durĂ©e de validitĂ© d'une assertion d'authentification pendant le dĂ©roulement du protocole SSO. La procĂ©dure de SSO doit ĂȘtre achevĂ©e avant ce dĂ©lai. Valeur par dĂ©faut : 3000 |
clock-skew |
Dé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). Valeur par défaut : 300 |
Proxy
Si Squash TM est dĂ©ployĂ© derriĂšre un mandataire inverse (reverse proxy) ou un Ă©quilibreur de charge, les modifications appliquĂ©es Ă vos URLs et projets peuvent conduire Ă des diffĂ©rences entre la requĂȘte actuelle et la requĂȘte attendue. Vous pouvez dĂ©clarer ce proxy dans la configuration pour indiquer Ă Squash TM comment effectuer ces remaniements lors des Ă©changes avec le Fournisseur d'identitĂ© (IdP).
Options
Espace de nom : saml.proxy
Propriété | Commentaire |
---|---|
enabled |
L'interrupteur principal qui active le mandataire (proxy) et les options ci-dessous. Valeur par défaut : false |
server-name |
Le nom d'hĂŽte du mandataire inverse. Cette propriĂ©tĂ© n'a pas de valeur par dĂ©faut et doit ĂȘtre fournie. Valeur par dĂ©faut : vide |
scheme |
Le protocole utilisé par le mandataire inverse (reverse-proxy) pour les communications sortantes. Valeur par défaut : https |
server-port |
Le port utilisé par le mandataire inverse pour les communications sortantes. Valeur par défaut : 443 |
context-path |
Le chemin de contexte de l'application, tel que servi par le mandataire inverse (reverse proxy). Valeur par défaut : /squash |
include-port-in-url |
Cette propriĂ©tĂ© indique si le numĂ©ro de port doit ĂȘtre explicitement inclus dans l'URL de requĂȘte (mĂȘme lorsqu'un port par dĂ©faut est utilisĂ© et qu'il pourrait donc ĂȘtre ommis). Valeur par dĂ©faut : true |
Informations Compte utilisateur
Selon la configuration du serveur IdP, les assertions en réponse aux demandes d'authentification peuvent contenir des informations supplémentaires sur le compte utilisateur. Dans le document de l'assertion, ces attributs supplémentaires sont listés sous le libellé <AttributeStatement>
. Les propriétés listées ci-dessous autorisent Squash TM à utiliser ces attributs.
Veuillez noter que Squash TM ne demandera pas ces attributs via une clause Requested Attributes (voir Protocole SAML - Extension pour la demande d'attributs par requĂȘte) car cette fonctionnalitĂ© n'est pas toujours supportĂ©e et dĂ©pend de l'IdP. Au lieu de cela, vous devez vous assurer que l'IdP ajoute ces attributs Ă l'assertion dans tous les cas.
Options
Espace de nom : saml.user-mapping
Propriété | Commentaire |
---|---|
alternate-username |
Utilise la valeur de cet attribut en tant que nom d'utilisateur dans Squash TM au lieu du nameID nominal. Cela vous permet de travailler autour des limites de l'IdP si ce dernier ne peut pas vous fournir le nameIDFormat dont vous avez besoin (par ex. : d'anciennes versions d'Azure).Valeur par défaut : aucune (fonctionnalité désactivée) |
first-name |
DĂ©signe l'une des valeurs d'un attribut supplĂ©mentaire en tant que prĂ©nom d'un compte utilisateur dans Squash TM. Cette fonctionnalitĂ© est seulement utilisĂ©e lorsqu'un compte utilisateur est sur le point d'ĂȘtre créé dans Squash TM : les comptes utilisateurs dĂ©jĂ existants ne seront pas mis Ă jour de cette façon. Valeur par dĂ©faut : aucune |
last-name |
DĂ©signe l'une des valeurs d'un attribut supplĂ©mentaire en tant que nom de famille d'un compte utilisateur dans Squash TM. Cette fonctionnalitĂ© est seulement utilisĂ©e lorsqu'un compte utilisateur est sur le point d'ĂȘtre créé dans Squash TM : les comptes utilisateurs dĂ©jĂ existants ne seront pas mis Ă jour de cette façon. Valeur par dĂ©faut : aucune |
email |
DĂ©signe l'une des valeurs d'un attribut supplĂ©mentaire en tant qu'adresse email d'un compte utilisateur dans Squash TM. Cette fonctionnalitĂ© est seulement utilisĂ©e lorsqu'un compte utilisateur est sur le point d'ĂȘtre créé dans Squash TM : les comptes utilisateurs dĂ©jĂ existants ne seront pas mis Ă jour de cette façon. Valeur par dĂ©faut : aucune |
Historique
Si vous rencontrez des difficultés à utiliser SAML, vous pouvez activer une journalisation plus détaillé afin de savoir ce qui ne fonctionne pas. Pour cela, ajoutez les lignes suivantes à la configuration :
logging.level.org.squashtest.tm.plugin.saml=TRACE
logging.level.sqsaml.org.springframework.security=TRACE
logging.level.org.springframework.security.web.authentication=TRACE
logging.level.org.opensaml=TRACE
TRACE est le niveau d'historique le plus précis. Si vous trouvez cela trop verbeux, vous pouvez plutÎt utiliser le niveau DEBUG.
Focus
Squash TM doit ĂȘtre redĂ©marrĂ© afin de prendre en compte votre nouvelle configuration.