SSO
Reverse-Proxy Authentifizierung / SSO
Der Reverseproxy mit SingleSignOn kann aktiviert werden, indem das Programm mit folgenden Parametern gestartet wird:
-t ip.meines.proxy.servers
Wird jetzt der Header REMOTE_USER auf den Benutzernamen sowie der Header X_FORWARDED_FOR gesetzt,
wird der Benutzer automatisch eingeloggt.
LDAP Authentifizierung
Die Authentifizierung kann auch über einen LDAP-Server erfolgen, wobei die Reverse-Proxy Variante zu bevorzugen ist. Weiterführende Informationen finden sich unter LDAP-Authentifizierung.
Beispielkonfiguration
import ldap
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
AUTH_LDAP_SERVER_URI = "ldap://srv-my-dc.my-company.local:389"
AUTH_LDAP_CONNECTION_OPTIONS = {ldap.OPT_REFERRALS: 0}
AUTH_LDAP_BIND_DN = "CN=gitlab,OU=Benutzer MeinBenutzer,OU=myuser,OU=my-company,DC=my-company,DC=local"
AUTH_LDAP_BIND_PASSWORD = "XXXXXX"
AUTH_LDAP_USER_SEARCH = LDAPSearch(
"dc=my-company,dc=local", ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)"
)
# # Set up the basic group parameters.
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
"dc=my-company,dc=local",
ldap.SCOPE_SUBTREE,
"(objectClass=group)",
)
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn")
# Populate the Django user from the LDAP directory.
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail",
}
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_active": "cn=allgemein,ou=gruppen,ou=mygroup,dc=my-company-bremen,dc=local",
"is_staff": "cn=allgemein,ou=gruppen,ou=mygroup,dc=my-company-bremen,dc=local",
"is_superuser": "cn=allgemein,ou=gruppen,ou=mygroup,dc=my-company-bremen,dc=local",
}
# Cache distinguished names and group memberships for an hour to minimize
# LDAP traffic.
AUTH_LDAP_CACHE_TIMEOUT = 3600
# Use LDAP group membership to calculate group permissions.
AUTH_LDAP_FIND_GROUP_PERMS = True
# Keep ModelBackend around for per-user permissions and maybe a local
# superuser.
AUTHENTICATION_BACKENDS = (
"django.contrib.auth.backends.ModelBackend",
"django_auth_ldap.backend.LDAPBackend",
)