Skip to content
Open with AI

Issuerd operations documentation

This directory contains the operational documentation set for Issuerd — guides and references for the people who deploy, configure, administer, and troubleshoot an Issuerd installation, and for application developers integrating their software with it. Every guide below opens with its own table of contents (the two short references, CLUSTERING.md and PERFORMANCE.md, go straight to the point).

The documentation is written against the repository itself (configuration structs, route definitions, CLI, compose stacks, and test harnesses) and reflects behavior as implemented. Where Issuerd deliberately diverges from Keycloak, the difference is called out and also tracked in tests/KEYCLOAK_DIFFS.md.

Depending on your role, you will typically read the set in this order:

Role Suggested path
Evaluating Issuerd Getting startedAdministrationClient integration
Deploying to production Getting startedConfigurationDeploymentSecurityMonitoring
Day-2 operator AdministrationMonitoringBackup, restore, and upgradeTroubleshooting
Connecting a user directory User federationLDAP group mapping and token claimsProvisioningTroubleshooting
Connecting external identity providers Identity brokeringSecurity
Application developer Client integrationConfiguration (CORS, issuer)
Building an AI agent or MCP server Agentic IAM: MCP tool callsHuman step-up approval with CIBAClient integration
Document What it covers
Getting started Installation (Docker demo stack or build from source), first boot and seeding, verifying the installation, obtaining a first token, first hardening steps.
Configuration Complete issuerd.toml reference: loading order, environment overrides, and every section — storage, TLS, logging, proxy, CORS, cluster, cache, themes, SMTP including per-realm overrides.
Provisioning Declarative realm seeding with provision.yaml: the apply-once marker semantics, the provision CLI command, and a field-by-field reference for realms, roles, groups, clients, users, identity providers, and flow configs.
Document What it covers
Deployment Deployment topologies, container and bare-metal/systemd installation, TLS termination options, reverse-proxy requirements, health checks, and the production checklist.
Clustering Multi-node operation: the shared-state model (PostgreSQL + Redis), storage-backed signing keys, load-balancer requirements, and the two-node demo stack.
Performance Measured performance and sizing: k6 benchmark stack (tests/perf/, isolated network, Docker CPU/memory limits), throughput/latency vs Keycloak 26.7, CPU/RAM/disk/log growth, agentic workloads (DPoP/CIBA); plus the in-process micro-benchmarks (tests/integration/bench.rs).
Document What it covers
Administration The admin access model (master realm, realm-management roles), the admin console, the Admin REST API with a curl cookbook, OpenAPI export, and events management.
Client integration The application developer’s guide: discovery and endpoint map, choosing a flow, registering clients, the authorization code flow with PKCE end to end, token handling, logout, client authentication methods, adapter-config download, and advanced OAuth capabilities.
Document What it covers
Agentic IAM: MCP tool calls with DPoP and token exchange Securing AI-agent tool calls end to end: DPoP sender-constraining (cnf.jkt, single-use jti replay cache), RFC 8693 audience/scope attenuation per call, the resource-server enforcement checklist, a live failure matrix, and the recorded MCP demo.
Human step-up approval with CIBA Client-Initiated Backchannel Authentication (poll mode) as the human-in-the-loop for privileged agent actions: endpoints and parameters, binding messages, DPoP-bound step-up tokens, the step-up configuration pattern, and the recorded refund-approval demo.
Document What it covers
User federation LDAP (Samba AD, OpenLDAP, MS Active Directory) and Kerberos/SPNEGO: provider configuration, user synchronization, group-mapping semantics, and operating a federated realm.
LDAP group mapping and token claims The end-to-end pipeline: directory memberships → synced Issuerd groups → group role mappings → realm_access / resource_access / groups claims in tokens, with MS AD, Samba, and OpenLDAP specifics.
Identity brokering External OIDC and social identity providers (Google, GitHub, Microsoft): configuration, first broker login, account linking, IdP mappers, and kc_idp_hint.
Document What it covers
Security Hardening: TLS and proxy baseline, signing-key rotation, password policies, brute-force protection, MFA operations (TOTP, WebAuthn, email codes), session and token hardening, admin-surface hygiene.
Monitoring /health and /ready probes, Prometheus metrics, logging and request correlation, login events and admin events (querying, retention, auditing).
Backup, restore, and upgrade Where state lives, PostgreSQL and JSON-snapshot backup/restore procedures, schema migrations, single-node and rolling cluster upgrades, rollback rules, and a disaster-recovery skeleton.
Troubleshooting Symptom → cause → fix for startup, login flow, token, email, federation, brokering, and cluster problems, plus how to gather diagnostics and file a useful bug report.

These documents live outside docs/ but are part of the operational picture:

Document Purpose
README.md Project overview, feature list, standards coverage, quickstart.
ARCHITECTURE.md High-level design and module contracts.
CHANGELOG.md Project changelog (currently: initial release).
tests/KEYCLOAK_DIFFS.md Every deliberate behavioral divergence from Keycloak 24.
tests/conformance/README.md OIDC conformance suite harness and results.
examples/ Fully-commented example server and provision configs (regenerable via issuerd example).
  • Commands are shown for a Linux shell and assume the repository root as the working directory unless stated otherwise.
  • Placeholders use angle brackets (<db-password>) or example domains (idp.example.com); replace them before running.
  • Admonitions: > **Note:** for clarifications, > **Warning:** for actions that can lock users out, invalidate tokens, or lose data.
  • Cross-references between these documents are relative links; source files are cited by repository path (e.g. crates/issuerd-server/src/config.rs).
  • Default credentials and demo content (admin/admin, alice/changeme) refer to the seeded demo material described in Getting started — never leave them in place on a reachable deployment.