The simple and small OAuth2 | OpenId Connect
server that secures applications without hassle.
STOPnik does not have any persistence layer and will only work in-memory with the clients and users defined in the
configuration file (YAML
).
When restarted, all issued tokens will become invalid/forgotten by STOPnik.
This project was used to learn OAuth 2.0, OpenId Connect Core 1.0 and Go.
The logo mascot was mostly inspired by the nice work of gopherize.me and redrawn by hand as a vector graphic with additional body and a cool hat.
The awesome work of other servers is very appreciated, most of them were the inspiration for this small project!
They add features like persistence and access to user directories like LDAP.
Specifications | Implementation |
---|---|
The OAuth 2.0 Authorization Framework | Yes |
Proof Key for Code Exchange by OAuth Public Clients | Yes |
OAuth 2.0 Token Introspection | Yes |
OAuth 2.0 Token Revocation | Yes |
JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants | Yes |
JSON Web Token (JWT) | Dependency |
OAuth 2.0 Authorization Server Metadata | Partially |
OAuth 2.0 Device Authorization Grant | Planned |
The OAuth 2.0 Authorization Framework: Bearer Token Usage | Planned |
Resource Indicators for OAuth 2.0 | Planned |
OAuth 2.0 Authorization Server Issuer Identification | Planned |
OpenID Connect Core 1.0 | Partially |
OpenID Connect Discovery 1.0 | Partially |
OpenID Connect Session Management 1.0 | Planned |
OpenID Connect Front-Channel Logout 1.0 | Planned |
More details about STOPnik can be found at https://stopnik.webish.dev/
Requires Git and Go >=1.23 to be installed.
To build STOPnik the repository should be cloned and the build command executed.
git clone https://github.com/webishdev/stopnik.git
cd stopnik
go build github.com/webishdev/stopnik/cmd/stopnik
And then start STOPnik with
./stopnik
Execute tests inside the repository root folder with
go test ./...
To get access to the HTML coverage report the following script can be executed
./test.sh html
The coverage report will be created in the .test_coverage
folder
The project is licensed under the Apache License, Version 2.0.