Git Product home page Git Product logo

sthenauth's Introduction

Sthenauth: Never Write Authentication Code Again!

Sthenauth

An authentication server that can be used by off-the-shelf and custom software without having to reinvent the wheel. In other words, don't write your own authentication solution (you'll probably get it wrong).

Status

This project is currently under heavy development. A stable release is forthcoming. Watch this space.

Implemented and Planned Features

  • Standards-compliant management of passwords and sessions

    • Conforms to NIST 800-63B
    • Support for Authenticator Assurance Levels:
      • AAL1: Basic authentication (most common)
      • AAL2: At least two factors of authentication
      • AAL3: Mandatory multi-factor with hardware devices
    • Secrets are safe even if someone has access to the database
    • Passwords are hashed with PBKDF2 (HMAC + SHA-3 512)
    • Automatic password re-hashing as needed
    • Unicode passwords are normalized (NFKC) then stored as UTF-8
    • Upgrade legacy password databases (bcrypt) during login
    • Support for hardware key storage (HSM) via PKCS#11
  • Protects personally identifiable information (PII)

    • Encrypted email addresses
    • Salted and hashed email addresses for deterministic lookup
  • Attack counter measures:

    • Real-time brute force detection
    • Slow attack responses without affecting real users
  • Auditing

    • Complete event log of all actions taken
    • Statistics transmitted to a time series database
  • Acts as a remote authentication provider:

  • Authenticate with external providers:

    • OpenID Connect (OIDC)
    • Security Assertion Markup Language (SAML)
    • Lightweight Directory Access Protocol (LDAP)
    • Pluggable Authentication Modules (PAM)
  • Private certificate authority

    • Auto-generated server TLS certificates for intranet use
    • Issue certificates on a Unix domain socket (UDS)
    • Authenticate intranet clients via issued certificates
  • User interface:

    • Customize the UI so it matches your brand
    • Users can change and reset passwords
    • Administrator interface
  • Open and Free:

    • Open source, released under the Apache License.
    • Free, even for commercial use
    • Commercial support available

Goals

  • Secure by default.

    You shouldn't have to be a security expert to install or use Sthenauth. As much as possible we try to make it impossible to install or configure Sthenauth in a way that would make it insecure.

Name

Sthenauth takes its name from the gorgon Stheno, the immortal sister of Medusa. The face of a gorgon was used in Ancient Greece as a way to ward off evil.

sthenauth's People

Contributors

pjones avatar

Stargazers

Andrejs Agejevs avatar Peter Kjeld Andersen avatar Peter Storm avatar

Watchers

 avatar James Cloos avatar

Forkers

h-identiverse

sthenauth's Issues

Use the type system to enforce policy rules

Right now we have to use assertPolicyRules. It would be better to move this to the type system. Perhaps via ghosts of departed proofs. I don't want someone to accidentally forget to check site policies.

As an end-user I would like to log in using an existing identity provider

There are many public identity providers such as Google, Microsoft, GitHub, etc. Some of them use OpenID Connect to authenticate a remote user, others have a proprietary API loosely based on OAuth2.

To allow an end-user to log into Sthenauth using one of these providers we will need to support OpenID Connect and possibly other authentication flows.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.