Java как обрабатывать 2-факторную аутентификацию с помощью LDAP

#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.