Merge pull request #29 from yzargari/add-https-support

Adding HTTPS support for nginx-ldap-auth-daemon.py
This commit is contained in:
driz 2020-07-27 16:11:41 -04:00 committed by GitHub
commit 65baffde70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 0 deletions

View File

@ -30,6 +30,8 @@ param_env_vars:
opt_param_usage_include_env: true
opt_param_env_vars:
- { env_var: "FERNETKEY", env_value: "", desc: "Optionally define a custom fernet key, has to be base64-encoded 32-byte (only needed if container is frequently recreated, or if using multi-node setups, invalidating previous authentications)" }
- { env_var: "CERTFILE", env_value: "", desc: "Point this to a certificate file to enable HTTP over SSL (HTTPS) for the ldap auth daemon" }
- { env_var: "KEYFILE", env_value: "", desc: "Point this to the private key file, matching the certificate file referred to in CERTFILE" }
# application setup block
app_setup_block_enabled: true
@ -41,6 +43,7 @@ app_setup_block: |
# changelog
changelogs:
- { date: "27.07.20:", desc: "Add support for HTTP over SSL (HTTPS)." }
- { date: "21.07.20:", desc: "Add support for optional user defined fernet key." }
- { date: "02.06.20:", desc: "Rebasing to alpine 3.12, serve login page at `/ldaplogin` as well as `/login`, to prevent clashes with reverese proxied apps." }
- { date: "17.05.20:", desc: "Add support for self-signed CA certs." }

View File

@ -302,6 +302,9 @@ if __name__ == '__main__':
group.add_argument('-s', '--starttls', metavar="starttls",
default="false",
help=("Establish a STARTTLS protected session (Default: false)"))
group.add_argument('--disable-referrals', metavar="disable_referrals",
default="false",
help=("Sets ldap.OPT_REFERRALS to zero (Default: false)"))
group.add_argument('-b', metavar="baseDn", dest="basedn", default='',
help="LDAP base dn (Default: unset)")
group.add_argument('-D', metavar="bindDn", dest="binddn", default='',
@ -333,6 +336,10 @@ if __name__ == '__main__':
}
LDAPAuthHandler.set_params(auth_params)
server = AuthHTTPServer(Listen, LDAPAuthHandler)
if os.path.isfile(os.environ.get("CERTFILE")) and os.path.isfile(os.environ.get("KEYFILE")):
import ssl
server.socket = ssl.wrap_socket (server.socket, certfile=os.environ.get("CERTFILE"), keyfile=os.environ.get("KEYFILE"), server_side=True)
sys.stdout.write("SSL enabled using certificate file %s and key file %s\n" % (os.environ.get("CERTFILE"), os.environ.get("KEYFILE")))
signal.signal(signal.SIGINT, exit_handler)
signal.signal(signal.SIGTERM, exit_handler)