http-auth-server
An HTTP Auth Server written in Go, designed to seamlessly integrate with the Nginx Mail Proxy module, providing authentication functionality for accessing mail services. With this server you can ensure only authorized users can interact with your mail server.
Right now this entire project is tailored to my own use case. That means the server supports PostgreSQL backends only and mail account passwords must be hashed by argon2id.
This has some major advantages:
- easy maintainability (about 400 lines of code according to cloc)
- overall higher security by having less external dependencies but also less code that can break or leak information
- better performance by using a specialized postgres library that allows connection pooling as compared to the much more simple
database/sql
library on its own
Anyways, feel free to open an issue with a feature request if you're missing something and we'll discuss it in further detail.
Features
- Support for PostgreSQL databases that contain the user accounts
- Support for the argon2id hash function
- Logging of invalid authentication attempts to implement easy rate limiting with tools like Fail2Ban
- (signed) container images to easily deploy and update the auth server
HOWTOs
Take a look at the wiki for instructions on deploying.
Or start at the ansible project template to benefit from a fully integrated setup.
License
This software is licensed under the GNU AGPLv3.