Aller au contenu principal

Talkspirit

Ce guide vous explique comment configurer l'authentification unique (SSO) entre SmartLink et Talkspirit en utilisant SAML 2.0 ou OpenID Connect.

Prérequis

  • Abonnement Talkspirit Business ou Enterprise
  • Accès administrateur à Talkspirit
  • Domaine email vérifié
  • Application configurée dans SmartLink avec SAML2 ou OpenID Connect

Configuration avec SAML 2.0 (Recommandé)

1. Créer l'application

  1. Connectez-vous à SmartLink en tant qu'administrateur
  2. Allez dans ApplicationsAjouter
  3. Créez une nouvelle application :
    • Nom : Talkspirit
    • URL : https://[votre-organisation].talkspirit.com
    • Description : Plateforme collaborative française tout-en-un
    • Icône : Choisissez l'icône Talkspirit

2. Configurer SAML2

  1. Dans l'onglet Authentification
  2. Sélectionnez SAML2
  3. Configurez les paramètres suivants :
    • Entity ID : [appid]
    • ACS URL : https://[votre-organisation].talkspirit.com/saml/acs
    • Format NameID : emailAddress
    • App ID : https://[votre-smartlink].link.vaultys.org/[appid] (identifiant unique généré automatiquement)

3. Récupérer les métadonnées

Notez les URLs suivantes :

  • Métadonnées IdP : https://[votre-smartlink].link.vaultys.org/api/saml2/[appid]/metadata
  • SSO URL : https://[votre-smartlink].link.vaultys.org/api/saml2/[appid]/sso
  • SLO URL : https://[votre-smartlink].link.vaultys.org/api/saml/[appid]/slo
  • Entity ID : [appid]
  • Certificat X.509 : Téléchargez depuis SmartLink

Configuration dans Talkspirit

1. Accéder aux paramètres SSO

  1. Connectez-vous à Talkspirit en tant qu'administrateur
  2. Allez dans AdministrationParamètresAuthentification
  3. Cliquez sur Configurer le SSO SAML

2. Configuration du fournisseur d'identité

Configurez les paramètres SAML :

  • IdP Entity ID : [appid]
  • SSO URL : https://[votre-smartlink].link.vaultys.org/api/saml2/[appid]/sso
  • SLO URL : https://[votre-smartlink].link.vaultys.org/api/saml2/[appid]/slo
  • Certificat public : Collez le certificat X.509 depuis SmartLink
  • Binding : HTTP-POST

3. Configuration des attributs

Attribut TalkspiritAttribut SAMLObligatoire
Emailemail
PrénomfirstName
NomlastName
Nom completdisplayName
Servicedepartment
FonctionjobTitle
Téléphonephone
Photophoto

Configuration avec OpenID Connect

1. Configurer OpenID Connect

  1. Dans l'application Talkspirit
  2. Onglet AuthentificationOpenID Connect
  3. Notez :
    • Client ID : talkspirit-xxxxxx
    • Client Secret : secret-xxxxxx
    • App ID : [appid]

2. URLs de redirection

Ajoutez dans URLs de redirection autorisées :

https://[votre-organisation].talkspirit.com/auth/oidc/callback
https://[votre-organisation].talkspirit.com/api/auth/oidc/callback

Configuration dans Talkspirit

  1. Dans AdministrationAuthentificationOpenID Connect
  2. Configurez :
  • Discovery URL : https://[votre-smartlink].link.vaultys.org/api/oidc/[appid]/.well-known/openid-configuration
  • Client ID : talkspirit-xxxxxx
  • Client Secret : secret-xxxxxx
  • Scopes : openid profile email groups

Configuration des espaces et groupes

Structure organisationnelle

spaces:
- name: "Direction"
type: "private"
auto_add_groups:
- "smartlink-executives"
- "smartlink-management"
features:
- chat
- videoconference
- documents
- tasks

- name: "Communication"
type: "public"
auto_add_groups:
- "smartlink-all-users"
features:
- news
- events
- polls

- name: "Projets"
type: "workspace"
auto_add_groups:
- "smartlink-project-teams"
features:
- tasks
- calendar
- documents
- wiki

Synchronisation des groupes

{
"group_sync": {
"enabled": true,
"mapping": {
"smartlink-admins": {
"talkspirit_role": "admin",
"permissions": ["manage_users", "manage_spaces", "manage_settings"]
},
"smartlink-managers": {
"talkspirit_role": "manager",
"permissions": ["create_spaces", "moderate_content", "manage_members"]
},
"smartlink-users": {
"talkspirit_role": "member",
"permissions": ["create_content", "join_spaces", "use_chat"]
},
"smartlink-external": {
"talkspirit_role": "guest",
"permissions": ["view_public", "limited_interaction"]
}
}
}
}

Fonctionnalités spécifiques

Chat et visioconférence

communication:
chat:
enabled: true
direct_messages: true
group_chats: true
file_sharing: true
max_file_size: "100MB"
message_retention: "unlimited"

video:
provider: "integrated"
max_participants: 50
recording: true
screen_sharing: true
virtual_backgrounds: true
breakout_rooms: true

Drive et gestion documentaire

{
"drive_settings": {
"enabled": true,
"default_quota": "10GB",
"versioning": true,
"co_editing": true,
"office_integration": "onlyoffice",
"file_types_allowed": [
".pdf", ".doc", ".docx", ".xls", ".xlsx",
".ppt", ".pptx", ".png", ".jpg", ".mp4"
],
"antivirus_scan": true,
"encryption_at_rest": true
}
}

Publication et actualités

publishing:
news_feed:
moderation: true
categories:
- "Entreprise"
- "RH"
- "Produits"
- "Événements"

engagement:
reactions: ["like", "love", "applause", "idea"]
comments: true
sharing: true
mentions: true
hashtags: true

Intégration avec les outils externes

Microsoft 365

{
"microsoft_integration": {
"enabled": true,
"calendar_sync": true,
"contacts_sync": true,
"onedrive_connector": true,
"teams_interop": false
}
}

Google Workspace

{
"google_integration": {
"enabled": true,
"calendar_sync": true,
"drive_connector": true,
"meet_integration": true
}
}

API Talkspirit

Authentification API avec SSO

const TalkspiritAPI = require('talkspirit-api');

class TalkspiritClient {
constructor(config) {
this.api = new TalkspiritAPI({
baseUrl: config.baseUrl,
auth: {
type: 'oauth2',
clientId: config.clientId,
clientSecret: config.clientSecret,
scope: 'read write admin'
}
});
}

async getUserBySSOEmail(email) {
return await this.api.users.findByEmail(email);
}

async createSpace(spaceData) {
return await this.api.spaces.create({
name: spaceData.name,
type: spaceData.type,
members: spaceData.members,
features: spaceData.features
});
}

async postNews(newsData) {
return await this.api.news.create({
title: newsData.title,
content: newsData.content,
category: newsData.category,
targetGroups: newsData.groups
});
}
}

Webhooks

// Endpoint pour recevoir les webhooks Talkspirit
app.post('/webhook/talkspirit', async (req, res) => {
const { event, data } = req.body;

switch(event) {
case 'user.joined':
await onboardNewUser(data);
break;

case 'space.created':
await syncSpaceToOtherTools(data);
break;

case 'document.shared':
await notifyRelevantUsers(data);
break;

case 'task.assigned':
await createExternalTask(data);
break;
}

res.status(200).json({ received: true });
});

Test de la configuration

1. Test de connexion

  1. Déconnectez-vous de Talkspirit
  2. Allez sur https://[votre-organisation].talkspirit.com
  3. Cliquez sur Se connecter avec SSO
  4. Authentifiez-vous via SmartLink
  5. Vérifiez l'accès aux espaces assignés

2. Test des permissions

# Test via l'API
curl -X GET "https://[votre-organisation].talkspirit.com/api/v1/me" \
-H "Authorization: Bearer YOUR_TOKEN"

3. Test mobile

Les applications Talkspirit supportent le SSO :

  • Talkspirit iOS
  • Talkspirit Android
  • Talkspirit Desktop (Windows/Mac/Linux)

Dépannage

Erreur "SAML response invalid"

Problème : La réponse SAML n'est pas acceptée

Solution :

  1. Vérifiez que l'Entity ID est [appid]
  2. Vérifiez le certificat X.509
  3. Assurez-vous que l'ACS URL est correcte
  4. Consultez les logs : AdministrationLogsAuthentification

Les groupes ne sont pas synchronisés

Problème : Les utilisateurs n'ont pas les bons rôles

Solution :

<!-- Assertion SAML pour les groupes -->
<saml:Attribute Name="groups">
<saml:AttributeValue>smartlink-talkspirit-admins</saml:AttributeValue>
<saml:AttributeValue>smartlink-talkspirit-users</saml:AttributeValue>
</saml:Attribute>

Problème d'accès aux espaces

Problème : L'utilisateur SSO n'a pas accès aux espaces

Solution :

  1. Vérifiez la synchronisation des groupes
  2. Contrôlez les règles d'affectation automatique
  3. Vérifiez les permissions de l'espace
  4. Assurez-vous que l'utilisateur est actif

Sécurité

Configuration recommandée

{
"security_settings": {
"enforce_sso": true,
"session_timeout": "8h",
"ip_filtering": false,
"device_trust": true,
"content_moderation": {
"enabled": true,
"ai_powered": true,
"manual_review": true
},
"data_retention": {
"messages": "2y",
"files": "5y",
"logs": "1y"
},
"encryption": {
"at_rest": true,
"in_transit": true,
"e2e_chat": false
}
}
}

Conformité RGPD

Talkspirit est conforme RGPD avec :

  • Hébergement des données en France
  • Droit à l'effacement
  • Portabilité des données
  • Consentement explicite
  • Registre des traitements

Migration des utilisateurs

Script de migration

import csv
import requests

class TalkspiritMigration:
def __init__(self, api_key, domain):
self.api_key = api_key
self.base_url = f"https://{domain}.talkspirit.com/api/v1"

def migrate_users_to_sso(self, csv_file):
"""Migration des utilisateurs vers SSO"""
with open(csv_file, 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)

for user in reader:
# Activer SSO pour l'utilisateur
self.enable_sso_for_user(user['email'])

# Affecter aux espaces
self.assign_user_to_spaces(user['email'], user['spaces'])

# Envoyer notification
self.send_migration_email(user['email'])

def enable_sso_for_user(self, email):
"""Active le SSO pour un utilisateur"""
response = requests.patch(
f"{self.base_url}/users/email/{email}",
headers={"Authorization": f"Bearer {self.api_key}"},
json={"auth_method": "sso"}
)
return response.json()

Ressources