# #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.
Более подробную информацию смотрите в документации.