• Stars
    star
    430
  • Rank 101,083 (Top 2 %)
  • Language
    C
  • License
    Other
  • Created almost 8 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Experimental Single Sign On server, OAuth2, Openid Connect, multiple factor authentication with, HOTP/TOTP, FIDO2, TLS Certificates, etc. extensible via plugins

Glewlwyd SSO server

C/C++ CI CodeQL CII Best Practices

Experimental Single-Sign-On (SSO) server with multiple factor authentication for OAuth2 and OpenID Connect authentication

Glewlwyd 2.7.5 is available. Feel free to install it, test it, use it (with precautions!), and send feedback if you feel like it!

logged in

Process supported:

User authentication via multiple factors:

Users and clients can be storage backends:

User registration

New users can register a new account with the possibility to confirm their e-mail address or not. During the registration process, the new user may be expected to register their passwords, as well as other authentication factors:

  • One-time password (TOTP/HOTP)
  • WebAuthn (Yubikey, Android devices)
  • TLS Certificate
  • External OAuth2/OIDC providers

Existing users can update their e-mail by sending a confirmation link to the new e-mail.

Lost credentials

Existing users can reset their credentials if their password or authentication schemes are lost or unavailable. Credentials can be reset by different factors:

  • A link sent to the user's e-mail
  • A one-time use recovery code

See the register/update e-mail/reset credentials documentation for more information on the registration, update e-mail or reset credentials features.

Based on a plugin architecture to make it easier to add or update storage backends, authentication schemes or process.

Passwordless authentication

Adding new authentication schemes or backend storage for users and clients is possible via the plugin architecture.

Architecture and performance

The backend API server is fully written in C and uses a small amount of resources.

Its plugin architecture makes it easy to add new modules or plugins, or modify existing ones with less risks to have unmaintainable code.

Disclaimer

Glewlwyd is mostly developped by myself on my free time, with gracious help from users.

Nevertheless, it hasn't been audited or fully tested by external developpers.

Glewlwyd can take a central place in a system where applications and environments need authentication and authorization, be aware of the risks: bugs, non discovered vulnerabilities, etc.

I recommend not to use Glewlwyd in production, more likely to test OAuth2/OpenID behavior, MFA connections, or IdP in general. You can also explore its functionalities and help yourself with its source code for other implementations.

If you intend to use it in production, it's highly recommended to follow the documentation and enable only the features you will use.

Installation

The full installation documentation is available in the Install documentation.

Docker

A docker image is available for tests on localhost. To test the image, run the following command:

$ docker run --rm -it -p 4593:4593 babelouest/glewlwyd:latest

And open the address http://localhost:4593/ on your browser.

  • User: admin
  • Password: password

This Docker image can be used for tests or for real use by changing the configuration files. More information in the install documentation.

Getting started

The Getting started documentation will help administrators configure Glewlwyd's modules and authentication schemes.

User documentation

The user documentation will help Glewlwyd's users manage their profile and log in to Glewlwyd.

Core API

The full core REST API documentation is available in the API documentation

Plugins architecture

You can update the existing plugins or add new ones depending on your needs, check out the documentation available for each type of plugin:

Screenshots

Go to the Screenshots folder to get a visual idea of Glewlwyd.

Questions, problems or feature requests

You can open an issue, a pull request or send me an e-mail. Any help is much appreciated!

You can visit the IRC channel #glewlwyd on the Libera.​Chat network.