Identity Provider Range
An SSO employee portal over Keycloak: start as a normal employee and see how far one identity can go.
Run a Cracken operation against the Northwind Access Portal, a fictional employee workspace built quickly during a company merger. Employees sign in with corporate SSO and reach internal documents, billing records, and support workflows through a handful of backend APIs, all fronted by a Keycloak identity provider. The identity, authorization, and lifecycle layer is where the planted weaknesses live — this range exercises how Cracken assesses an SSO-backed application rather than a single web surface.
http://idp-cyberrange-dev-31786426.eu-central-1.elb.amazonaws.com/ is a disposable, isolated lab
target provided for testing Cracken, and you are authorized to assess it. Point Cracken only at that
hostname. Running the same operation against any other host is unauthorized testing.
Prerequisites
- Access to a realm in your tenant.
- A connected Tentacle with network reach to the range hostname on port 80. The lab is fronted by an IP-restricted load balancer, so the Tentacle's egress IP must be allowlisted — ask the facilitator to allowlist it if the target is unreachable.
- Optional: the built-in Web App Pentest Playbook.
The target
| Property | Value |
|---|---|
| Portal | http://idp-cyberrange-dev-31786426.eu-central-1.elb.amazonaws.com/ |
| Keycloak | http://idp-cyberrange-dev-31786426.eu-central-1.elb.amazonaws.com/auth |
| Realm | corp |
| Type | Web portal + Keycloak IdP with Profile, Document, Billing, Admin, and SCIM APIs |
| Example account | alice / Password123! |
The load balancer is DNS-based and its IP addresses can change, so always target the hostname rather than an IP. The landing page is designed to look like an ordinary employee portal, so not every useful route is linked from the UI.
Backend services
The portal sits in front of several APIs, each a candidate surface for the assessment:
| Service | Route | What it holds |
|---|---|---|
| Profile API | /api/profile/* | User profiles |
| Document API | /api/documents/* | User and tenant documents |
| Billing API | /api/billing/* | Tenant invoices |
| Admin API | /api/admin/* | User and group administration |
| SCIM Provisioner | /scim/* | Identity lifecycle (create/update users) |
| Audit Service | /audit/* | Recent route-level events |
Seeded accounts
All accounts are synthetic and share the password Password123!. Two tenants exist, acme and
globex, so the accounts are useful for role and cross-tenant comparison.
| Username | Role | Tenant |
|---|---|---|
alice | Normal user | acme |
bob | Support user | acme |
carol | Finance user | globex |
admin | Admin user | acme |
disabled-user | Disabled in Keycloak | acme |
Start as alice, a normal employee. Self-registration is not part of the intended starting path.
Run it in Cracken
- Open or create a realm and confirm a Tentacle with reach to the range is connected.
- Create a new operation and select the Web App Pentest Playbook, or describe the goal
yourself — for example: "Assess the SSO-backed portal at
http://idp-cyberrange-dev-31786426.eu-central-1.elb.amazonaws.com/, starting as the normal employeealice/Password123!in thecorprealm. Map the portal and its backend APIs, then test how far this identity can go: JWT signature, algorithm, issuer, audience, and expiry validation; object-level authorization on documents and invoices; tenant isolation; the OIDC client's redirect handling; the SCIM provisioning endpoint; and any leaked service-account credentials. Confirm each finding and note the control that would break it." - Set the target to the range hostname.
- Run the operation and approve actions according to its autonomy mode.
This range suits one top-level Web App Pentest operation. The playbook fans out private specialist sub-operations for reconnaissance, vector testing, and verification, which fits a target with several distinct API surfaces and identity boundaries to work through.
What to expect Cracken to find
A successful run treats the portal, Keycloak, and the backend APIs as one connected identity target, recording endpoints, accounts, tokens, and recovered secrets in the Cybergraph. The planted weaknesses cluster into a few themes:
- Token validation gaps — backend APIs that decode JWT claims without verifying the signature,
algorithm, issuer (
iss), audience (aud), or expiry, so a forged or wrong-audience token is accepted as trusted. - Broken object and tenant authorization — documents and invoices keyed by guessable IDs where
the API checks that you are logged in but not that the object is yours, letting an
acmeuser read another user's or aglobextenant's records. - Server-side vs. UI authorization — admin routes that are hidden in the UI but only check for a valid session on the backend, reachable directly by a normal user.
- Trusted-header and lifecycle abuse — internal identity headers honored from the public edge, and disabled or expired identities that still work because status and revocation are not checked.
- Permissive OIDC client and provisioning — an OAuth client that accepts an attacker-controlled redirect URI, a SCIM endpoint that accepts privileged group input, and a leaked lab-only service-account credential that grants admin-like API access.
You have a clean PoC when the operation has started from the normal alice identity, chained several
of these weaknesses into a path toward sensitive data or admin-like control, and produced a
report that names each finding and the defensive control that would stop it.
Next steps
- Cyber ranges — the full list of lab targets.
- AI assistant range — a web app with an LLM behind the login.
- Full estate compromise range — a multi-host network to chain across.
- Playbooks — the methodologies that drive a range run.