Перейти к основному содержанию

Multifactor — двухфакторная аутентификация в vCenter сломалась

Multifactor

Писал я как-то про то, как настроить Мультифактор на vCenter с помощью MultiFactor LDAP Adapter.

MultiFactor Ldap Adapter — LDAP proxy сервер, разработанный и поддерживаемый компанией Мультифактор для двухфакторной аутентификации пользователей в приложениях, использующих LDAP аутентификацию.

Multifactor — двухфакторная аутентификация в vCenter

И вот при обновлении vCenter второй фактор перестал работать с ошибкой:

[400] An error occurred while processing the authentication response from the vCenter Single Sign-On server. Details: Status: urn:oasis:names:tc:SAML:2.0:status:Responder, sub status: null.

vmware

При этом проверка второго фактора производится, ошибка происходит на стадии взаимодействия адаптера с LDAPS сервером.

Не помню точную версию vCenter 7, с которой началась проблема. Это примерно 7.0.3.01100. В последующих версиях вплоть до VMware vCenter Server 7.0.3.01800 тоже второй фактор не работает. Скорее всего в очередной версии изменились алгоритмы шифрования или ещё что-то, не вникал.

При отключении MultiFactor LDAP Adapter проблема устраняется. Долго пришлось искать точку отказа, возможно, кому-то сэкономлю время и нервы.

Обновление MultiFactor LDAP Adapter до версии 1.0.114 не помогло.

security

В логах MultiFactor LDAP Adapter откопали ошибку:

System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at MultiFactor.Ldap.Adapter.Core.LdapAttribute.ParseAttributes(Byte[] bytes, Int32 currentPosition, Int32 length) in /home/appveyor/projects/multifactor-ldap-adapter-linux/src/Core/LdapAttribute.cs:line 250
   at MultiFactor.Ldap.Adapter.Core.LdapPacket.ParsePacket(Byte[] bytes) in /home/appveyor/projects/multifactor-ldap-adapter-linux/src/Core/LdapPacket.cs:line 67
   at MultiFactor.Ldap.Adapter.Core.Requests.LdapRequest.FromBytesAsync(Byte[] bytes) in /home/appveyor/projects/multifactor-ldap-adapter-linux/src/Core/Requests/LdapRequest.cs:line 76
   at MultiFactor.Ldap.Adapter.Server.LdapProxy.ParseAndProcessRequest(Byte[] data, Int32 length) in /home/appveyor/projects/multifactor-ldap-adapter-linux/src/Server/LdapProxy.cs:line 112
   at MultiFactor.Ldap.Adapter.Server.LdapProxy.DataExchange(TcpClient source, Stream sourceStream, TcpClient target, Stream targetStream, Func`3 process) in /home/appveyor/projects/multifactor-ldap-adapter-linux/src/Server/LdapProxy.cs:line 87

Сейчас пытаюсь связаться с кем-то из Мультифактора, но менеджеры не отвечают, учётка моя почему-то заблокирована, это ещё одна проблема.

Решение

Вычислили проблему, оказалось, слишком большой объём данных для групп и пользователей в настройках

  • Base distinguished name for users — путь DN к пользователям AD
  • Base distinguished name for groups — путь DN к группам AD 

vCenter 7 — доменная аутентификация

Сузили поиск более точным (длинным) указанием DN и аутентификация заработала.

Теги

 

Похожие материалы

ESXi — Cannot complete login due to an incorrect user name or password

После пяти неверных попыток логина в UI ESXi аккаунт блокируется на 900 секунд. В этот период войти под прежним логином невозможно, получаем ошибку.