33[ ![ Total alerts] ( https://img.shields.io/lgtm/alerts/g/zmartzone/liboauth2.svg?logo=lgtm&logoWidth=18 )] ( https://lgtm.com/projects/g/zmartzone/liboauth2/alerts/ )
44
55# liboauth2
6- Generic library that can be used to build OAuth 2.x and OpenID Connect C-based servers and clients e.g. web-server plugins.
6+ Generic library to build C-based OAuth 2.x and OpenID Connect servers and clients e.g. web-server plugins.
77
88## Overview
9-
10- - extends [ cjose] ( https://github.com/cisco/cjose ) into OAuth 2.x and OpenID Connect specific claims, secrets and hashes
11- - adds OAuth 2.x / OpenID Connect protocols by abstracting HTTP requests/responses from web server implementation specifics
12- - reusable code across for other OAuth 2.x (and REST) related protocols
9+ - extends [ cjose] ( https://github.com/cisco/cjose ) into OAuth 2.x and OpenID Connect specific claims, secrets, and hashes
10+ - adds OAuth 2.x and OpenID Connect protocols by abstracting HTTP requests and responses from web server implementation specifics
11+ - reusable code across other OAuth 2.x and REST related protocols
1312 e.g. token exchange with endpoint authentication, source token retrieval, target pass settings etc.
14- - generic code with plugins for Apache, NGINX and possibly more (e.g. Envoy, HA Proxy, IIS)
13+ - generic code with plugins for Apache, NGINX, and possibly more (e.g. Envoy, HA Proxy, IIS)
1514- configurable cache backend/size/options per cache element type
1615- cookie-based session management (i.e. enforce inactivity timeout, expiry)
1716
1817## Features
19- - OpenID Connect 1.0 [ https://openid.net/specs/openid-connect-core-1_0.html ] ( https://openid.net/specs/openid-connect-core-1_0.html )
20- - OAuth 2.0 Resource Owner Password Credentials [ https://tools.ietf.org/html/rfc6749#section-4.3 ] ( https://tools.ietf.org/html/rfc6749#section-4.3 )
21- - OAuth 2.0 Token Introspection [ https://tools.ietf.org/html/rfc7662 ] ( https://tools.ietf.org/html/rfc7662 )
22- - JWT bearer token validation using: JWK, JWKS URI, shared symmetric key, X.509 cert, RSA public key [ https://tools.ietf.org/html/rfc6750 ] ( https://tools.ietf.org/html/rfc6750 )
23- - OAuth 2.0 Authorization Server Metadata [ https://tools.ietf.org/html/rfc8414 ] ( https://tools.ietf.org/html/rfc8414 )
24- - Proof Key for Code Exchange by OAuth Public Clients (PCKE) [ https://tools.ietf.org/html/rfc7636 ]
25- - OAuth 2.0 Mutual-TLS Certificate-Bound Access Tokens (MTLS) [ https://tools.ietf.org/html/rfc8705 ]
26- - (draft) OAuth 2.0 Demonstration of Proof-of-Possession at the Application Layer (DPoP) [ https://tools.ietf.org/html/draft-ietf-oauth-dpop ]
18+ - [ OpenID Connect 1.0] ( https://openid.net/specs/openid-connect-core-1_0.html )
19+ - OAuth 2.0 Resource Owner Password Credentials ( [ RFC 6749 ] ( https://tools.ietf.org/html/rfc6749#section-4.3 ) )
20+ - OAuth 2.0 Token Introspection ( [ RFC 7662 ] ( https://tools.ietf.org/html/rfc7662 ) )
21+ - JWT bearer token validation using JWK, JWKS URI, shared symmetric key, X.509 cert, and RSA public key ( [ RFC 6750 ] ( https://tools.ietf.org/html/rfc6750 ) )
22+ - OAuth 2.0 Authorization Server Metadata ( [ RFC 8414 ] ( https://tools.ietf.org/html/rfc8414 ) )
23+ - Proof Key for Code Exchange (PCKE) by OAuth Public Clients ([ RFC 7636 ] ( https://tools.ietf.org/html/rfc7636 ) )
24+ - OAuth 2.0 Mutual-TLS (MTLS) Certificate-Bound Access Tokens ( [ RFC 8705 ] ( https://tools.ietf.org/html/rfc8705 ) )
25+ - OAuth 2.0 Demonstration of Proof-of-Possession (DPoP) at the Application Layer ([ Internet-Draft ] ( https://tools.ietf.org/html/draft-ietf-oauth-dpop ) )
2726- Amazon ALB [ EC key URL based ` x-amzn-oidc-data ` JWT verification] ( https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-authenticate-users.html )
28- - endpoint authentication methods: ` client_secret_basic ` , ` client_secret_post ` , [ ` client_secret_jwt ` , ` private_key_jwt ` ] ( https://tools.ietf.org/html/rfc7523 ) , [ TLS client certificate] ( https://tools.ietf.org/id/draft-ietf-oauth-mtls ) and HTTP basic authentication
29- - configurable cache backends: shared memory, file-based, memcache and Redis
30- - retrieving a token from a header, a query parameter, a post parameter or a cookie
31- - setting a token as a header, a query parameter, a post parameter or a cookie
27+ - endpoint authentication methods: ` client_secret_basic ` , ` client_secret_post ` , [ ` client_secret_jwt ` , ` private_key_jwt ` ] ( https://tools.ietf.org/html/rfc7523 ) , [ TLS client certificate] ( https://tools.ietf.org/id/draft-ietf-oauth-mtls ) , and HTTP basic authentication
28+ - configurable cache backends: shared memory, file-based, memcache, and Redis
29+ - retrieving a token from a header, a query parameter, a post parameter, or a cookie
30+ - setting a token as a header, a query parameter, a post parameter, or a cookie
3231- Apache and NGINX bindings
3332
3433## Dependencies
@@ -46,14 +45,13 @@ liboauth2 depends on the following libraries:
4645
4746## Support
4847
49- #### Community Support
50- For generic questions, see the Wiki pages with Frequently Asked Questions at:
51- [ https://github.com/zmartzone/liboauth2/wiki ] ( https://github.com/zmartzone/liboauth2/wiki )
52- Any questions should go to the [ Discussions] ( https://github.com/zmartzone/liboauth2/discussions ) tracker.
48+ ### Community Support
49+ See [ Frequently Asked Questions] ( https://github.com/zmartzone/liboauth2/wiki ) on the Wiki.
50+ Ask questions in the [ Discussions] ( https://github.com/zmartzone/liboauth2/discussions ) tracker.
5351
54- #### Commercial Support
55- For commercial support contracts, professional services, training and use-case specific support you can contact ( ZmartZone IAM) [ https://www.zmartzone.eu ] at:
56- [ sales@zmartzone.eu ] ( mailto:sales@zmartzone.eu )
52+ ### Commercial Support
53+ For commercial support contracts, professional services, training, and use-case specific support, contact [ ZmartZone IAM] ( https://www.zmartzone.eu ) at:
54+ [ sales@zmartzone.eu ] ( mailto:sales@zmartzone.eu )
5755
5856Disclaimer
5957----------
0 commit comments