No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-06 19:49:54 +02:00
go.mod first commit 2026-08-06 19:49:54 +02:00
main.go first commit 2026-08-06 19:49:54 +02:00
README.md first commit 2026-08-06 19:49:54 +02:00
server.go first commit 2026-08-06 19:49:54 +02:00
server_test.go first commit 2026-08-06 19:49:54 +02:00

Dummy OIDC Provider

A deliberately permissive OpenID Connect provider for testing applications. It has no runtime dependencies, needs no configuration, and compiles to one executable.

Run

go run .

Or build the single binary:

go build -o dummyoidc .
./dummyoidc

The defaults are:

Setting Value
Issuer http://localhost:8080
Client ID test (any value is accepted)
Client secret test (authentication is not enforced)
Listen address :8080
Discovery http://localhost:8080/.well-known/openid-configuration

Configure an application from the discovery URL, then start a normal authorization-code flow. Any client ID, secret, and absolute redirect URI—including a custom URI scheme—is accepted. The authorization page shows every request parameter and lets you edit the prefilled John Doe identity before approving it.

The server supports:

  • OIDC discovery and JWKS
  • Authorization code flow
  • PKCE (plain and S256)
  • RS256-signed ID and access tokens
  • Bearer-token UserInfo
  • Refresh tokens
  • Editable standard claims, groups, and arbitrary custom JSON claims
  • An explicit decline flow returning access_denied

This is intentionally insecure and permissive. Use it only for development and testing—not as an internet-facing identity provider.

Optional configuration

No configuration is required. When a different address or externally visible URL is useful, use flags:

dummyoidc -listen :9090 -issuer http://localhost:9090

The equivalent environment variables are DUMMYOIDC_LISTEN and DUMMYOIDC_ISSUER.

Test

go test ./...