Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Supertokens Core | 9,413 | 2 days ago | 97 | other | Java | |||||
Open source alternative to Auth0 / Firebase Auth / AWS Cognito | ||||||||||
Icloud_photos_downloader | 4,603 | 10 days ago | 35 | January 16, 2021 | 82 | mit | Python | |||
A command-line tool to download photos from iCloud | ||||||||||
Passport Local | 2,637 | 54,881 | 1,831 | 5 months ago | 8 | March 08, 2014 | 57 | mit | JavaScript | |
Username and password authentication strategy for Passport and Node.js. | ||||||||||
Huge | 2,130 | 8 months ago | 8 | March 01, 2019 | 50 | PHP | ||||
Simple user-authentication solution, embedded into a small framework. | ||||||||||
Glauth | 1,929 | 3 | 2 months ago | 20 | February 28, 2022 | 63 | mit | Go | ||
A lightweight LDAP server for development, home use, or CI | ||||||||||
Rodauth | 1,449 | 15 | 9 | 2 days ago | 54 | June 22, 2022 | mit | Ruby | ||
Ruby's Most Advanced Authentication Framework | ||||||||||
Accounts | 1,424 | 60 | 30 | a year ago | 162 | October 12, 2021 | 79 | mit | TypeScript | |
Fullstack authentication and accounts-management for Javascript. | ||||||||||
Sorcery | 1,325 | 2,698 | 21 | 4 days ago | 56 | February 23, 2022 | 61 | mit | Ruby | |
Magical Authentication | ||||||||||
Securelogin | 1,268 | 4 years ago | 16 | mit | JavaScript | |||||
This version won't be maintained! | ||||||||||
Awesome Iam | 1,202 | 5 days ago | 2 | cc0-1.0 | ||||||
👤 Identity and Access Management knowledge for cloud platforms |
Allows synapse to use LDAP as a password provider.
This allows users to log in to synapse with their username and password from an LDAP server. There is also ma1sd (3rd party) that offers more fully-featured integration.
Example Synapse configuration:
modules:
- module: "ldap_auth_provider.LdapAuthProviderModule"
config:
enabled: true
uri: "ldap://ldap.example.com:389"
start_tls: true
base: "ou=users,dc=example,dc=com"
attributes:
uid: "cn"
mail: "mail"
name: "givenName"
#bind_dn:
#bind_password:
#filter: "(objectClass=posixAccount)"
# Additional options for TLS, can be any key from https://ldap3.readthedocs.io/en/latest/ssltls.html#the-tls-object
#tls_options:
# validate: true
# local_certificate_file: foo.crt
# local_private_key_file: bar.pem
# local_private_key_password: secret
If you would like to specify more than one LDAP server for HA, you can provide uri parameter with a list. Default HA strategy of ldap3.ServerPool is employed, so first available server is used.
modules:
- module: "ldap_auth_provider.LdapAuthProviderModule"
config:
enabled: true
uri:
- "ldap://ldap1.example.com:389"
- "ldap://ldap2.example.com:389"
start_tls: true
base: "ou=users,dc=example,dc=com"
attributes:
uid: "cn"
mail: "email"
name: "givenName"
#bind_dn:
#bind_password:
#filter: "(objectClass=posixAccount)"
#tls_options:
# validate: true
# local_certificate_file: foo.crt
# local_private_key_file: bar.pem
# local_private_key_password: secret
If you would like to enable login/registration via email, or givenName/email binding upon registration, you need to enable search mode. An example config in search mode is provided below:
modules:
- module: "ldap_auth_provider.LdapAuthProviderModule"
config:
enabled: true
mode: "search"
uri: "ldap://ldap.example.com:389"
start_tls: true
base: "ou=users,dc=example,dc=com"
attributes:
uid: "cn"
mail: "mail"
name: "givenName"
# Search auth if anonymous search not enabled
bind_dn: "cn=hacker,ou=svcaccts,dc=example,dc=com"
bind_password: "ch33kym0nk3y"
#filter: "(objectClass=posixAccount)"
#tls_options:
# validate: true
# local_certificate_file: foo.crt
# local_private_key_file: bar.pem
# local_private_key_password: secret
Alternatively you can also put the bind_password
of your service user into its
own file to not leak secrets into your configuration:
modules:
- module: "ldap_auth_provider.LdapAuthProviderModule"
config:
enabled: true
# all the other options you need
bind_password_file: "/var/secrets/synapse-ldap-bind-password"
Please note that every trailing \n
in the password file will be stripped automatically.
If the active_directory
flag is set to true
, an Active Directory forest will be
searched for the login details.
In this mode, the user enters their login details in one of the forms:
<login>/<domain>
<domain>\<login>
In either case, this will be mapped to the Matrix UID <login>/<domain>
(The
normal AD domain separators, @
and \
, cannot be used in Matrix User Identifiers, so
/
is used instead.)
Let's say you have several domains in the example.com
forest:
modules:
- module: "ldap_auth_provider.LdapAuthProviderModule"
config:
enabled: true
mode: "search"
uri: "ldap://main.example.com:389"
base: "dc=example,dc=com"
# Must be true for this feature to work
active_directory: true
# Optional. Users from this domain may log in without specifying the domain part
default_domain: main.example.com
attributes:
uid: "userPrincipalName"
mail: "mail"
name: "givenName"
bind_dn: "cn=hacker,ou=svcaccts,dc=example,dc=com"
bind_password: "ch33kym0nk3y"
With this configuration the user can log in with either main\someuser
,
main.example.com\someuser
, someuser/main.example.com
or someuser
.
Users of other domains in the example.com
forest can log in with domain\login
or login/domain
.
Please note that userPrincipalName
or a similar-looking LDAP attribute in the format
[email protected]
must be used when the active_directory
option is enabled.
matrix-synapse-ldap3
logging is included in the Synapse homeserver log
(typically homeserver.log
). The LDAP plugin log level can be increased to
DEBUG
for troubleshooting and debugging by making the following modifications
to your Synapse server's logging configuration file:
handlers:
file:
# [...]
level: DEBUG
loggers:
# [...]
ldap3:
level: DEBUG
ldap_auth_provider:
level: DEBUG
Finally, restart your Synapse server for the changes to take effect:
synctl restart