Vivoldi SSO (Single Sign-On) — Integrationsleitfaden
Dieser Leitfaden ist eine technische Dokumentation für Entwickler, die das IdP (Identity Provider) ihres Unternehmens sicher mit Vivoldi über RS256-basierte JWT-Authentifizierung integrieren möchten.
Der Leitfaden erklärt Schritt für Schritt die RSA-Schlüsselpaar-Erstellung, die Konfiguration von JWKS (JSON Web Key Set) sowie die Ausstellung signierter JWT-Tokens anhand praxisnaher Linux-Server-Beispiele.
Rolle der JWKS-Datei & Verifizierungsprozess
JWKS (JSON Web Key Set) ist ein Standardformat zur Bereitstellung von Public-Key-Informationen für die JWT-Signaturprüfung.
Vivoldi ruft den Public Key vom registrierten JWKS-Endpunkt ab, um die Signatur und die Gültigkeit des JWT-Tokens zu überprüfen.
Auch in Key-Rotation-Umgebungen können neue Public Keys sicher verteilt werden. Da nur der Public Key geteilt wird, lässt sich die Authentifizierung konfigurieren, ohne den Private Key gegenüber externen Systemen offenzulegen.
1. Zertifikatsschlüsseldateien erstellen
Zur Ausstellung von JWT-Tokens mit dem RS256-Verfahren wird ein RSA-Schlüsselpaar bestehend aus Private Key und Public Key benötigt.
Der Private Key wird zum Signieren der JWT-Tokens verwendet, während der Public Key über die JWKS-Datei für die Signaturprüfung durch die Vivoldi-Server bereitgestellt wird. Für eine höhere Sicherheit wird eine Schlüssellänge von mindestens 3072 Bit empfohlen.
Linux Terminal
# Private Key Generation (RSA 3072-bit, PKCS#1)
$ openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out sso_private.pem
# Public Key Extraction (X.509 PEM)
$ openssl rsa -in sso_private.pem -pubout -out sso_public.pem
2. Dateiberechtigungen festlegen
Die Private-Key-Datei sollte ausschließlich innerhalb der Serverumgebung verwendet werden. Dateisystemberechtigungen sollten so restriktiv wie möglich gesetzt werden, um unnötige Zugriffe zu verhindern.
Wird der Private Key kompromittiert, könnten Angreifer gültige JWT-Tokens erstellen und damit das gesamte SSO-Authentifizierungssystem gefährden.
⚠️ Warnung: Laden Sie Private Keys niemals in öffentliche Repositories oder gemeinsam genutzte Speicherorte wie Git-Repositories, E-Mails oder Cloud-Speicher hoch. Verwenden Sie in CI/CD-Pipelines stattdessen Umgebungsvariablen oder einen Secret Manager.
Linux Terminal
# Private Key: Owner-only read access (600 recommended)
$ chmod 600 sso_private.pem
# Public Key: Set to read-only (644)
$ chmod 644 sso_public.pem
# Change the owner to the application execution account when necessary (e.g., www-data)
$ chown www-data:www-data sso_*.pem
3. JWKS-Datei erstellen und registrieren
Auf der Seite [Entwickler → SSO-Einstellungen] im Vivoldi-Dashboard wird durch das Hochladen der Datei sso_public.pem automatisch die Datei jwks.json erstellt.
Die generierte jwks.json entspricht dem RFC-7517-Standard für JSON Web Key Sets und muss unter folgendem Pfad öffentlich erreichbar bereitgestellt werden.
https://yourdomain.com/.well-known/jwks.json
Bei der JWT-Token-Validierung rufen die Vivoldi-Server den Public Key von diesem Endpunkt ab, um die Signatur zu überprüfen. Ist der Pfad falsch oder der Endpunkt nicht erreichbar, schlägt die Anmeldung fehl.
💡 Hinweis:
Die Werte für Issuer und Audience werden beim Upgrade auf den Enterprise-Tarif automatisch vom System generiert.
Eine zusätzliche Konfiguration oder manuelle Änderung ist nicht erforderlich.
jwks.json example
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"kid": "vivoldi-sso-20251008",
"alg": "RS256",
"n": "AN3V-5RxI7ekeBtc5N66yHzmhib_5ES5i3ZYoU4znkNh...",
"e": "AQAB"
}
]
}
Items
- kty string
- Abkürzung für Key Type. Im SSO wird ein RSA-Format-Public-Key verwendet.
- use string
- Gibt den Verwendungszweck des Schlüssels an. „sig“ bedeutet, dass er für die Signatur verwendet wird.
- kid string
-
Key ID – eine Kennung zur Unterscheidung verschiedener Schlüsselversionen.
Beispiel:
vivoldi-sso-20251008 - alg string
- Gibt den verwendeten Signaturalgorithmus an. Vivoldi SSO unterstützt ausschließlich RS256 (RSA + SHA-256) für erhöhte Sicherheit.
- n string
-
Der Modulus-Wert des RSA-Public-Keys, eine lange Base64URL-codierte Zeichenfolge.
Dieser Wert wird zusammen mitsso_private.pembei der Erstellung von Authentifizierungstoken verwendet. - e string
-
Der Exponent-Wert des RSA-Public-Keys.
In der Regel auf AQAB (65537) festgelegt.
4. Beispiel zur Erstellung eines JWT-Tokens
Diese Anleitung erklärt, wie RS256-basierte JWT-Tokens erstellt und Vivoldi-SSO-Logins in Java-, PHP- und Node.js-Umgebungen umgesetzt werden.
Vor der Ausstellung von JWT-Tokens muss bereits ein Vivoldi-Benutzerkonto registriert sein, das mit dem Organisationskonto verknüpft ist.
Registrieren Sie den Benutzer zuerst auf der Seite [Einstellungen → Benutzerverwaltung], bevor Sie fortfahren.
💡 Exklusive Enterprise-Funktion
Vivoldi bietet Single Sign-On (SSO) für Enterprise-Kunden an.
Durch die Integration mit dem Authentifizierungssystem Ihres Unternehmens lassen sich Sicherheitsrichtlinien zentral verwalten und Zugriffskontrollen unternehmensweit effizienter umsetzen.
Wenn Sie eine Beratung zur Einführung oder Implementierung wünschen, kontaktieren Sie uns bitte über die Seite [Kontakt].
Nach dem Upgrade auf den Enterprise-Tarif können sprachspezifische SSO-Integrationsbeispiele direkt im Dashboard nach dem Login eingesehen werden.
✨ Enterprise-Grade-Einzelanmeldung
SSO (Single Sign-On) verbindet das Authentifizierungssystem Ihres Unternehmens mit Vivoldi,
sodass alle Benutzer mit nur einer Anmeldung sicher auf die Dienste zugreifen können.
Zentrale Kontoverwaltung, erweiterte Sicherheitsrichtlinien und automatisierte Zugriffskontrolle für organisatorische Sicherheit und Betriebseffizienz sind im Enterprise-Tarif verfügbar.