This library is the OAuth 2.0 and OpenID Connect 1.0 authorization server framework used by Authelia. It provides the request parsing, validation, client authentication, token issuance, and response writing for the authorization, token, introspection, revocation, and related endpoints, and leaves storage, user authentication, and consent to the implementer through a set of interfaces.
It started as a hard fork of ORY Fosite and has since diverged significantly; see Thanks for details.
This library officially supports only the latest minor version of go, which is currently go 1.27. Older versions of go are not supported and are not tested. This rule applies at the time of a published release.
This library is intended to be used with Go Toolchains as indicated by the toolchain
directive in the go.mod.
This library handles a critical element of security in dependent projects, so we prefer security over backwards compatibility wherever the two conflict. Go's own compatibility guarantees usually make upgrading the toolchain painless.
Legend: ✅ supported, 🟡 partially supported, ❌ not supported.
| Specification | Status | Notes |
|---|---|---|
| OpenID Connect Core 1.0 | 🟡 | Authorization Code, Implicit, and Hybrid flows; no UserInfo endpoint or claims request parameter |
| OpenID Connect Dynamic Client Registration 1.0 | ✅ | |
| OpenID Connect RP-Initiated Logout 1.0 | ✅ | |
| OpenID Connect Back-Channel Logout 1.0 | ✅ | |
| OpenID Connect Front-Channel Logout 1.0 | ❌ | |
| OpenID Connect Session Management 1.0 | ❌ | |
| OpenID Connect Key Binding 1.0 | ✅ | |
| OpenID Connect Advanced Syntax for Claims (ASC) 1.0 | ❌ |
Planned work and notable differences from ORY Fosite are tracked in TODO.md.
This is a hard fork of ORY Fosite under the Apache 2.0 License for the purpose of performing self-maintenance of this critical Authelia dependency.
We however:
- Acknowledge the amazing hard work of the ORY developers in making such an amazing framework that we can do this with.
- Plan to continue to contribute back to te ORY fosite and related projects.
- Have ensured the licensing is unchanged in this fork of the library.
- Do not have a formal affiliation with ORY and individuals utilizing this library should not allow their usage to be a reflection on ORY as this library is not maintained by them.
The mascot is based on the Go gopher, designed by Renée French and licensed under CC BY 4.0.