diff --git a/castellum_core/castellum_core/castellum_core/settings/default.py b/castellum_core/castellum_core/castellum_core/settings/default.py index 130e5ec3b36517ffec2c81c89a4fec5dda950d8f..44a1c3162e3b95bc0e12900a18c52a635ca3587d 100644 --- a/castellum_core/castellum_core/castellum_core/settings/default.py +++ b/castellum_core/castellum_core/castellum_core/settings/default.py @@ -70,6 +70,10 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] +AUTHENTICATION_BACKENDS = [ + "django.contrib.auth.backends.ModelBackend", +] + AUTH_USER_MODEL = 'castellum_auth.User' LOGIN_REDIRECT_URL = '/' diff --git a/castellum_core/castellum_core/castellum_core/settings/stage.py b/castellum_core/castellum_core/castellum_core/settings/stage.py new file mode 100644 index 0000000000000000000000000000000000000000..9b20f5aa06bccdaf26086bb97ee1121081a6b308 --- /dev/null +++ b/castellum_core/castellum_core/castellum_core/settings/stage.py @@ -0,0 +1,29 @@ +import ldap +import os +from django_auth_ldap.config import LDAPSearch + +from .default import * + + +# FIXME: These values need to be changed +SECRET_KEY = 'i#$kwk(s24ysn+l%+c!*z9u4+45)oex!-s#!bux#wf2pv2cc0d' + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + +ALLOWED_HOSTS = [ + 'localhost', +] + +# LDAP +# See https://django-auth-ldap.readthedocs.io/ +AUTHENTICATION_BACKENDS.append("django_auth_ldap.backend.LDAPBackend") + +AUTH_LDAP_SERVER_URI = 'ldap://localhost' +AUTH_LDAP_BIND_DN = 'cn=admin,dc=example,dc=org' +AUTH_LDAP_BIND_PASSWORD = 'admin' +AUTH_LDAP_USER_SEARCH = LDAPSearch('dc=example,dc=org', ldap.SCOPE_SUBTREE, '(uid=%(user)s)') diff --git a/castellum_core/setup.py b/castellum_core/setup.py index b8cdd664779d9860dba3e43874516d83fb059030..982db66689c6d220f00b2ff338e9e7368f898326 100644 --- a/castellum_core/setup.py +++ b/castellum_core/setup.py @@ -11,6 +11,7 @@ setup( install_requires=[ "Django==2.0.4", + "django-auth-ldap==1.4.0", "django-bootstrap4==0.0.6", ], ) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..99ab7e8f05b54293129c8e4311e567b0f73d8e61 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: '2' + +services: + ldap: + container_name: ldap + image: osixia/openldap + ports: + - "389:389" + command: [--copy-service] + volumes: + - ./ldap/dummy_data.ldif:/container/service/slapd/assets/config/bootstrap/ldif/data.ldif diff --git a/ldap/dummy_data.ldif b/ldap/dummy_data.ldif new file mode 100644 index 0000000000000000000000000000000000000000..58c45645c104ab21cf3ff4201392d28cc0c36e07 --- /dev/null +++ b/ldap/dummy_data.ldif @@ -0,0 +1,27 @@ +dn: cn=alice,dc=example,dc=org +objectClass: person +objectClass: organizationalPerson +objectClass: inetOrgPerson +objectClass: posixAccount +cn: alice +uid: alice +userPassword: password +uidNumber: 1000 +gidNumber: 1000 +givenName: Alice +sn: Adams +homeDirectory: /home/alice + +dn: cn=bob,dc=example,dc=org +objectClass: person +objectClass: organizationalPerson +objectClass: inetOrgPerson +objectClass: posixAccount +cn: bob +uid: bob +userPassword: password +uidNumber: 1001 +gidNumber: 50 +givenName: Robert +sn: Barker +homeDirectory: /home/bob diff --git a/tox.ini b/tox.ini index 0a977a42d51faa880602228b5d65dea178cf5c6c..6f0afe7fe2fa44db6f277a367f38b9969634a349 100644 --- a/tox.ini +++ b/tox.ini @@ -5,4 +5,5 @@ exclude= node_modules, wsgi.py, migrations, + settings, max-line-length=100