Talkspirit
Dieser Leitfaden erklärt Ihnen, wie Sie die Einzelanmeldung (SSO) zwischen SmartLink und Talkspirit mithilfe von SAML 2.0 oder OpenID Connect konfigurieren können.
Voraussetzungen
- Abonnement für Talkspirit Business oder Enterprise
- Administratorzugriff auf Talkspirit
- Überprüfte E-Mail-Domain
- Anwendung in SmartLink mit SAML2 oder OpenID Connect konfiguriert
Konfiguration mit SAML 2.0 (Empfohlen)
Konfiguration in SmartLink
1. Anwendung erstellen
- Melden Sie sich als Administrator bei SmartLink an
- Gehen Sie zu Anwendungen → Hinzufügen
- Erstellen Sie eine neue Anwendung:
- Name: Talkspirit
- URL:
https://[your-organization].talkspirit.com - Beschreibung: Franz ösische All-in-One-Kollaborationsplattform
- Symbol: Wählen Sie das Talkspirit-Symbol aus
2. SAML2 konfigurieren
- Im Reiter Authentifizierung
- Wählen Sie SAML2
- Konfigurieren Sie die folgenden Parameter:
- Entity-ID:
[appid] - ACS-URL:
https://[your-organization].talkspirit.com/saml/acs - Format NameID:
emailAddress - App-ID:
https://[your-smartlink].link.vaultys.org/[appid](automatisch generierte eindeutige Kennung)
- Entity-ID:
3. Metadaten abrufen
Notieren Sie sich die folgenden URLs:
- IdP-Metadaten:
https://[your-smartlink].link.vaultys.org/api/saml2/[appid]/metadata - SSO-URL:
https://[your-smartlink].link.vaultys.org/api/saml2/[appid]/sso - SLO-URL:
https://[your-smartlink].link.vaultys.org/api/saml/[appid]/slo - Entity-ID:
[appid] - X.509-Zertifikat: Herunterladen von SmartLink
Konfiguration in Talkspirit
1. Zugriff auf SSO-Einstellungen
- Melden Sie sich als Administrator bei Talkspirit an
- Gehen Sie zu Verwaltung → Einstellungen → Authentifizierung
- Klicken Sie auf SSO SAML konfigurieren
2. Konfiguration des Identitätsanbieters
Konfigurieren Sie die SAML-Parameter:
- IdP-Entity-ID:
[appid] - SSO-URL:
https://[your-smartlink].link.vaultys.org/api/saml2/[appid]/sso - SLO-URL:
https://[your-smartlink].link.vaultys.org/api/saml2/[appid]/slo - Öffentlicher Schlüssel: Fügen Sie das X.509-Zertifikat von SmartLink ein
- Binding:
HTTP-POST
3. Attributkonfiguration
| Talkspirit-Attribut | SAML-Attribut | Erforderlich |
|---|---|---|
email | ✅ | |
| Vorname | firstName | ✅ |
| Nachname | lastName | ✅ |
| Vollständiger Name | displayName | ❌ |
| Service | department | ❌ |
| Funktion | jobTitle | ❌ |
| Telefon | phone | ❌ |
| Foto | photo | ❌ |
Konfiguration mit OpenID Connect
Konfiguration in SmartLink
1. OpenID Connect konfigurieren
- In der Anwendung Talkspirit
- Registerkarte Authentifizierung → OpenID Connect
- Notieren Sie:
- Client-ID:
talkspirit-xxxxxx - Client-Geheimnis:
secret-xxxxxx - App-ID:
[appid]
- Client-ID:
2. Weiterleitungs-URLs
Fügen Sie in Zugelassene Weiterleitungs-URLs hinzu:
https://[your-organization].talkspirit.com/auth/oidc/callback
https://[your-organization].talkspirit.com/api/auth/oidc/callback
Konfiguration in Talkspirit
- In Verwaltung → Authentifizierung → OpenID Connect
- Konfigurieren Sie:
- Discovery-URL:
https://[your-smartlink].link.vaultys.org/api/oidc/[appid]/.well-known/openid-configuration - Client-ID:
talkspirit-xxxxxx - Client-Geheimnis:
secret-xxxxxx - Bereiche:
openid profile email groups
Konfiguration von Räumen und Gruppen
Organisationsstruktur
spaces:
- name: "Leitung"
type: "privat"
auto_add_groups:
- "smartlink-executives"
- "smartlink-management"
features:
- chat
- videoconference
- documents
- tasks
- name: "Kommunikation"
type: "öffentlich"
auto_add_groups:
- "smartlink-all-users"
features:
- news
- events
- polls
- name: "Projekte"
type: "Arbeitsbereich"
auto_add_groups:
- "smartlink-project-teams"
features:
- tasks
- calendar
- documents
- wiki
Gruppensynchronisierung
{
"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"]
}
}
}
}
Spezifische Funktionen
Chat und Videokonferenz
communication:
chat:
enabled: true
direct_messages: true
group_chats: true
file_sharing: true
max_file_size: "100MB"
message_retention: "unlimited"
video:
provider: "integriert"
max_participants: 50
aufzeichnung: true
screen_sharing: true
virtuelle_hintergründe: true
breakout_rooms: true
Drive und Dokumentenverwaltung
{
"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
}
}
Veröffentlichung und Neuigkeiten
publishing:
news_feed:
moderation: true
categories:
- "Unternehmen"
- "HR"
- "Produkte"
- "Veranstaltungen"
engagement:
reactions: ["like", "love", "applause", "idea"]
comments: true
sharing: true
mentions: true
hashtags: true
Integration mit externen Tools
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
}
}
Talkspirit API
API-Authentifizierung mit 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
// Endpunkt zum Empfangen von Talkspirit-Webhooks
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 });
});
Konfigurationstest
1. Verbindungstest
- Melden Sie sich von Talkspirit ab
- Gehen Sie zu
https://[your-organization].talkspirit.com - Klicken Sie auf Mit SSO anmelden
- Authentifizieren Sie sich über SmartLink
- Überprüfen Sie den Zugriff auf zugewiesene Räume
2. Berechtigungstest
# Test über die API
curl -X GET "https://[your-organization].talkspirit.com/api/v1/me" \
-H "Authorization: Bearer YOUR_TOKEN"
3. Mobiler Test
Die Talkspirit-Apps unterstützen SSO:
- Talkspirit iOS
- Talkspirit Android
- Talkspirit Desktop (Windows/Mac/Linux)
Fehlerbehebung
Fehler "Ungültige SAML-Antwort"
Problem: Die SAML-Antwort wird nicht akzeptiert
Lösung:
- Stellen Sie sicher, dass die Entity-ID
[appid]ist - Überprüfen Sie das X.509-Zertifikat
- Stellen Sie sicher, dass die ACS-URL korrekt ist
- Überprüfen Sie die Protokolle: Verwaltung → Protokolle → Authentifizierung
Gruppen werden nicht synchronisiert
Problem: Benutzer haben nicht die richtigen Rollen
Lösung:
<!-- SAML-Aussage für Gruppen -->
<saml:Attribute Name="groups">
<saml:AttributeValue>smartlink-talkspirit-admins</saml:AttributeValue>
<saml:AttributeValue>smartlink-talkspirit-users</saml:AttributeValue>
</saml:Attribute>
Zugriffsproblem auf Räume
Problem: Der SSO-Benutzer hat keinen Zugriff auf Räume
Lösung:
- Überprüfen Sie die Gruppensynchronisierung
- Überprüfen Sie die Regeln für die automatische Zuweisung
- Überprüfen Sie die Berechtigungen des Raums
- Stellen Sie sicher, dass der Benutzer aktiv ist
Sicherheit
Empfohlene Konfiguration
{
"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
}
}
}
DSGVO-Konformität
Talkspirit ist DSGVO-konform mit:
- Datenhosting in Frankreich
- Recht auf Vergessenwerden
- Datenportabilität
- Explizite Zustimmung
- Verarbeitungsverzeichnis
Benutzermigration
Migrationskript
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):
"""Benutzermigration zu SSO"""
with open(csv_file, 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for user in reader:
# Aktivieren von SSO für den Benutzer
self.enable_sso_for_user(user['email'])
# Zuweisen zu Räumen
self.assign_user_to_spaces(user['email'], user['spaces'])
# Benachrichtigung senden
self.send_migration_email(user['email'])
def enable_sso_for_user(self, email):
"""Aktiviert SSO für einen Benutzer"""
response = requests.patch(
f"{self.base_url}/users/email/{email}",
headers={"Authorization": f"Bearer {self.api_key}"},
json={"auth_method": "sso"}
)
return response.json()