diff --git a/source/installation_and_configuration/authentication/ldap.rst b/source/installation_and_configuration/authentication/ldap.rst index 4f7514c1c9..1a44b7dc4e 100644 --- a/source/installation_and_configuration/authentication/ldap.rst +++ b/source/installation_and_configuration/authentication/ldap.rst @@ -23,6 +23,23 @@ This authentication mechanism is enabled by default. If it doesn't work, make su AUTHN = "ssh,x509,ldap,server_cipher,server_x509" ] +If you want to enable LDAP users auto-creation in the OpenNebula then you need to add ``default`` method in the ``AUTHN`` attribute of the ``AUTH_MAD`` section as shown below: + +.. code-block:: bash + + AUTH_MAD = [ + EXECUTABLE = "one_auth_mad", + AUTHN = "default,ssh,x509,ldap,server_cipher,server_x509" + ] + +and create a symlink as `root` user on the OpenNebula front-end node: + +.. code-block:: bash + + ln -s /var/lib/one/remotes/auth/ldap /var/lib/one/remotes/auth/default + + + Authentication driver ``ldap`` can be customized in ``/etc/one/auth/ldap_auth.conf``. This is the default configuration: .. code-block:: yaml @@ -188,7 +205,7 @@ To enable ``ldap`` authentication the described parameters should be configured. User Management =============== -Using the LDAP authentication module, the administrator doesn't need to create users with the ``oneuser`` command, as this will be done automatically. +Enabling LDAP users auto-creation in the OpenNebula as described above eliminates the need for the administrator to create users with the ``oneuser`` command manually. Users can store their credentials into a file referenced by environment variable ``$ONE_AUTH`` (usually ``$HOME/.one/one_auth``) in this fashion: @@ -228,6 +245,8 @@ Users can easily create escaped ``$ONE_AUTH`` tokens with the command ``oneuser The output of this command should be put in the ``$ONE_AUTH`` file. + + .. _active_directory: Active Directory @@ -325,3 +344,14 @@ And you want users whose login ends with ``a.example.com`` to be searched in ``l :match_user_regex: "^(.*)@a.example.com$": ldap-a.example.com "^(.*)@b.example.com$": ldap-b.example.com + +DB backend and case sensitivity +============================================ + +As LDAP, in general, is case insensitive there could be some oddities in the way how OpenNebula manages LDAP users. Moreover, it depends on the used DB backend. + +If you use SQLite or PostgreSQL, then users are always case-sensitive. Any further login with the same user but in a different casing will cause auth failure. + +However, when MySQL database is used (with the default configuration) it is case insensitive. Therefore, you can still log in with any casing of the username, such as jsmith, JSmith, JSMITH, etc. + +In any case, LDAP users are created in OpenNebula DB in lower-case. This is mainly to prevent multiple (case different) users to bypass quotas.