Zum Inhalt springen

Authentifizierung

ToolMesh bietet ein produktionsreifes Authentifizierungssystem mit mehreren Modi — von einfachen Single-User-Setups bis hin zu vollem Multi-User-OAuth.

Schnellstart mit Umgebungsvariablen:

Terminal-Fenster
TOOLMESH_AUTH_PASSWORD=changeme # Single-User-OAuth-Passwort
TOOLMESH_API_KEY=sk-my-key # Statischer API-Key

Vollständiges OAuth 2.1 mit PKCE S256 für interaktiven Login:

  • Benutzer in config/users.yaml definiert (bcrypt-gehashte Passwörter)
  • Jeder Benutzer hat: Username, Company, Plan, Roles
  • Dynamic Client Registration (DCR), ratenlimitiert (5/Stunde/IP)
  • Redis/KeyDB für State-Persistenz (Tokens, Auth-Codes, Client-Registrierungen)
config/users.yaml
users:
- username: alice
password: "$2a$12$..." # bcrypt-Hash
company: acme
plan: pro
roles: [admin]

Für programmatischen Zugriff:

config/apikeys.yaml
keys:
- key_hash: "$2a$12$..." # bcrypt-Hash
username: ci-bot
company: acme
plan: standard
roles: [read]
caller_id: github-actions

Jeder API-Key trägt seine eigene Identität (User, Company, Plan, Roles), die durch die gesamte Pipeline fließt.

Die authentifizierte Identität fließt durch jeden Schritt:

Authentication → CallerID → OpenFGA AuthZ → Credential Store → Audit Trail

Das stellt volle Nachvollziehbarkeit sicher: Jeder Tool-Call wird einem bestimmten Benutzer zugeordnet, mit einem bestimmten Plan, von einem bestimmten Client.

Starte mit TOOLMESH_AUTH_PASSWORD für schnelles Prototyping. Wenn mehrere Benutzer benötigt werden, wechsle zu users.yaml — keine Architekturänderung nötig. Die gleiche Pipeline verarbeitet beide Modi.