Aller au contenu

Authentification sous Tibco Spotfire®

Written on avril 3, 2023

L’authentification est devenue un enjeu majeur pour la gestion des données, que ce soit pour sécuriser l’accès à des informations sensibles ou pour assurer un niveau de fiabilité dans leur utilisation. Avec Tibco Spotfire®, cette problématique est d’autant plus importante que cette solution permet de réaliser des analyses poussées à partir de données issues de multiples sources.

Tibco Spotfire® offre plusieurs options d’authentification, telles que l’authentification interne, OpenID et LDAP. Cependant, dans certains cas, ces options standard ne correspondent pas aux besoins spécifiques d’une entreprise ou d’un projet. Ainsi, Tibco Spotfire® propose une solution d’authentification personnalisée :  le Custom Authenticator. Cette solution permet d’adapter l’authentification selon les besoins spécifiques d’une entreprise ou d’une organisation et de mettre en place des règles de sécurité plus strictes.

"L'authentification est un enjeu crucial pour la gestion et l'analyse de données. Les équipes de dataLearning sont spécialisées dans le déploiement de Tibco Spotfire®, Web Player, Automation services."

CustomAuthenticator

Un CustomAuthenticator est un mécanisme d’authentification personnalisé qui permet de créer des workflows d’authentification sur mesure pour Tibco Spotfire®. Il permet de personnaliser les processus d’authentification en fonction des besoins spécifiques de l’entreprise, tels que l’intégration avec des systèmes tiers, des exigences de sécurité spécifiques ou des workflows d’authentification complexes.

Les CustomAuthenticators sont basés sur le Framework d’authentification de Tibco Spotfire®, qui fournit une interface standard pour l’authentification des utilisateurs. Cette interface permet aux CustomAuthenticators de s’intégrer de manière transparente avec l’interface utilisateur standard de Tibco Spotfire®, y compris la page de connexion et la gestion des utilisateurs. Les CustomAuthenticators peuvent être développés en utilisant différents langages de programmation, tels que Java, .NET, Python, ou même du code R. Ils peuvent également être hébergés sur une variété de plateformes, y compris des serveurs d’applications Java et des services cloud tels qu’AWS Lambda.

Vous trouverez plus d’information directement sur le site de Tibco en suivant le lien suivant.

Tibco Spotfire® embarque au travers de ses CustomAuthenticators des librairies qui permettent l’utilisation de JSON Web Tokens (JWT) pour l’authentification. Cette technologie permet de valider et de vérifier l’authentification d’un utilisateur et offre également des fonctionnalités d’autorisation pour déterminer les actions pouvant être réalisées avec les données.

 

"Un CustomAuthenticator est un mécanisme d'authentification personnalisé qui permet de créer des workflows d'authentification sur mesure pour Tibco Spotfire®."

Json Web Token (JWT) 

Un JWT est un moyen simple et sécurisé de transférer des informations entre plusieurs parties, en particulier pour l’authentification et l’autorisation des utilisateurs dans les applications web.

Un JWT est un objet JSON qui contient des informations utilisateurs, signé par le serveur applicatif. Le JWT est ensuite transmis au client et inclus dans chaque requête WEB pour authentifier l’utilisateur auprès d’autres fournisseurs de ressources. Les JWT sont utilisés comme alternative aux cookies de session ou aux tokens d’accès OAuth.

Un JWT se compose de trois parties séparées par des points :

  • Header : contient le type de jeton (typ) et l’algorithme de signature (alg)
  • Payload (charge utile) : contient les informations de l’utilisateur, les autorisations et les métadonnées du jeton.
  • Signature : permet de vérifier l’intégrité du jeton et de garantir que les informations qu’il contient n’ont pas été altérées.

L’intérêt principal de JWT réside dans sa portabilité et sa sécurité. Il peut être émis par un serveur pour authentifier un utilisateur et transmis ensuite à un autre serveur pour accéder à une ressource protégée.

 

"Un 'JSON Web Token' (JWT) est un moyen simple et sécurisé de transférer des informations entre plusieurs parties, en particulier pour l'authentification et l'autorisation des utilisateurs dans les applications web."

Mise en œuvre 

Tibco Spotfire® embarque les librairies Java Nimbus/Jose pour la gestion de tokens JWT. Ces dernières fournissent un grand nombre d’exemples avec différents algorithmes de chiffrement tels que HMAC, RSA, EC ou encore EdDSA.

Dans notre cas, nous utilisons EC384. JWT offre la possibilité de chiffrer l’intégralité du trio header/Payload/Signature mais nous verrons ici simplement la partie vérification de la signature.

Voici l’exemple fournit par Connect2id dans notre cas :

 

				
					import java.util.Date;
import com.nimbusds.jose.*;
import com.nimbusds.jose.crypto.*;
import com.nimbusds.jose.jwk.*;
import com.nimbusds.jose.jwk.gen.*;
import com.nimbusds.jwt.*;
// Generate an EC key pair ECKey ecJWK = new ECKeyGenerator(Curve.P_384)

keyID("123")
generate();
ECKey ecPublicJWK = ecJWK.toPublicJWK();

// Create the EC signer

JWSSigner signer = new ECDSASigner(ecJWK);

// Prepare JWT with claims set

JWTClaimsSet claimsSet = new JWTClaimsSet.Builder()

subject("alice")
issuer("https://c2id.com")
expirationTime(new Date(new Date().getTime() + 60 * 1000))
build();
SignedJWT signedJWT = new SignedJWT(

    new JWSHeader.Builder(JWSAlgorithm.ES384).keyID(ecJWK.getKeyID()).build(),

    claimsSet);

// Compute the EC signature

signedJWT.sign(signer);

// Serialize the JWS to compact form

String s = signedJWT.serialize();

// On the consumer side, parse the JWS and verify its EC signature

signedJWT = SignedJWT.parse(s);

JWSVerifier verifier = new ECDSAVerifier(ecPublicJWK);

assertTrue(signedJWT.verify(verifier));

// Retrieve / verify the JWT claims according to the app requirements

assertEquals("alice", signedJWT.getJWTClaimsSet().getSubject());

assertEquals("https://c2id.com", signedJWT.getJWTClaimsSet().getIssuer());

assertTrue(new Date().before(signedJWT.getJWTClaimsSet().getExpirationTime()));
				
			

Précisons que l’environnement utilisé pour notre exemple est un serveur Linux et que la compilation et le paramétrage de Spotfire peuvent varier sur un serveur Windows.

Côté Spotfire, il peut être nécessaire d’ajouter des librairies pour le traitement spécifique induit par l’utilisation des tokens JWT. Elles devront être rajoutées dans le répertoire tomcat/lib avant de relancer Spotfire pour qu’elles soient prises en compte.

L’ajout de code « spécifique » se fait via l’ajout de « custom-ext » dans Tibco Spotfire®. Ces modules seront automatiquement chargés au démarrage du serveur.

Une fois notre code préparé en lab, l’intégration se fera de la façon suivante.

1- Dans un premier temps, on créera l’arborescence de notre package dans le dossier tomcat/custom-ext.

				
					... /tomcat/custom-ext/com/tibco/spotfireps/server/security/CustomAuthenticator.java
				
			

2- Une fois notre code implémenté, on compile en utilisant les ressources spécifiques à Spotfire :

				
					…/jdk/bin/javac -classpath "…/tomcat/webapps/spotfire/WEB-INF/lib/*:…/tomcat/spotfire-boot-lib/*:…/tomcat/lib/*" -d . …/tomcat/custom-ext/com/tibco/spotfireps/server/security/CustomAuthenticator.java
				
			

3- On crée ensuite notre package qui sera chargé au démarrage de Spotfire si l’authentification custom est activée :

				
					jar -cvf CustomAuthenticator.jar
				
			

4 – Pour terminer, on active notre code custom :

				
					sudo -u spotfireuser ./config.sh config-external-auth -e true --custom-authenticator-class-name=com.tibco.spotfireps.server.security.CustomAuthenticator
sudo -u spotfireuser ./config.sh import-config --comment="ActivationCustomAuth"
				
			

Conclusion

L’authentification est un enjeu crucial dans la gestion et l’analyse de données. Les équipes de dataLearning sont spécialisées dans le déploiement de Tibco Spotfire®, Web Player, Automation services mais peuvent aussi vous aider dans des développements spécifiques, ainsi que dans la formation de vos équipes à la data visualisation avec Tibco Spotfire®.

En faisant appel aux équipes de dataLearning, les clients de Tibco Spotfire® peuvent être assurés de mettre en place une solution d’authentification personnalisée et efficace, tout en bénéficiant d’une expertise technique adaptée à leur niveau de connaissance.

Enfin, nous vous invitons à lire notre autre article sur « Spotfire : ou comment donner du sens à vos données ».

Laisser un commentaire

Saisissez votre recherche

Connectez-vous

Formulaire d'information




Informations supplémentaires facultatives

Credits

Photos: Patrice Negros, Adobe Stock
Webdesign: agdg.fr