A C library for building OAuth 2.x and OpenID Connect servers and clients, with plugins for Apache and NGINX.
liboauth2 is a C library that provides comprehensive OAuth 2.x and OpenID Connect functionality for building authentication servers and clients. It solves the problem of implementing complex authentication protocols in C-based applications by abstracting HTTP details and providing reusable components. The library extends cjose with OAuth-specific claims, secrets, and hashes while supporting multiple web server integrations.
C developers building web server plugins, authentication modules, or embedded systems requiring OAuth 2.x and OpenID Connect compliance. System integrators and security engineers working on custom authentication solutions for Apache or NGINX environments.
Developers choose liboauth2 because it offers a complete, standards-compliant implementation of modern authentication protocols in C with minimal dependencies. Its plugin architecture for major web servers and configurable cache backends provide flexibility while maintaining performance and security.
OAuth 2.x and OpenID Connect C library
Implements full OpenID Connect 1.0 and multiple OAuth 2.0 grant types, including PKCE and token introspection, as detailed in the README's features list.
Provides bindings for Apache and NGINX, with potential for others like Envoy, abstracting HTTP details to simplify web-server plugin development.
Supports multiple cache options like Redis, memcache, and shared memory, allowing performance tuning for different deployment scenarios.
Includes modern features such as Mutual-TLS certificate-bound tokens and DPoP, enhancing token validation and possession proofs beyond basic OAuth.
Requires multiple libraries like openssl, libcurl, jansson, and cjose, with optional dependencies for cache backends, making setup and maintenance cumbersome.
Demands system-level programming expertise, which can be a barrier for developers accustomed to higher-level languages with richer ecosystems.
Relies on a Wiki for FAQs and community discussions, lacking comprehensive tutorials or examples for complex use cases, as noted in the support section.
Only Apache and NGINX bindings are confirmed, with others like Envoy or HAProxy described as 'possibly more,' risking integration gaps for some server environments.
OpenID Certified™ OpenID Connect and FAPI 2 Relying Party module for Apache HTTPd
Certified C#/NetStandard OpenID Connect Client Library for native mobile/desktop Applications (RFC 8252)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.