Не удается войти/войти в режим администратора с помощью LDAP

# #gitlab #gitlab-ce

Вопрос:

Вопрос

Как обойти логин LDAP и удалить дополнительную проверку подлинности для административных задач?

Проблема

Я не могу войти в режим администратора. Когда я вхожу в систему, используя обычные учетные данные, и пытаюсь изменить некоторые административные настройки, он запрашивает учетные данные LDAP для входа в режим администратора. Проблема в том, что LDAP работает слишком медленно и не работает для меня (я исправлю это позже).

Контекст

Я настраиваю gitlab-ce 13.11.3-ce.0 локально в качестве демонстрации. У меня есть некоторые настройки, которые я не хочу потерять при полной перезагрузке. У пользователя-администратора была обычная аутентификация. Так как я вошел в систему через LDAP (я использовал то же имя пользователя, что и LDAP для входа в систему) Я больше не могу войти в режим администратора, хотя я могу войти в систему с помощью администратора, используя обычные учетные данные.

Я смешал обычные и учетные данные LDAP для учетной записи администратора.

Что я пытался:
  • Я попытался отключить вход в LDAP, используя настройку gitlab_rails['ldap_enabled'] = false at /etc/gitlab/gitlab.rb , но форма не отображается (хотя появляется заголовок LDAP).
  • Я попытался сбросить пароль пользователя с помощью gitlab-rails console .
 user = User.find_by(email: 'user@example.com')
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
user.save!
user.skip_reconfirmation!
 
  • Я также пытаюсь исправить аутентификацию LDAP, но сейчас более важно, чтобы у меня был доступ к настройкам администратора.

Ответ №1:

Как указано в документации, эту проверку подлинности можно легко отключить с помощью следующей команды:

 gitlab-rails runner '::Gitlab::CurrentSettings.update!(admin_mode: false)'
 

Когда я нашел приведенный выше код, я решил проблему, используя приведенный ниже метод:

Имея доступ к серверу, я создал другого пользователя-администратора с обычной аутентификацией в Gitlab с помощью gitlab-rails runner .

в /путь/к/обходной путь.rb:

 username = "bypassldap"
user = User.new(
    username: username,
    name: username,
    email: "#{username}@gitlab.allowed.domain",
    notification_email: "#{username}@gitlab.allowed.domain",
    password: username,
    password_confirmation: username,
    admin: true
)
user.skip_confirmation!
user.save!
 

затем побежал:

 gitlab-rails runner /path/to/bypassldap.rb
 

Я успешно вошел в систему с созданным пользователем, затем отключил опцию Требовать дополнительной аутентификации для административных задач в разделе Admin area> > > Settings> > General> разверните раздел>Sign-in restrictions.

Более подробную информацию смотрите в документации.