A Sentry extension to add an LDAP server as an authentication source.
Project description
sentry-auth-ldap
A Django custom authentication backend for Sentry. This module extends the functionality of django-auth-ldap with Sentry specific features.
Features
- Users created by this backend are managed users. Managed fields are not editable through the Sentry account page.
- Users may be auto-added to an Organization upon creation.
Prerequisites
Versions 21.9.x require Sentry 21.9.0+. For older Sentry support, use sentry-ldap-auth
Installation
To install, simply add sentry-auth-ldap
to your requirements.txt for your Sentry environment (or pip install sentry-auth-ldap
).
Configuration
This module extends the django-auth-ldap and all the options it provides are supported (up to v1.2.x, at least).
To configure Sentry to use this module, add sentry_ldap_auth.backend.SentryLdapBackend
to your AUTHENTICATION_BACKENDS
in your sentry.conf.py, like this:
AUTHENTICATION_BACKENDS = AUTHENTICATION_BACKENDS + (
'sentry_auth_ldap.backend.SentryLdapBackend',
)
Then, add any applicable configuration options. Depending on your environment, and especially if you are running Sentry in containers, you might consider using python-decouple so you can set these options via environment variables.
sentry-auth-ldap Specific Options
AUTH_LDAP_DEFAULT_SENTRY_ORGANIZATION = u'My Organization Name'
Auto adds created user to the specified organization (matched by name) if it exists.
AUTH_LDAP_SENTRY_ORGANIZATION_ROLE_TYPE = 'member'
Role type auto-added users are assigned. Valid values in a default installation of Sentry are 'member', 'admin', 'manager' & 'owner'. However, custom roles can also be added to Sentry, in which case these are also valid.
AUTH_LDAP_SENTRY_ORGANIZATION_GLOBAL_ACCESS = True
Whether auto-created users should be granted global access within the default organization.
AUTH_LDAP_SENTRY_SUBSCRIBE_BY_DEFAULT = False
Whether new users should be subscribed to any new projects by default. Disabling this is useful for large organizations where a subscription to each project might be spammy.
AUTH_LDAP_DEFAULT_EMAIL_DOMAIN = 'example.com'
Default domain to append to username as the Sentry user's e-mail address when the LDAP user has no mail
attribute.
WARNING: There is an obsoleted setting named
AUTH_LDAP_SENTRY_USERNAME_FIELD
.
It could be replaced byAUTH_LDAP_USER_QUERY_FIELD
andAUTH_LDAP_USER_ATTR_MAP
which django-auth-ldap built-in.
Sentry Options
SENTRY_MANAGED_USER_FIELDS = ('email', 'first_name', 'last_name', 'password', )
Fields which managed users may not modify through the Sentry accounts view. Applies to all managed accounts.
Example Configuration
import ldap
from django_auth_ldap.config import LDAPSearch, GroupOfUniqueNamesType
AUTH_LDAP_SERVER_URI = 'ldap://my.ldapserver.com'
AUTH_LDAP_BIND_DN = ''
AUTH_LDAP_BIND_PASSWORD = ''
AUTH_LDAP_USER_QUERY_FIELD = 'username'
AUTH_LDAP_USER_SEARCH = LDAPSearch(
'dc=domain,dc=com',
ldap.SCOPE_SUBTREE,
'(mail=%(user)s)',
)
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
'',
ldap.SCOPE_SUBTREE,
'(objectClass=groupOfUniqueNames)'
)
AUTH_LDAP_GROUP_TYPE = GroupOfUniqueNamesType()
AUTH_LDAP_REQUIRE_GROUP = None
AUTH_LDAP_DENY_GROUP = None
AUTH_LDAP_USER_ATTR_MAP = {
'username': 'uid',
'name': 'cn',
'email': 'mail'
}
AUTH_LDAP_FIND_GROUP_PERMS = False
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
AUTH_LDAP_DEFAULT_SENTRY_ORGANIZATION = u'My Organization Name'
AUTH_LDAP_SENTRY_ORGANIZATION_ROLE_TYPE = 'member'
AUTH_LDAP_SENTRY_GROUP_ROLE_MAPPING = {
'owner': ['sysadmins'],
'admin': ['devleads'],
'member': ['developers', 'seniordevelopers']
}
AUTH_LDAP_SENTRY_ORGANIZATION_GLOBAL_ACCESS = True
AUTHENTICATION_BACKENDS = AUTHENTICATION_BACKENDS + (
'sentry_ldap_auth.backend.SentryLdapBackend',
)
import logging
logger = logging.getLogger('django_auth_ldap')
logger.addHandler(logging.StreamHandler())
logger.setLevel('DEBUG')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sentry_auth_ldap-21.9.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 438a4cfbbec271e903e8d37024e8d31386f80e1b9cea16ee2342475e06d0b5ff |
|
MD5 | ff4477d592f67a4c51a7be918f29dde9 |
|
BLAKE2b-256 | d99cbd6737b1eda971bababde8abab15e745d1ec6fba14cbfd416a6a572068a7 |