RAMBO

RAMBO steht für Rights, Accounts, Multi-factor, Bearer tokens & OAuth. Es ist ein Anmeldedienst und OpenID Provider, geschrieben in Hilde mit Wolly. RAMBO dient den Projekten rund um Hilde und übernimmt die Anmeldung per OAuth und OpenID für Gitea. Quelltext: github.com/heikozim/hilde-rambo. Grundlage sind github.com/heikozim/hilde-wolly und github.com/heikozim/hilde.

Von Go zu Hilde

Das erste RAMBO, go-rambo, war in Go geschrieben: ein OpenID Provider für eine feste Liste eigener Werkzeuge, als FastCGI hinter Hiawatha, gebaut für OpenBSD. An Go ist nichts falsch, und go-rambo hat seinen Zweck erfüllt. Die Hilde-Version behält alles bei, was eine angebundene Anwendung sieht: dieselben Endpunkte, Claims, Token-Header, Cookie-Namen, Konfigurationsschlüssel und dieselbe Kommandozeile. Sie liest die Daten von go-rambo unverändert: das SQLite-Schema, die gepfefferten Argon2id-Hashes, die versiegelten TOTP-Geheimnisse und den Vault.

Was die Hilde-Version neu mitbringt, verdankt sie Hilde:

Keine Benutzerverwaltung im Browser

Die Benutzerverwaltung läuft bewusst nur über die Kommandozeile: Konten, Clients, Rollen, Sitzungen und Schlüssel. Die Weboberfläche hat keine Admin-Seiten, nur die eigene Kontoseite jedes Benutzers. Die Befehle sind dieselben wie bei go-rambo (serve, setup, account, client, role, session, keys rotate, version), und wo ein Skript die Ausgabe auswerten könnte, ist sie Wort für Wort dieselbe. Hilfe und Aufrufsyntax kommen aus Standard.Arguments, das sich an der Builder-Form von clap orientiert. Die Kommandozeile von go-rambo war mit cobra gebaut.

Betrieb

RAMBO läuft als FastCGI auf einem Unix-Socket hinter Hiawatha. Das Repository enthält die Konfiguration für Hiawatha und die Skripte für den Umstieg von go-rambo unter OpenBSD. Audit-Einträge schreibt RAMBO ins Systemprotokoll, und es schränkt sich selbst mit der Sandbox von Hilde ein.