Zugriffsverwaltung
AdminUser ist in dieser Anwendung die explizit vorab provisionierte, vollständige Merchant-Administratorrolle. Es gibt derzeit keine allgemeine Mitarbeiteranmeldung und keine untergeordneten Adminrollen. Bei Keycloak-Anmeldung entsteht eine Admin-Session ausschließlich für einen vorhandenen AdminUser, dessen freigegebener Issuer und Subject exakt zum verifizierten ID-Token passen und dessen E-Mail-Adresse verifiziert und identisch ist. Realm-Mitgliedschaft, eine E-Mail-Adresse allein, ein ApiClient oder ein ApiIdentityGrant erteilen keinen Zugriff auf Admin-Routen. Rollen mit geringeren Rechten sind eine separate künftige Funktion.
Die Zugriffsseite verwaltet ausschließlich lokale ApiIdentityGrant-Zuordnungen des angemeldeten Merchants. Issuer stammen aus Auth::Configuration::ALLOWED_ISSUERS; Subject und Client-ID müssen aus einer bereits verifizierten externen Identität übernommen werden. Zulässige Scopes sind billing.read und billing.write, standardmäßig nur billing.read. Die Anwendung legt keine Benutzer, Realms oder Clients in Keycloak an und kontaktiert Keycloak bei diesen Änderungen nicht.
Jede Änderung zeigt zuerst Issuer, Subject, Client-ID und Scopes zur Prüfung. Die Bestätigung ist kurzlebig, an Merchant und Admin gebunden, serverseitig nur einmal verwendbar und bei einer zwischenzeitlichen Änderung der Freigabe ungültig. Erstellen, Ändern und Deaktivieren werden mit Actor und Ergebnis auditiert; Credentialwerte werden weder angenommen noch protokolliert. Deaktivierte Freigaben bleiben als Sperr- und Auditdatensatz erhalten und können über diese Oberfläche nicht reaktiviert werden.