External Authentication Module for Apache HTTP Server - Apache License 1.0
Previous Maintainers: Jan Wolter (http://www.unixpapa.com), Tyler Allison (allison@nas.nasa.gov)
Original Author: Nathan Neulinger (nneul@umr.edu)
Mod_authnz_external is a flexible tool for building custom basic authentication systems for the Apache HTTP Server. "Basic Authentication" is a type of authentication built into the HTTP protocol, in which the browser automatically pops up a login box when the user requests a protected resource, and the login ids and passwords entered are checked by Apache. Mod_auth*_external allows the password checking normally done inside Apache to be done by an separate external program running outside of Apache. This design leads to a number of important side-effects, please read Important Considerations for Authenticator Design in our wiki.
Apache Version | mod_authnz_external Version | mod_authz_unixgroup Version | Supported? |
---|---|---|---|
Apache 2.4 | mod_authnz_external 3.3.x | mod_authz_unixgroup 1.2.x | Yes |
mod_authz_unixgroup 1.1.x | - | ||
Apache 2.2 | mod_authnz_external 3.1.x or 3.2.x | mod_authz_unixgroup 1.0.x | - |
Apache 2.0 | mod_auth_external 2.2.x | - | - |
Apache 1.3 | mod_auth_external 2.1.x | - | - |
Older versions are provided on an as-is basis in this repo's branch list.
mod_authnz_external can be used to quickly construct secure, reliable authentication systems. It can also be mis-used to quickly open gaping holes in your security. Read the documentation, and use with extreme caution.
Use of this module requires development of an external authentication program or a hardcoded internal function. These are typically very simple programs, but there are more ways to screw up your security by doing them badly than we could possibly list. See the file AUTHENTICATORS or the How to Write an External Authenticator or Group Checker wiki document for more information on implementing authenticators.
Older versions of mod_auth_external would by default pass logins and passwords into the authentication module using environment variables. This is insecure on some versions of Unix where the contents of environment variables are visible on a 'ps -e' command. In more recent versions, the default is to use a pipe to pass sensitive data. This is secure on all versions of Unix, and is recommended in all installations.
People using mod_auth*_external with pwauth to authenticate from system password databases should be aware of the innate security risks involved in doing this.
mod_authz_unixgroup - Apache License 2.0
This repo is also the home of mod_authz_unixgroup, a unix group access control module for the Apache HTTP Server.
Source is available in the mod_authz_unixgroup subfolder, and releases can be found tagged with the "mod_authz_unixgroup-" prefix here.