Tailscale
Dieser Leitfaden erklärt, wie man die Single Sign-On (SSO)-Authentifizierung zwischen SmartLink und Tailscale mithilfe von OpenID Connect mit WebFinger für eine vereinfachte Konfiguration einrichtet.
Voraussetzungen
- Tailscale-Konto mit einem Plan, der benutzerdefiniertes SSO unterstützt (Business oder Enterprise)
- Administrativer Zugriff auf Tailscale
- Domain in Tailscale verifiziert
- Anwendung in SmartLink mit OpenID Connect konfiguriert
- WebFinger in SmartLink konfiguriert (optional, aber empfohlen)
Überblick
Tailscale unterstützt die SSO-Authentifizierung über OpenID Connect mit einer einzigartigen Funktion: WebFinger. Dies ermöglicht es Benutzern, sich einfach mit ihrer E-Mail-Adresse anzumelden, ohne die URL des Anbieters kennen zu müssen.
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: Tailscale
- URL:
https://login.tailscale.com - Beschreibung: VPN Mesh Tailscale
- Symbol: Wählen oder laden Sie das Tailscale-Symbol hoch
2. OpenID Connect konfigurieren
- Im Tab Authentifizierung
- Wählen Sie OpenID Connect als Authentifizierungstyp
- Konfigurieren Sie die Parameter:
- Client-ID:
tailscale-xxxxxx(wird automatisch generiert) - Client-Geheimnis:
secret-xxxxxx(wird automatisch generiert) - App-ID:
[appid](eindeutige Kennung der Anwendung in SmartLink) - Client-Typ: Vertraulich
- Client-ID:
3. Weiterleitungs-URLs konfigurieren
Fügen Sie die folgenden URLs zu den Erlaubten Weiterleitungs-URLs hinzu:
https://login.tailscale.com/a/oauth_response
https://controlplane.tailscale.com/a/oauth_response
4. Bereiche und Claims konfigurieren
Erforderliche Bereiche:
openidProfilE-Mail
Zusätzliche Claims (optional):
Gruppen: Zum Zuordnen von SmartLink-Gruppen zu Tailscale-ACLsBild: Für das Benutzeravatar
5. WebFinger-Konfiguration (Empfohlen)
WebFinger ermöglicht es Benutzern, sich mit ihrer E-Mail-Adresse anstelle der vollständigen URL des Anbieters anzumelden.
WebFinger-Konfiguration überprüfen
Ihre Domain (nicht Ihr Smartlink) sollte automatisch WebFinger unter folgender URL verfügbar machen:
https://<meinedomaine>/.well-known/webfinger
Testen Sie mit:
curl "https://beispiel.com/.well-known/webfinger"
Die Antwort sollte enthalten:
{
"subject": "acct:benutzer@beispiel.com",
"links": [
{
"rel": "http://openid.net/specs/connect/1.0/issuer",
"href": "https://your-smartlink.link.vaultys.org/api/oidc/[appid]"
}
]
}
Konfiguration in Tailscale
1. Zugriff auf SSO-Einstellungen
- Melden Sie sich bei der Tailscale-Admin-Konsole an
- Gehen Sie zu Einstellungen → Identitätsanbieter
- Klicken Sie auf Benutzerdefiniertes OIDC konfigurieren
2. Konfiguration des OpenID Connect-Anbieters
Füllen Sie die folgenden Felder aus:
- Issuer-URL:
https://your-smartlink.link.vaultys.org - Client-ID:
[Von SmartLink kopieren] - Client-Geheimnis:
[Von SmartLink kopieren]
Hinweis: Die in SmartLink erstellte Anwendung generiert automatisch eine
[appid], die in den Endpunkten verwendet wird.
3. Konfiguration der Endpunkte (falls nicht automatisch entdeckt)
Wenn Tailscale die Endpunkte nicht automatisch über .well-known/openid-configuration erkennt, konfigurieren Sie manuell:
- Konfigurations-URL:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/.well-known/openid-configuration - Autorisierungs-Endpunkt:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/authorize - Token-Endpunkt:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/token - Benutzerinfo-Endpunkt:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo - JWKS-Endpunkt:
https://your-smartlink.link.vaultys.org/api/oidc/[appid]/jwks
4. Attributmapping konfigurieren
Konfiguration des Benutzer-Mappings:
- E-Mail-Claim:
E-Mail - Namens-Claim:
NameoderE-Mail - Gruppen-Claim:
Gruppen(bei Verwendung von Gruppen-basierten ACLs)
5. Domänenkonfiguration
In E-Mail-Domänenanforderungen:
- Fügen Sie Ihre E-Mail-Domäne hinzu:
@beispiel.com - Aktivieren Sie Nur verifizierte Domänen zulassen
WebFinger-Konfiguration für vereinfachte Anmeldung
Vorteile von WebFinger
Mit konfiguriertem WebFinger können Benutzer sich einfach anmelden, indem sie einfach Folgendes verwenden:
benutzer@beispiel.com
Anstelle von:
https://your-smartlink.link.vaultys.org
DNS-Konfiguration für WebFinger
Wenn Ihre E-Mail-Domäne von der SmartLink-Domäne abweicht, fügen Sie eine Weiterleitung hinzu:
- Erstellen Sie einen CNAME- oder A-Eintrag für
webfinger.beispiel.com - Konfigurieren Sie Ihren Webserver für die Weiterleitung:
location /.well-known/webfinger {
return 307 https://your-smartlink.link.vaultys.org/.well-known/webfinger$is_args$args;
}
WebFinger-Test mit Tailscale
- Auf der Tailscale-Anmeldeseite
- Geben Sie Ihre E-Mail ein:
benutzer@beispiel.com - Tailscale sollte SmartLink automatisch als Anbieter erkennen
- Sie werden zur Authentifizierung an SmartLink weitergeleitet
Konfiguration von Gruppen-basierten ACLs
1. Gruppen in SmartLink aktivieren
- In der Tailscale-Anwendung auf SmartLink
- Stellen Sie sicher, dass der Bereich
Gruppenaktiviert ist - Überprüfen Sie, ob die Gruppen in den Claims zurückgegeben werden
2. Konfiguration der Tailscale-ACLs
Beispielkonfiguration der ACLs in Tailscale:
{
"Gruppen": {
"Gruppe:Admin": ["benutzer@beispiel.com"],
"Gruppe:Dev": ["tag:dev-server"]
},
"ACLs": [
{
"Aktion": "Akzeptieren",
"Src": ["Gruppe:Admin"],
"Dst": ["*:*"]
},
{
"Aktion": "Akzeptieren",
"Src": ["Gruppe:Dev"],
"Dst": ["tag:dev-server:*"]
}
],
"Tag-Besitzer": {
"tag:dev-server": ["Gruppe:Admin"]
}
}
3. Automatische Gruppensynchronisierung
Wenn korrekt konfiguriert, werden SmartLink-Gruppen mit Tailscale abgeglichen:
- SmartLink-Gruppe
Entwickler→Gruppe:Entwicklerin Tailscale - SmartLink-Gruppe
Admins→Gruppe:Adminsin Tailscale
Konfigurationstest
1. Test der Erstverbindung
- Melden Sie sich von Tailscale ab
- Gehen Sie zu login.tailscale.com
- Geben Sie Ihre Unternehmens-E-Mail ein
- Sie sollten zu SmartLink weitergeleitet werden
- Melden Sie sich mit Ihren SmartLink-Anmeldeinformationen an
- Sie sollten mit Tailscale verbunden sein
2. Test mit dem Tailscale-Client
- Installieren Sie den Tailscale-Client auf Ihrem Gerät
- Klicken Sie auf Anmelden
- Verwenden Sie Ihre Unternehmens-E-Mail
- Der Client sollte einen Browser zu SmartLink öffnen
- Nach der Authentifizierung sollte der Client verbunden sein
3. Berechtigungsüberprüfung
# Verbindungsstatus überprüfen
tailscale status
# Angewendete ACLs überprüfen
tailscale netcheck
# Tags und Gruppen überprüfen
tailscale debug acls
Fehlerbehebung
Fehler "Ungültiger Anbieter"
Problem: Tailscale erkennt den SmartLink-Anbieter nicht
Lösung:
- Stellen Sie sicher, dass die Issuer-URL genau wie folgt lautet:
https://your-smartlink.link.vaultys.org - Testen Sie die OpenID-Entdeckung mit Ihrer App-ID:
curl https://your-smartlink.link.vaultys.org/api/oidc/[appid]/.well-known/openid-configuration - Stellen Sie sicher, dass der Issuer in der Konfiguration mit dem zurückgegebenen übereinstimmt
WebFinger funktioniert nicht
Problem: Die Anmeldung mit einfacher E-Mail funktioniert nicht
Lösung:
- Testen Sie WebFinger direkt:
curl "https://your-smartlink.link.vaultys.org/.well-known/webfinger?resource=acct:test@example.com" - Wenn Ihre E-Mail-Domäne unterschiedlich ist, konfigurieren Sie die DNS-Weiterleitung
- Überprüfen Sie bei Bedarf die CORS-Header
Fehler "Benutzer nicht autorisiert"
Problem: Der Benutzer kann nach der Authentifizierung nicht auf Tailscale zugreifen
Lösung:
- Stellen Sie sicher, dass die E-Mail des Benutzers mit der konfigurierten Domäne übereinstimmt
- Stellen Sie sicher, dass der Benutzer der Anwendung in SmartLink zugewiesen ist
- Überprüfen Sie die Protokolle der Tailscale-Admin-Konsole
Gruppen werden nicht synchronisiert
Problem: Die Gruppen-basierten ACLs funktionieren nicht
Lösung:
- Überprüfen Sie, ob der Bereich
Gruppenaktiviert ist - Testen Sie den UserInfo-Endpunkt, um die Gruppen zu sehen:
curl -H "Authorization: Bearer TOKEN" https://your-smartlink.link.vaultys.org/api/oidc/[appid]/userinfo - Überprüfen Sie das Format der zurückgegebenen Gruppen (Array von Strings)
- Passen Sie die Tailscale-ACLs dem Gruppenformat an
SSL-Zertifikatsfehler
Problem: SSL-Validierungsfehler bei der Verbindung
Lösung:
- Stellen Sie sicher, dass ein gültiges SSL-Zertifikat verwendet wird (nicht selbstsigniert)
- Überprüfen Sie die vollständige Zertifikatskette
- Testen Sie mit:
openssl s_client -connect your-smartlink.example.com:443 -showcerts
Sicherheit
Best Practices
- Zwingendes HTTPS: Verwenden Sie niemals HTTP für OAuth-Endpunkte
- Verifizierte Domänen: Beschränken Sie den Zugriff auf verifizierte E-Mail-Domänen
- Geheimnisse regelmäßig ändern: Ändern Sie das Client-Geheimnis regelmäßig
- Strenge ACLs: Verwenden Sie das Prinzip des geringsten Privilegs
- Überwachungsprotokolle: Überwachen Sie die Verbindungen in der Tailscale-Admin-Konsole
MFA-Konfiguration
Tailscale erbt die MFA-Konfiguration von SmartLink:
- Aktivieren Sie MFA in SmartLink für Benutzer
- Benutzer müssen sich bei der Tailscale-Anmeldung mit MFA authentifizieren
Zugriff widerrufen
Um den Zugriff eines Benutzers zu widerrufen:
- Deaktivieren oder löschen Sie den Benutzer in SmartLink
- Der Zugriff auf Tailscale wird automatisch beim Ablauf des Tokens widerrufen
- Für eine sofortige Sperrung entfernen Sie das Gerät auch in der Tailscale-Admin-Konsole
Erweiterte Konfiguration
Benutzerdefiniertes Sitzungsende
Konfigurieren Sie in SmartLink die Token-Ablaufzeit:
- Access Token: 1 Stunde (empfohlen)
- Refresh Token: 30 Tage
- Tailscale-Sitzung: Passt sich dem Refresh Token an
Integration mit Headscale
Wenn Sie Headscale (Open-Source-Steuerungsserver) verwenden:
- Befolgen Sie das Headscale-Handbuch
- Die OpenID-Konfiguration ist ähnlich
- WebFinger funktioniert auch mit Headscale
Automatisierung mit Terraform
Beispielkonfiguration mit Terraform für Tailscale:
resource "tailscale_acl" "main" {
acl = jsonencode({
groups = {
"group:admin" = ["user@example.com"]
}
acls = [
{
action = "accept"
src = ["group:admin"]
dst = ["*:*"]
}
]
})
}