Sign inSign up

zzorica/selfservicepassword

By zzorica

Updated about 6 years ago

PHP application that allows users to change or reset their password in an LDAP directory.

Image
0

1.1K

zzorica/selfservicepassword repository overview

selfservicepassword

Containerized PHP application for LDAP password management. User reset or change, reset by email or sms, enforce password security policy, security questions, set user ssh key etc.


Introduction

Docker image that provides web interface to change and reset password in an LDAP directory. Base image is php:7.2-apache and PHP application is the one at https://github.com/ltb-project/self-service-password

Installation

Use build image from Dockerhub:

docker pull zzorica/selfservicepassword:latest

Or you can build your own using this repo with:

docker build -t zzorica/selfservicepassword github.com/zzorica/selfservicepassword

Quickstart

To start the container this is the minimum needed to pass to docker run. Of course generate your own string for keyphrase.

docker run -d -p 8080:80 -e SSP_KEYPHRASE="OoSaiFeeChee3jeiphai5Aevae1ahRie" --name ssp zzorica/selfservicepassword:latest

Now you can access it on http://localhost:8080. Rest of the variables and their defaults are in table below.

Kubernetes

Example of kubernetes deployment of ssp service can be found in examples/k8s folder. All passwords are setup using secrets, and service is exposed via ClusterIP. You can access it for example via ingress. Depending on your cluster environment of course. Depending on your ingress rules don't forget to adjust apache variables to reflect those rules (SSP_HOSTNAME and SSP_SERVER_PATH).

Also SSP_LOGO and SSP_BACKGROUND_IMAGE environment variables are set to empty string so it doesn't use default images. Looks much cleaner.

Configuration parameters

Variables are all taken from PHP app defined in the file conf/config.inc.local.php so take a look at that file, which is commented quite well, for any extra explanation. Some defaults are changed to reflect average use (in my opinion that is). So here is the list of all the env variables that are available to be passed to the container:

env variabledefaultdescription
SSP_HOSTNAMElocalhostapache ServerName
SSP_SERVER_PATH/sspapache ServerPath
env variabledefault
SSP_LDAP_URLldap://localhost
SSP_LDAP_STARTTLSfalse
SSP_LDAP_BINDDNcn=manager,dc=example,dc=com
SSP_LDAP_BINDPWsecret
SSP_LDAP_BASEdc=example,dc=com
SSP_LDAP_LOGIN_ATTRIBUTEuid
SSP_LDAP_FULLNAME_ATTRIBUTEcn
SSP_LDAP_FILTER(&(objectClass=person)(uid={login}))
SSP_AD_MODEfalse
SSP_AD_OPTIONS_FORCE_UNLOCKfalse
SSP_AD_OPTIONS_FORCE_PWD_CHANGEfalse
SSP_AD_OPTIONS_CHANGE_EXPIRED_PASSWORDfalse
SSP_SAMBA_MODEfalse
SSP_SAMBA_OPTIONS_MIN_AGE5
SSP_SAMBA_OPTIONS_MAX_AGE45
SSP_SHADOW_OPTIONS_UPDATE_SHADOWLASTCHANGEfalse
SSP_SHADOW_OPTIONS_UPDATE_SHADOWEXPIREfalse
SSP_SHADOW_OPTIONS_UPDATE_SHADOWEXPIREDAYSfalse
SSP_HASHssha
SSP_HASH_OPTIONS_CRYPT_SALT_PREFIX$6$
SSP_HASH_OPTIONS_CRYPT_SALT_LENGTH6
SSP_PWD_MIN_LENGTH6
SSP_PWD_MAX_LENGTH0
SSP_PWD_MIN_LOWER1
SSP_PWD_MIN_UPPER1
SSP_PWD_MIN_DIGIT1
SSP_PWD_MIN_SPECIAL0
SSP_PWD_SPECIAL_CHARS^a-zA-Z0-9
SSP_PWD_FORBIDDEN_CHARS@%
SSP_PWD_NO_REUSEtrue
SSP_PWD_DIFF_LOGINtrue
SSP_PWD_COMPLEXITY3
SSP_USE_PWNEDPASSWORDStrue
SSP_PWD_SHOW_POLICYnever
SSP_PWD_SHOW_POLICY_POSabove
SSP_WHO_CHANGE_PASSWORDuser
SSP_USE_CHANGEtrue
SSP_CHANGE_SSHKEYtrue
SSP_CHANGE_SSHKEY_ATTRIBUTEsshPublicKey
SSP_WHO_CHANGE_SSHKEYuser
SSP_NOTIFY_ON_SSHKEY_CHANGEfalse
SSP_USE_QUESTIONSfalse
SSP_ANSWER_OBJECTCLASSextensibleObject
SSP_ANSWER_ATTRIBUTEinfo
SSP_CRYPT_ANSWERStrue
SSP_MESSAGES_QUESTIONS_ICE
SSP_USE_TOKENStrue
SSP_CRYPT_TOKENStrue
SSP_TOKEN_LIFETIME3600
SSP_MAIL_ATTRIBUTEmail
SSP_MAIL_ADDRESS_USE_LDAPtrue
SSP_MAIL_FROM[email protected]
SSP_MAIL_FROM_NAMESelf Service Password
SSP_MAIL_SIGNATURE
SSP_NOTIFY_ON_CHANGEfalse
SSP_MAIL_SENDMAIL/usr/sbin/sendmail
SSP_MAIL_PROTOCOLsmtp
SSP_MAIL_SMTP_DEBUG0
SSP_MAIL_DEBUG_FORMATerror_log
SSP_MAIL_SMTP_HOSTlocalhost
SSP_MAIL_SMTP_AUTHfalse
SSP_MAIL_SMTP_USER
SSP_MAIL_SMTP_PASS
SSP_MAIL_SMTP_PORT25
SSP_MAIL_SMTP_TIMEOUT30
SSP_MAIL_SMTP_KEEPALIVEfalse
SSP_MAIL_SMTP_SECUREtls
SSP_MAIL_SMTP_AUTOTLStrue
SSP_MAIL_CONTENTTYPEtext/plain
SSP_MAIL_WORDWRAP0
SSP_MAIL_CHARSETutf-8
SSP_MAIL_PRIORITY3
SSP_MAIL_NEWLINE
SSP_USE_SMSfalse
SSP_SMS_METHODmail
SSP_SMS_API_LIBlib/smsapi.inc.php
SSP_SMS_ATTRIBUTEmobile
SSP_SMS_PARTIALLY_HIDE_NUMBERtrue
SSP_SMS_MAIL_TO{sms_attribute}@service.provider.com
SSP_SMS_MAIL_SUBJECTProvider code
SSP_SMS_MESSAGES{smsresetmessage} {smstoken}
SSP_SMS_SANITIZE_NUMBERfalse
SSP_SMS_TRUNCATE_NUMBERfalse
SSP_SMS_TRUNCATE_NUMBER_LENGTH10
SSP_SMS_TOKEN_LENGTH6
SSP_MAX_ATTEMPTS3
SSP_KEYPHRASEsecret
SSP_RESET_URL
SSP_SHOW_HELPfalse
SSP_LANGen
SSP_ALLOWED_LANG
SSP_SHOW_MENUtrue
SSP_LOGOimages/ltb-logo.png
SSP_BACKGROUND_IMAGEimages/unsplash-space.jpeg
SSP_RESET_REQUEST_LOG
SSP_LOGIN_FORBIDDEN_CHARS*()&|
SSP_USE_RECAPTCHAfalse
SSP_RECAPTCHA_PUBLICKEY
SSP_RECAPTCHA_PRIVATEKEY
SSP_RECAPTCHA_THEMElight
SSP_RECAPTCHA_TYPEimage
SSP_RECAPTCHA_SIZEnormal
SSP_RECAPTCHA_REQUEST_METHODnull
SSP_DEFAULT_ACTIONchange
SSP_MESSAGES_PASSWRODCHANGED_EXTRAMESSAGE
SSP_MESSAGES_CHANGEHELP_EXTRAMESSAGE
SSP_POSTHOOK
SSP_DISPLAY_POSTHOOK_ERROR
SSP_OBSCURE_FAILURE_MESSAGESmailnomatch

Tag summary

Content type

Image

Digest

Size

145.9 MB

Last updated

about 6 years ago

docker pull zzorica/selfservicepassword