- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| go.mod | ||
| main.go | ||
| README.md | ||
| server.go | ||
| server_test.go | ||
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 (
plainandS256) - 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 ./...