Skip to content

michaelrsweet/moauth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mOAuth - A Basic OAuth 2.0 Client/Server Implementation

Version Apache 2.0 Build Status Coverity Scan Status

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:

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.