summaryrefslogtreecommitdiffstats
path: root/modules/auth/ldap/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'modules/auth/ldap/README.md')
-rw-r--r--modules/auth/ldap/README.md79
1 files changed, 50 insertions, 29 deletions
diff --git a/modules/auth/ldap/README.md b/modules/auth/ldap/README.md
index 531ba85361..208f148e2f 100644
--- a/modules/auth/ldap/README.md
+++ b/modules/auth/ldap/README.md
@@ -1,43 +1,64 @@
-LDAP authentication
-===================
+Gogs LDAP Authentication Module
+===============================
-## Goal
+## About
-Authenticat user against LDAP directories
+This authentication module attempts to authorize and authenticate a user
+against an LDAP server. Like most LDAP authentication systems, this module does
+this in two steps. First, it queries the LDAP server using a Bind DN and
+searches for the user that is attempting to sign in. If the user is found, the
+module attempts to bind to the server using the user's supplied credentials. If
+this succeeds, the user has been authenticated, and his account information is
+retrieved and passed to the Gogs login infrastructure.
-It will bind with the user's login/pasword and query attributs ("mail" for instance) in a pool of directory servers
+## Usage
-The first OK wins.
+To use this module, add an LDAP authentication source via the Authentications
+section in the admin panel. The fields should be set as follows:
-If there's connection error, the server will be disabled and won't be checked again
+* Authorization Name **(required)**
+ * A name to assign to the new method of authorization.
-## Usage
+* Host **(required)**
+ * The address where the LDAP server can be reached.
+ * Example: mydomain.com
+
+* Port **(required)**
+ * The port to use when connecting to the server.
+ * Example: 636
-In the [security] section, set
-> LDAP_AUTH = true
+* Enable TLS Encryption (optional)
+ * Whether to use TLS when connecting to the LDAP server.
-then for each LDAP source, set
+* Bind DN (optional)
+ * The DN to bind to the LDAP server with when searching for the user.
+ This may be left blank to perform an anonymous search.
+ * Example: cn=Search,dc=mydomain,dc=com
-> [LdapSource-someuniquename]
-> name=canonicalName
-> host=hostname-or-ip
-> port=3268 # or regular LDAP port
-> # the following settings depend highly how you've configured your AD
-> basedn=dc=ACME,dc=COM
-> MSADSAFORMAT=%s@ACME.COM
-> filter=(&(objectClass=user)(sAMAccountName=%s))
+* Bind Password (optional)
+ * The password for the Bind DN specified above, if any.
-### Limitation
+* User Search Base **(required)**
+ * The LDAP base at which user accounts will be searched for.
+ * Example: ou=Users,dc=mydomain,dc=com
-Only tested on an MS 2008R2 DC, using global catalog (TCP/3268)
+* User Filter **(required)**
+ * An LDAP filter declaring how to find the user record that is attempting
+ to authenticate. The '%s' matching parameter will be substituted with
+ the user's username.
+ * Example: (&(objectClass=posixAccount)(uid=%s))
-This MSAD is a mess.
+* First name attribute (optional)
+ * The attribute of the user's LDAP record containing the user's first
+ name. This will be used to populate their account information.
+ * Example: givenName
-The way how one checks the directory (CN, DN etc...) may be highly depending local custom configuration
+* Surname name attribute (optional)
+ *The attribute of the user's LDAP record containing the user's surname
+ This will be used to populate their account information.
+ * Example: sn
-### Todo
-* Define a timeout per server
-* Check servers marked as "Disabled" when they'll come back online
-* Find a more flexible way to define filter/MSADSAFORMAT/Attributes etc... maybe text/template ?
-* Check OpenLDAP server
-* SSL support ? \ No newline at end of file
+* E-mail attribute (required)
+ The attribute of the user's LDAP record containing the user's email
+ address. This will be used to populate their account information.
+ * Example: mail