feat(web-arm): per-site Keycloak clients for TYPO3 SSO #294

Open
opened 2026-08-08 00:23:56 +02:00 by dominik.polakovics · 0 comments

Several TYPO3 sites across web-arm and amzebs-01 should offer backend login through sso.cloonar.com. A shared OIDC client across all domains would work — redirectUris is a list — but it puts one secret in every site's config, collapses per-site authorization onto a single set of client roles, and leaves only one backchannel-logout URL for all of them.

So: one client per domain. The cost of that is per-site boilerplate (realm JSON block, sops secret, vault key), which is what makes it annoying enough to skip.

Make adding a site cheap:

  • derive the realm client, the sops declaration and the vault entry from the domain, driven by a list in the keycloak module
  • scripts/add-typo3-sso <domain> generates the secret, writes it encrypted into hosts/web-arm/secrets.yaml, appends the domain to the list, and prints the AdditionalConfiguration.php block for EXT:oauth2_client

Access stays gated by the existing browser-flow overrides (browser-spnego admin-only / internal), not by TYPO3.

Several TYPO3 sites across `web-arm` and `amzebs-01` should offer backend login through `sso.cloonar.com`. A shared OIDC client across all domains would work — `redirectUris` is a list — but it puts one secret in every site's config, collapses per-site authorization onto a single set of client roles, and leaves only one backchannel-logout URL for all of them. So: one client per domain. The cost of that is per-site boilerplate (realm JSON block, sops secret, vault key), which is what makes it annoying enough to skip. Make adding a site cheap: - derive the realm client, the sops declaration and the vault entry from the domain, driven by a list in the keycloak module - `scripts/add-typo3-sso <domain>` generates the secret, writes it encrypted into `hosts/web-arm/secrets.yaml`, appends the domain to the list, and prints the `AdditionalConfiguration.php` block for EXT:oauth2_client Access stays gated by the existing browser-flow overrides (`browser-spnego admin-only` / `internal`), not by TYPO3.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Cloonar/nixos#294
No description provided.