API-Schlüssel
Erfahren Sie, wie Sie die Authentifizierung für CLI und API-Zugriff in TeamDay verwalten.
Inhaltsverzeichnis
- Authentifizierungsmethoden
- Personal Access Tokens
- OAuth für CLI
- Sicherheit Best Practices
- Fehlerbehebung
Authentifizierungsmethoden
TeamDay unterstützt zwei Authentifizierungsmethoden:
| Methode | Anwendungsfall | Ablauf | Am besten für |
|---|---|---|---|
| OAuth 2.1 | CLI interaktive Nutzung | 15 min (Access Token) 90 Tage (Refresh Token) | Menschliche Benutzer, Entwicklung |
| Personal Access Token (PAT) | API-Automatisierung | Nur manuelle Widerruf | CI/CD, Skripte, Automatisierung |
OAuth vs PAT
Verwenden Sie OAuth, wenn:
- Sie interaktiv mit CLI arbeiten
- Sie ein menschlicher Benutzer sind
- Sie automatische Token-Aktualisierung möchten
- Kurzfristiger Zugriff bevorzugt wird
Verwenden Sie PAT, wenn:
- Sie mit Skripten oder CI/CD automatisieren
- Hintergrund-Jobs ausführen
- Langfristiger Zugriff benötigt wird
- Einfache Bearer Token Auth gewünscht ist
Personal Access Tokens
Personal Access Tokens (PATs) sind langlebige Anmeldedaten für programmatischen Zugriff.
Erstellen Sie ein PAT
Über Benutzeroberfläche:
Schritt 1: Navigieren Sie zu Einstellungen
Klicken Sie auf Ihr Profilsymbol → Einstellungen
Schritt 2: Gehen Sie zu API-Schlüssel
Klicken Sie auf "API-Schlüssel" in der linken Seitenleiste
Schritt 3: Klicken Sie auf "Token erstellen"
Klicken Sie auf die "+ Neues Personal Access Token" Schaltfläche
Schritt 4: Token konfigurieren
- Name (Erforderlich)
- Aussagekräftiger Name für diesen Token
- Beispiele: "CI/CD Pipeline", "Automation Scripts", "Production Bot"
- Ablauf (Optional)
- Standard: Kein Ablauf
- Optionen: 30 Tage, 90 Tage, 1 Jahr, benutzerdefiniert, nie
- Empfehlung: Ablauf zur Sicherheit einstellen
- Scopes (Kommt bald)
- Derzeit: Vollständiger Zugriff
- Zukunft: Granulare Berechtigungen (agents:read, tasks:write, etc.)
Schritt 5: Token kopieren
⚠️ WICHTIG: Token wird nur einmal angezeigt!
td_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
- Kopieren Sie sofort und speichern Sie sicher
- Wenn verloren, müssen Sie Token widerrufen und einen neuen erstellen
- Commiten Sie niemals zu Git und teilen Sie nicht öffentlich
Schritt 6: Token sicher speichern
Speichern Sie in einem Passwort-Manager oder einer sicheren Umgebungsvariable:
# .bashrc oder .zshrc
export TEAMDAY_API_TOKEN="td_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
PATs verwenden
Mit CLI:
# Methode 1: Set über Befehl
teamday auth set-key "td_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
# Methode 2: Umgebungsvariable
export TEAMDAY_API_TOKEN="td_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
teamday agents list
# Methode 3: Inline
TEAMDAY_API_TOKEN="td_xxx" teamday agents list
Mit API:
curl -X GET https://cc.teamday.ai/api/v1/agents \
-H "Authorization: Bearer td_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
Mit JavaScript:
const TEAMDAY_TOKEN = process.env.TEAMDAY_API_TOKEN;
const response = await fetch('https://cc.teamday.ai/api/v1/agents', {
headers: {
'Authorization': `Bearer ${TEAMDAY_TOKEN}`,
'Content-Type': 'application/json'
}
});
const agents = await response.json();
Mit Python:
import os
import requests
TEAMDAY_TOKEN = os.environ['TEAMDAY_API_TOKEN']
response = requests.get(
'https://cc.teamday.ai/api/v1/agents',
headers={
'Authorization': f'Bearer {TEAMDAY_TOKEN}',
'Content-Type': 'application/json'
}
)
agents = response.json()
PATs verwalten
Aktive Tokens anzeigen:
Über Benutzeroberfläche:
- Einstellungen → API-Schlüssel
- Siehe Liste der aktiven Tokens mit:
- Name
- Erstellungsdatum
- Letztes Verwendungsdatum
- Ablauf (falls gesetzt)
Tokens sind gehashed - Sie können den Token-Wert nach der Erstellung nicht anzeigen.
Über CLI:
teamday auth tokens list
Ausgabe:
ID Name Created Last Used Expires
---------------------------------------------------------------------------
token_123 CI/CD Pipeline 2024-12-01 2025-01-15 2025-06-01
token_456 Production Bot 2024-10-15 2025-01-14 Never
token_789 Local Development 2025-01-10 2025-01-15 2025-02-10
PATs widerrufen
Über Benutzeroberfläche:
- Einstellungen → API-Schlüssel
- Suchen Sie den Token in der Liste
- Klicken Sie auf "⋯" → "Widerrufen"
- Bestätigen Sie
Über CLI:
teamday auth tokens revoke token_123
Auswirkung:
- Token funktioniert sofort nicht mehr
- Alle Anfragen mit diesem Token geben
401 Unauthorizedzurück - Kann nicht rückgängig gemacht werden - müssen neuen Token erstellen
Wann zu widerrufen:
- Token möglicherweise kompromittiert
- Mitarbeiter verlässt Team
- Wechsel zu neuem Token
- Token wird nicht mehr benötigt
Token-Rotation
Best Practice: Tokens regelmäßig rotieren
Strategie:
- Neuen Token erstellen
- Systeme aktualisieren, um neuen Token zu verwenden
- Überprüfen Sie, ob der neue Token funktioniert
- Alten Token widerrufen
Beispiel-Skript:
#!/bin/bash
# rotate-token.sh
# Erstelle neuen Token (via UI, Wert kopieren)
NEW_TOKEN="td_new_token_here"
# Update in CI/CD (Beispiel: GitHub Actions)
gh secret set TEAMDAY_API_TOKEN --body "$NEW_TOKEN"
# Update in Produktionsumgebung
kubectl create secret generic teamday-token \
--from-literal=token="$NEW_TOKEN" \
--dry-run=client -o yaml | kubectl apply -f -
# Test neuer Token
TEAMDAY_API_TOKEN="$NEW_TOKEN" teamday agents list
# Falls erfolgreich, alten Token widerrufen
teamday auth tokens revoke token_old_id
OAuth für CLI
OAuth bietet sicheren, kurzlebigen Zugriff für CLI-Benutzer.
So funktioniert OAuth
sequenceDiagram
participant CLI
participant Browser
participant TeamDay
CLI->>TeamDay: 1. Authentifizierung initiieren
TeamDay->>CLI: 2. Authentifizierungscode + URL zurückgeben
CLI->>Browser: 3. Authentifizierungs-URL öffnen
Browser->>TeamDay: 4. Benutzer meldet sich an
TeamDay->>Browser: 5. Autorisierung erfolgreich
CLI->>TeamDay: 6. Tokens abfragen
TeamDay->>CLI: 7. Access + Refresh Tokens zurückgeben
CLI->>TeamDay: 8. API-Anfragen stellen
Note over CLI,TeamDay: Access Token läuft in 15 min ab
CLI->>TeamDay: 9. Token aktualisieren
TeamDay->>CLI: 10. Neuer Access Token
Mit OAuth anmelden
Schritt 1: Führen Sie Login-Befehl aus
teamday auth login
Schritt 2: CLI initiiert Authentifizierung
Authentifizierung wird eingeleitet...
Bitte öffnen Sie diese URL in Ihrem Browser:
https://cc.teamday.ai/cli-auth?code=abc123xyz
Warten auf Autorisierung...
Schritt 3: Browser wird automatisch geöffnet
- Falls Browser nicht öffnet, kopieren/einfügen Sie URL manuell
- Sie sehen die TeamDay-Anmeldeseite
Schritt 4: Melden Sie sich bei TeamDay an
- Geben Sie E-Mail/Passwort ein
- Oder verwenden Sie OAuth-Provider (Google, GitHub)
Schritt 5: Autorisieren Sie CLI
Seite anzeigen:
Autorisieren Sie TeamDay CLI
Die TeamDay CLI fordert Zugriff auf Ihren Account an.
Dies ermöglicht:
✓ Agenten verwalten
✓ Agenten ausführen
✓ Auf Spaces zugreifen
✓ Aufgaben erstellen
[Autorisieren] [Abbrechen]
Klicken Sie auf "Autorisieren"
Schritt 6: Erfolg
Browser anzeigen:
✓ Autorisierung erfolgreich!
Sie können dieses Fenster schließen und zu Ihrem Terminal zurückkehren.
CLI anzeigen:
✓ Authentifizierung erfolgreich!
Sie sind angemeldet als: [email protected]
Organisation: Acme Corp
Token-Speicherung
OAuth Tokens lokal gespeichert:
Standort:
- macOS:
~/.teamday/config.json - Linux:
~/.teamday/config.json - Windows:
%USERPROFILE%\.teamday\config.json
Inhalte:
{
"accessToken": "ey...",
"refreshToken": "ey...",
"expiresAt": "2025-01-15T11:00:00Z",
"user": {
"email": "[email protected]",
"organizationId": "org_abc123"
}
}
Sicherheit:
- Datei hat strikte Berechtigungen (600 auf Unix)
- Tokens sind in Ruhe verschlüsselt (auf einigen Systemen)
- Automatisch aktualisiert vor Ablauf
Automatische Token-Aktualisierung
CLI aktualisiert automatisch Access Tokens:
# Erster Befehl: Token gültig
teamday agents list
# Funktioniert sofort
# ... 15 Minuten später, Token abgelaufen ...
# Nächster Befehl: Token automatisch aktualisiert
teamday agents exec char_123 "message"
# CLI erkennt Ablauf, aktualisiert Token, führt dann aus
Manuelle Aktualisierung:
teamday auth refresh
Authentifizierungsstatus überprüfen
teamday auth status
Ausgabe:
✓ Authentifiziert
Benutzer: [email protected]
Organisation: Acme Corp
Methode: OAuth
Access Token: Gültig (läuft in 12 min ab)
Refresh Token: Gültig (läuft in 85 Tagen ab)
Abmelden
teamday auth logout
Dies:
- Löscht lokale Tokens
- Widerruft Access Token auf dem Server
- Erfordert Neu-Authentifizierung für nächsten Befehl
Sicherheit Best Practices
1. Commiten Sie niemals Tokens zu Git
Verwenden Sie .gitignore:
# .gitignore
.env
.env.local
.teamday/
config.json
*_token.txt
Überprüfen Sie vor dem Commit:
git diff --cached | grep -i "td_"
2. Verwenden Sie Umgebungsvariablen
Für PATs:
# .env (NICHT COMMITEN)
TEAMDAY_API_TOKEN=td_xxx
# Laden Sie in Skripten
export $(cat .env | xargs)
In CI/CD:
- GitHub Actions: Repository Secrets
- GitLab CI: CI/CD Variables
- CircleCI: Project Settings → Environment Variables
3. Prinzip der minimalen Berechtigung
Erstellen Sie separate Tokens für verschiedene Zwecke:
✓ Gut:
- "CI/CD Deploy" - Nur in Deployment Pipeline verwendet
- "Daily Reports" - Nur für automatisierte Berichterstattung verwendet
- "Development" - Lokal verwendet, häufig rotiert
✗ Schlecht:
- "Master Token" - Überall verwendet (falls kompromittiert, vollständiger Zugriff)
4. Ablaufdaten einstellen
Für Automatisierungs-Tokens:
Kurzfristige Projekte: 30 Tage
Langfristige CI/CD: 90 Tage
Vierteljährliche Überprüfung: 1 Jahr
Überprüfen Sie vor Ablauf:
- Kalendererinnerungen einstellen
- Ablauf-Benachrichtigungen automatisieren
- Proaktiv rotieren
5. Token-Nutzung überwachen
Über Benutzeroberfläche: Einstellungen → API-Schlüssel → Sehen Sie "Last Used"
Rote Flaggen:
- Tokens, die nie verwendet werden (löschen)
- Unerwartete Verwendungszeiten (untersuchen)
- Hohes Request-Volumen (potentieller Missbrauch)
6. Sichere Token-Speicherung
Lokale Entwicklung:
# Verwenden Sie einen Passwort-Manager
# Beispiel: 1Password, LastPass, Bitwarden
# Oder verschlüsselte Datei
gpg --encrypt --recipient [email protected] token.txt
# Entschlüsseln, wenn nötig
gpg --decrypt token.txt.gpg
Produktion:
# Verwenden Sie Secret Management
# AWS: Secrets Manager
# GCP: Secret Manager
# Azure: Key Vault
# Kubernetes: Secrets
7. Regelmäßig rotieren
Empfohlener Zeitplan:
- Entwicklungs-Tokens: Monatlich
- CI/CD-Tokens: Vierteljährlich
- Produktions-Tokens: Alle 6 Monate
- Bei Team-Änderungen: Sofort
8. Zugriff auditieren
Monatliche Überprüfung:
# Alle Tokens auflisten
teamday auth tokens list
# Überprüfen Sie jedes:
# - Wird noch benötigt?
# - Besitzer noch im Team?
# - Kürzlich verwendet?
# - Ablauf angemessen?
# Unnötige Tokens widerrufen
teamday auth tokens revoke token_old_id
9. Incident Response
Falls Token kompromittiert:
Schritt 1: Sofort widerrufen
teamday auth tokens revoke token_compromised_id
Schritt 2: Überprüfen Sie Audit-Logs
teamday audit --token token_compromised_id --since "1 week ago"
Schritt 3: Schaden beurteilen
- Auf welche Agenten wurde zugegriffen?
- Welche Daten wurden freigelegt?
- Wurden destruktive Aktionen durchgeführt?
Schritt 4: Alle Tokens rotieren
- Wissen nicht, welcher kompromittiert ist? Alle rotieren
Schritt 5: Dokumentation aktualisieren
- Wie wurde es kompromittiert?
- Wie zu verhindern in der Zukunft?
10. Rate Limiting
Seien Sie sich Rate-Limits bewusst:
- Mit PAT: 1000 Anfragen/Stunde
- Mit OAuth: 500 Anfragen/Stunde
Vermeiden Sie:
# Schlecht: Polling in enger Schleife
while true; do
teamday agents list
sleep 1
done
Tun Sie:
# Gut: Angemessenes Polling
while true; do
teamday agents list
sleep 60 # Überprüfen alle Minute
done
Fehlerbehebung
Ungültige Token-Fehler
Symptome:
Error: Invalid token or token expired
Status: 401 Unauthorized
Lösungen:
Für PAT:
# Überprüfen Sie, dass der Token korrekt ist
echo $TEAMDAY_API_TOKEN
# Überprüfen Sie, ob Token aktiv ist
teamday auth tokens list
# Erstelle neuen Token, falls nötig
# (via UI: Einstellungen → API-Schlüssel → Neuer Token)
Für OAuth:
# Token abgelaufen, aktualisieren
teamday auth refresh
# Oder erneut anmelden
teamday auth logout
teamday auth login
Berechtigung verweigert
Symptome:
Error: You do not have permission to perform this action
Status: 403 Forbidden
Ursachen:
- Token hat unzureichende Scopes (zukünftige Funktion)
- Benutzerrolle erlaubt keine Aktion
- Ressource gehört zu anderer Organisation
Lösungen:
# Überprüfen Sie Auth-Status
teamday auth status
# Überprüfen Sie Organisation
teamday config get organization
# Organisation wechseln (falls Mitglied mehrerer)
teamday config set organization org_different_id
Token nicht gefunden
Symptome:
Error: No authentication token found
Lösungen:
# Überprüfen Sie, ob angemeldet
teamday auth status
# Falls nicht, anmelden
teamday auth login
# Oder PAT setzen
teamday auth set-key "td_xxx"
# Oder Umgebungsvariable verwenden
export TEAMDAY_API_TOKEN="td_xxx"
OAuth Flow hängt
Symptome: Browser zeigt nie Erfolgsseite
Lösungen:
1. Überprüfen Sie Browser-Konsole auf Fehler
2. Manuelle Fertigstellung:
# Hängenden Flow abbrechen
Ctrl+C
# Versuchen Sie erneut mit manueller Code-Eingabe
teamday auth login --manual
3. Verwenden Sie stattdessen PAT:
# PAT über UI generieren
# Dann in CLI setzen
teamday auth set-key "td_xxx"
Rate-Limit überschritten
Symptome:
Error: Rate limit exceeded
Status: 429 Too Many Requests
Retry-After: 3600
Lösungen:
# Warten Sie auf Rate-Limit-Reset (1 Stunde)
# Oder implementieren Sie exponentielles Backoff
#!/bin/bash
retry=0
max_retries=5
while [ $retry -lt $max_retries ]; do
if teamday agents list; then
exit 0
fi
wait=$((2 ** retry))
echo "Retry in ${wait}s..."
sleep $wait
retry=$((retry + 1))
done
Nächste Schritte
- Verwenden Sie Tokens mit dem CLI-Tool
- Integrieren Sie mit API
- Richten Sie CI/CD-Automatisierung ein
- Lernen Sie API-Best-Practices