diff --git a/src/main/java/org/codelibs/fess/helper/SambaHelper.java b/src/main/java/org/codelibs/fess/helper/SambaHelper.java
index c96c11c543b42c7052f30e8ffc8c9b3af2cb6506..ea022a601672b914deede892e67afc7359631ae3 100644
--- a/src/main/java/org/codelibs/fess/helper/SambaHelper.java
+++ b/src/main/java/org/codelibs/fess/helper/SambaHelper.java
@@ -57,6 +57,6 @@ public class SambaHelper {
     }
 
     protected String createSearchRole(final int type, final String name) {
-        return type + name;
+        return type + fessConfig.getCanonicalLdapName(name);
     }
 }
diff --git a/src/main/java/org/codelibs/fess/ldap/LdapManager.java b/src/main/java/org/codelibs/fess/ldap/LdapManager.java
index 1e0c0c978a13eeee47db0c279b958bbe77e30d38..3b0a46ebd13d651948ad8ccff6ce0d413f38f5af 100644
--- a/src/main/java/org/codelibs/fess/ldap/LdapManager.java
+++ b/src/main/java/org/codelibs/fess/ldap/LdapManager.java
@@ -18,7 +18,6 @@ package org.codelibs.fess.ldap;
 import static org.codelibs.core.stream.StreamUtil.stream;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Base64;
 import java.util.Collections;
 import java.util.Hashtable;
@@ -247,22 +246,7 @@ public class LdapManager {
         } else {
             name = entryDn.substring(start, end);
         }
-        if (fessConfig.isLdapIgnoreNetbiosName()) {
-            final String[] values = name.split("\\\\");
-            if (values.length == 0) {
-                return null;
-            } else if (values.length == 1) {
-                if (logger.isDebugEnabled()) {
-                    logger.debug("name(1): " + values[0]);
-                }
-                return values[0];
-            }
-            name = String.join("\\", Arrays.copyOfRange(values, 1, values.length));
-            if (logger.isDebugEnabled()) {
-                logger.debug("name(2): " + name);
-            }
-            return name;
-        }
+        name = fessConfig.getCanonicalLdapName(name);
         if (logger.isDebugEnabled()) {
             logger.debug("name: " + name);
         }
diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java
index 002de37d2e971a2ef6cd15fda10eab8108707b24..055c74800e2317d42de534ba9a6f08a6204043c7 100644
--- a/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java
+++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java
@@ -1817,4 +1817,18 @@ public interface FessProp {
                 stream -> stream.filter(StringUtil::isNotBlank).map(String::trim).toArray(n -> new String[n]));
     }
 
+    boolean isLdapIgnoreNetbiosName();
+
+    public default String getCanonicalLdapName(final String name) {
+        if (isLdapIgnoreNetbiosName()) {
+            final String[] values = name.split("\\\\");
+            if (values.length == 0) {
+                return null;
+            } else if (values.length == 1) {
+                return values[0];
+            }
+            return String.join("\\", Arrays.copyOfRange(values, 1, values.length));
+        }
+        return name;
+    }
 }