OIDC · SAML · SCIM

An identity provider for testing your app's sign-in and provisioning.

Create test users and groups, sign them in to your app over OIDC or SAML, push them over SCIM, and read every request. It runs on your machine, so there is no tenant to set up.

Download

macOS (Apple silicon) and Linux x86_64

The scimtest desktop app listing users in a test environment

What you can test

Each environment has its own users, groups, credentials, and history, so you can keep one per app or per scenario.

OIDC provider

Authorization code with PKCE, public and confidential clients, refresh rotation, introspection, and back-channel logout. Entra, Okta, and Google claim personas.

SAML provider

HTTP-POST sign-in with metadata, response and assertion signing, AES-GCM assertion encryption, and single logout in both directions.

SCIM client

Pushes users and groups to your SCIM endpoint with background sync, reconciliation, the Entra PATCH dialect, and a trace of every request.

Fault injection

Expired tokens, wrong audiences, alg none, stale JWKS, and SAML signature-wrapping forgeries that keep a valid signature.

Joiner, mover, leaver

Move users through hires, role changes, and departures, then check how each change lands over SCIM, OIDC, and SAML.

Traffic inspector

The last 100 identity exchanges, with decoded JWTs and SAML. Credentials stay redacted unless you turn on secret capture.

Public tunnel

An HTTPS address for your local IdP, so a deployed staging app can complete OIDC and SAML sign-ins through it.

Local API

81 operations over a token-authenticated JSON API, plus an agent skill so coding agents can set up and run tests.

Drive it from scripts and agents

Everything the window does is also an API call. Create environments, seed directories, run sign-in flows, and read the results from a test suite or a coding agent.

API reference · Automation guide

$ curl -s localhost:8080/api/v1/environments \
    -H "X-Scimtest-Instance-Token: $TOKEN" \
    --json '{"name": "Greendale Portal", "oidc_enabled": true}'

$ curl -s -X POST -H "X-Scimtest-Instance-Token: $TOKEN" \
    localhost:8080/api/v1/environments/$ID/tools/seed-sample
{"groups_changed": 3, "users_changed": 10}