Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@PotoMitan
Copy link
Contributor

Summary

  • Standalone Docker Compose stack proving ADR-026 multi-IAM federation
  • 3 protocol types: OIDC, SAML, LDAP
  • Token exchange (RFC 8693) + cross-realm isolation
  • 9/9 isolation tests passing (3 positive + 6 negative)

Changes

Infrastructure (deploy/demo-federation/)

  • docker-compose.yml — 4 services: Keycloak, OpenLDAP, mock gateway, OPA
  • .env.example — ports and admin passwords
  • keycloak/*.json — 5 realm configs (2 IdP source + 3 tenant)
  • openldap/seed.ldif — test users
  • gateway/server.py — JWT issuer/audience validator
  • gateway/policy.rego — OPA federation isolation policy

Scripts (scripts/demo-federation/)

  • 00-setup.sh through 05-stoa-integration.sh + 99-cleanup.sh
  • README.md — quick start + 5-min walkthrough

Quick Start

./scripts/demo-federation/00-setup.sh
./scripts/demo-federation/04-test-isolation.sh  # 9 tests
./scripts/demo-federation/99-cleanup.sh

Test plan

  • 00-setup.sh starts all containers successfully
  • 01-login.sh authenticates users in all 3 realms (OIDC, SAML, LDAP)
  • 04-test-isolation.sh passes 9/9 (3 same-realm OK + 6 cross-realm denied)
  • 99-cleanup.sh tears down cleanly
  • Verify on clean machine (no prior Docker state)

Related

  • ADR: ADR-026 (stoa-docs PR)
  • Linear: CAB-1012

🤖 Generated with Claude Code

Standalone Docker Compose stack proving zero-user-storage federation
with 3 protocol types (OIDC, SAML, LDAP), token exchange (RFC 8693),
and cross-realm isolation.

Infrastructure (deploy/demo-federation/):
- Keycloak with 5 realms (2 IdP source + 3 tenant)
- OpenLDAP for gamma org LDAP federation
- Mock gateway validating JWT issuer/audience isolation
- OPA federation isolation policy

Demo scripts (scripts/demo-federation/):
- 00-setup through 05-stoa-integration + 99-cleanup
- 9/9 isolation tests passing (3 positive + 6 negative)

Runnable locally, demo-able in 5 minutes.

Linear: CAB-1012

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@PotoMitan PotoMitan merged commit 923522f into main Jan 28, 2026
4 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants