#java #authentication #ldap
Вопрос:
Я использовал приведенный ниже код для аутентификации LDAP и отлично работает. Однако, если я включу аутентификацию SMS на сервере LDAP, я получу SMS, но как мне изменить приведенный ниже код, чтобы ввести код SMS?
FileReader reader = new FileReader(file); Properties p = new Properties(); p.load(reader); DirContext ctx = new InitialDirContext(p); SearchControls controls = new SearchControls(); controls.setSearchScope(SearchControls.SUBTREE_SCOPE); controls.setCountLimit(1); controls.setTimeLimit(5000); String searchString = "(sAMAccountName=" p.getProperty("USERNAME") ")"; NamingEnumerationlt;SearchResultgt; results = ctx.search("", searchString, controls); if (results.hasMore()) { SearchResult result = (SearchResult) results.next(); Attribute dnAttr = attrs.get("distinguishedName"); String dn = (String) dnAttr.get(); p.put(Context.SECURITY_PRINCIPAL, dn); System.out.print("password: "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String passwd = br.readLine(); p.put(Context.SECURITY_CREDENTIALS, passwd); new InitialDirContext(p); // Exception will be thrown on Invalid case System.out.println("Login successful"); }
Комментарии:
1. Вы просто составляете его как случайное число с достаточным количеством цифр. По определению, ничего общего с LDAP не имеет.
2. @user207421 мгновенная проверка подлинности с помощью LDAP для многофакторной аутентификации (MFA), поэтому MFA выполняет два фактора…
3. Таким образом, LDAP-это один фактор, а SMS-еще один фактор. Они независимы. В этом-то все и дело. В противном случае это не МИД. Таким образом, ваш номер SMS не имеет никакого отношения к LDAP.