diff --git a/full/Changes b/full/Changes
index fc593b0..a6b0378 100644
--- a/full/Changes
+++ b/full/Changes
@@ -3,7 +3,9 @@
 - Support token array in matchinfo (fixes #570; diewald)
 - Updated VC list API and deprecated owner VC list (addressed #580)
 - Added user info web-service (solved #566)
-- Implemented configurable resource filters for search and match info APIs
+- Implemented configurable resource filters for search and match 
+  info APIs (#539)
+- Added getting username from LDAP (#568)
 
 # version 0.69.3
 
diff --git a/full/src/main/java/de/ids_mannheim/korap/authentication/LdapAuth3.java b/full/src/main/java/de/ids_mannheim/korap/authentication/LdapAuth3.java
index 603ec38..8d3633f 100644
--- a/full/src/main/java/de/ids_mannheim/korap/authentication/LdapAuth3.java
+++ b/full/src/main/java/de/ids_mannheim/korap/authentication/LdapAuth3.java
@@ -252,6 +252,29 @@
         }
         return null;
     }
+    
+    public static String getUsername(String sUserDN, String ldapConfigFilename) throws LDAPException {
+        String sUserPwd = "*";
+        LDAPConfig ldapConfig = new LDAPConfig(ldapConfigFilename);
+        final String idsC2Attribute = "idsC2Profile";
+        final String uidAttribute = "uid";
+        
+        SearchResult searchResult = search(sUserDN, sUserPwd, ldapConfig, false, false)
+                .getSearchResultValue();
+
+        if (searchResult == null) {
+            return null;
+        }
+        
+        String username = null;
+        for (SearchResultEntry entry : searchResult.getSearchEntries()) {
+            username = entry.getAttributeValue(idsC2Attribute);
+            if (username == null) {
+                username = entry.getAttributeValue(uidAttribute);
+            }
+        }
+        return username;
+    }
 
     public static void ldapTerminate(LDAPConnection lc) {
         if (DEBUGLOG) System.out.println("Terminating...");
diff --git a/full/src/main/java/de/ids_mannheim/korap/oauth2/oltu/service/OltuTokenService.java b/full/src/main/java/de/ids_mannheim/korap/oauth2/oltu/service/OltuTokenService.java
index 5b1fbc9..665b082 100644
--- a/full/src/main/java/de/ids_mannheim/korap/oauth2/oltu/service/OltuTokenService.java
+++ b/full/src/main/java/de/ids_mannheim/korap/oauth2/oltu/service/OltuTokenService.java
@@ -284,7 +284,8 @@
         if (config.getOAuth2passwordAuthentication()
                 .equals(AuthenticationMethod.LDAP)) {
             try {
-                username = LdapAuth3.getEmail(username, config.getLdapConfig());
+                //username = LdapAuth3.getEmail(username, config.getLdapConfig());
+                username = LdapAuth3.getUsername(username, config.getLdapConfig());
             }
             catch (LDAPException e) {
                 throw new KustvaktException(StatusCodes.LDAP_BASE_ERRCODE,
diff --git a/full/src/test/java/de/ids_mannheim/korap/authentication/LdapAuth3Test.java b/full/src/test/java/de/ids_mannheim/korap/authentication/LdapAuth3Test.java
index 65322d9..de8b9b1 100644
--- a/full/src/test/java/de/ids_mannheim/korap/authentication/LdapAuth3Test.java
+++ b/full/src/test/java/de/ids_mannheim/korap/authentication/LdapAuth3Test.java
@@ -154,6 +154,17 @@
         assertEquals("peter@example.org", LdapAuth3.getEmail("testuser2", TEST_LDAPS_CONF));
         assertEquals(null, LdapAuth3.getEmail("non-exsting", TEST_LDAPS_CONF));
     }
+    
+    @Test
+    public void gettingUsernameForEmail() throws LDAPException {
+        assertEquals("idsTestUser", LdapAuth3.getUsername("testuser@example.com", TEST_LDAP_CONF));
+        assertEquals("testuser2", LdapAuth3.getUsername("peter@example.org", TEST_LDAPS_CONF));
+        assertEquals(null, LdapAuth3.getUsername("non-exsting", TEST_LDAPS_CONF));
+
+        assertEquals("testuser2", LdapAuth3.getUsername("testUser2", TEST_LDAPS_CONF));
+        // login with uid, get idsC2Profile username
+        assertEquals("idsTestUser", LdapAuth3.getUsername("testUser", TEST_LDAPS_CONF));
+    }
 
     @Test
     public void gettingMailAttributeForNotRegisteredUserWorks() throws LDAPException {
diff --git a/full/src/test/resources/test-ldap-users.ldif b/full/src/test/resources/test-ldap-users.ldif
index b35a919..0b92701 100644
--- a/full/src/test/resources/test-ldap-users.ldif
+++ b/full/src/test/resources/test-ldap-users.ldif
@@ -19,6 +19,7 @@
 extraProfile: testuser123
 extraPassword: password
 uid: testuser
+idsC2Profile: idsTestUser
 
 dn: uid=test,ou=people,dc=example,dc=com
 cn: Peter Test
