https://github.com/michaelrsweet/moauth
Basic OAuth2 client/server implementation.
https://github.com/michaelrsweet/moauth
c oauth
Last synced: 4 months ago
JSON representation
Basic OAuth2 client/server implementation.
- Host: GitHub
- URL: https://github.com/michaelrsweet/moauth
- Owner: michaelrsweet
- License: apache-2.0
- Created: 2017-11-07T20:02:15.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-09-17T00:03:17.000Z (9 months ago)
- Last Synced: 2025-09-17T01:32:51.592Z (9 months ago)
- Topics: c, oauth
- Language: C
- Homepage: https://www.msweet.org/moauth
- Size: 1.69 MB
- Stars: 21
- Watchers: 6
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Notice: NOTICE
Awesome Lists containing this project
README
mOAuth - A Basic OAuth 2.0 Client/Server Implementation
=======================================================




mOAuth is a basic OAuth 2.0 client/server implementation designed for testing
and development of OAuth-based services. The client library supports
authorization of native macOS, iOS, and Linux applications with PKCE. The
server is both an Authorization Server and a Resource Server that supports:
- User account authentication/authorization using PAM
- Traditional web-based authorization grants with redirection as well as
resource owner password credentials grants
- Token introspection for services
- Basic Resource Server functionality with implicit and explicit ACLs
- Customizable web interface
Requirements
------------
mOAuth requires libcups v3 for its HTTPS and JWT support. If you are compiling
from source you'll need a C compiler (GCC and clang are fine) and a POSIX make
program (GNU make works).
Standards Implemented
---------------------
The specific standards mOAuth currently implements are:
- [The OAuth2 Authentication Framework (RFC6749)](https://datatracker.ietf.org/doc/html/rfc6749)
- [The OAuth2 Bearer Token (RFC6750)](https://datatracker.ietf.org/doc/html/rfc6750)
- [OAuth 2.0 Dynamic Client Registration Protocol (RFC7591)](https://datatracker.ietf.org/doc/html/rfc7591)
- [Proof Key for Code Exchange by OAuth Public Clients (RFC7636)](https://datatracker.ietf.org/doc/html/rfc7636)
- [OAuth 2.0 Token Introspection (RFC7662)](https://datatracker.ietf.org/doc/html/rfc7662)
- [OAuth 2.0 for Native Apps (RFC8252)](https://datatracker.ietf.org/doc/html/rfc8252)
- [OAuth 2.0 Authorization Server Metadata (RFC8414)](https://datatracker.ietf.org/doc/html/rfc8414)
Using mOAuth
------------
The simplest way to use mOAuth on Linux is to install the moauth snap with:
sudo snap install moauth
You can also build and install from source (see commands below) and then run
`moauthd` by hand.
Building mOAuth from Source
---------------------------
mOAuth uses the typical configure script and makefile build system and requires
a recent version of libcups v3 to provide the necessary HTTPS support.
Assuming everything in in the normal locations the following commands will
build and install mOAuth on your system to "/usr/local":
./configure
make
make install
The `--prefix` option can be used to override the default installation prefix,
for example:
./configure --prefix=/opt/moauth
Legal Stuff
-----------
Copyright © 2017-2024 by Michael R Sweet.
mOAuth is licensed under the Apache License Version 2.0 with an exception to
allow linking against GPL2/LGPL2 software (like older versions of CUPS). See
the files "LICENSE" and "NOTICE" for more information.