diff --git a/app/access-control/controllers/ldap-controller.js b/app/access-control/controllers/ldap-controller.js
index 16992ec..e77bf86 100644
--- a/app/access-control/controllers/ldap-controller.js
+++ b/app/access-control/controllers/ldap-controller.js
@@ -44,7 +44,6 @@
                       getBaseDistinguishedNames(data);
                   const groupsAttribute = getGroupsAttribute(data);
                   const usernameAttribute = getUsernameAttribute(data);
-                  const authenticationType = getAuthenticationType(data);
                   const roleGroups = getRoleGroups(data);
 
 
@@ -60,7 +59,6 @@
                     'BaseDistinguishedNames': baseDistinguishedNames,
                     'GroupsAttribute': groupsAttribute,
                     'UsernameAttribute': usernameAttribute,
-                    'AuthenticationType': authenticationType,
                     'RoleGroups': roleGroups
                   };
                 },
@@ -268,7 +266,6 @@
         return groupsAttribute;
       }
 
-
       /**
        *
        * @param {Object} ldapProperties
@@ -287,21 +284,6 @@
       /**
        *
        * @param {Object} ldapProperties
-       * @returns {null | string}
-       */
-      function getAuthenticationType(ldapProperties) {
-        let authenticationType = null;
-        let serviceType = getEnabledServiceType(ldapProperties);
-        if (serviceType) {
-          authenticationType =
-              ldapProperties[serviceType]['Authentication']['AuthenticationType'];
-        }
-        return authenticationType;
-      }
-
-      /**
-       *
-       * @param {Object} ldapProperties
        * @returns {Array} A list of role groups
        */
       function getRoleGroups(ldapProperties) {
@@ -323,8 +305,7 @@
         const ServiceEnabled = true;
         const Authentication = {
           Username: ldapProperties.Username,
-          Password: ldapProperties.Password,
-          AuthenticationType: ldapProperties.AuthenticationType
+          Password: ldapProperties.Password
         };
         const LDAPService = {
           SearchSettings: {
