Какой?
Компания, на которой я работаю в последнее время разделил все нашу программную техническую команду, часть других команд и обратно на людей в автономный независимый поставщик программного обеспечения. В настоящее время мы распределяем один экземпляр корпоративного набора GitHub на PROM и в рамках перехода, который мы перевели новый персонал компании в свой собственный Active Directory.
В отличие от других инструментов, у меня на месте, как Дженкинс или гавань, GitHub Enterprise поддерживает только с помощью одного сервера AD/LDAP (версия 3.0.4 на предмет публикации этого поста). Таким образом, 6 или около того, что цифровые маркетинговые разработчики остались позади в родительской компании, должны быть преобразованы из LDAP Auth в локальную аутентификацию.
К счастью, это возможно с GitHub Enterprise через этот параметр:
Но?
Вопрос в том, что учетные записи, которые ранее были помещены LDAP, так как этот параметр позволяет только для новых учетных записей.
Я попросил GitHub для инструкций о том, как преобразовать эти учетные записи, и они отправили мне несколько команд CHE-Console. И вот что они послали мне:
Если включено, временно отключите синхронизацию LDAP, чтобы предотвратить его повторное написание ассоциаций LDAP.
Подключитесь к серверу через SSH. Уничтожьте отображение LDAP для пользователей, которые вы хотели бы переключиться на встроенную аутентификацию и установить пароль по умолчанию для тех пользователей: (замените имя пользователя с фактическим именем пользователя GitHub пользователя и замените New_Password с временным паролем)
ghe-console -y
User.find_by_login("USERNAME").ldap_mapping.destroy
pass = "NEW_PASSWORD"
user = User.find_by_login("USERNAME")
user.update_attributes(password: pass, password_confirmation: pass)
exit
Убедитесь, что эти пользователи не в каталоге LDAP, прежде чем они попытаются снова войти в систему.
Повторно включите синхронизацию LDAP при необходимости.
Попросите пользователям обновлять пароли после входа в систему.
Без сомнения, это из их знаний группы поддержки. Проблема в том, что это бросает ошибки при попытке использовать код AS-IS.
Конечно, у меня было только несколько трассировков, чтобы выйти из этого за update_attributes :
Traceback (most recent call last):
3: from /github/script/console:92:in `'
2: from (irb):4
1: from /github/vendor/gems/2.7.1/ruby/2.7.0/gems/activemodel-6.1.0.rc1.8389f99/lib/active_model/attribute_methods.rb:469:in `method_missing'
NoMethodError (undefined method `update_attributes' for #)
Did you mean? update_attribute
Итак, я пытался изменить его на update_attribute. :
Traceback (most recent call last):
4: from /github/script/console:92:in `'
3: from (irb):4
2: from (irb):5:in `rescue in irb_binding'
1: from /github/vendor/gems/2.7.1/ruby/2.7.0/gems/activerecord-6.1.0.rc1.8389f99/lib/active_record/persistence.rb:612:in `update_attribute'
ArgumentError (wrong number of arguments (given 1, expected 2))
Проклятие. Ну, это сорти выглядит Как я посылаю два аргумента вместо одного, так что происходит?
Так как я сейчас знаю, мы имеем дело с Ruby в Гу-консоль Я начинаю смотреть некоторые документы и узнать, что update_attribute Только один атрибут за один раз и любой формат, который я отправляю, это не нравится.
Я также смотрю на update_attributes И выяснить, что он был устарел. Тебе нужно только Обновление в этом случае. Так что я пытаюсь …| Обновление с тем же парам и работал:
user.update(password: pass, password_confirmation: pass)
Или то, что я изначально пробовал работать, используя другой синтаксис для отправки атрибутов, которые я видел в Обновление документация:
user.update(:password => pass, :password_confirmation => pass)
Кишечник?
В основном просто выбрали этот субтитры для рифмы с другими, но на самом деле используя вашу кишку, чтобы сделать такую отладку, это то, что я рекомендую. Чем дольше вы в этом бизнесе, тем больше опыта вы работаете против только странных сценариев, таких как выше. Мой продавец дал мне синтаксис, который был на самом деле устарел, но я использовал информацию, предоставленную мне для языка, у меня есть нулевой опыт, чтобы отладить, что делать дальше.
И я написал их обратно, чтобы они знали, чтобы обновить их знания.
Так что следуй по твоей кишечнике! Знайте, как посмотреть документы даже для вещей, о которых вы не знаете или языки, с которыми вы незнакомы.
Выводить. Эксперимент. Тестовое задание. Повторить. Это становится второй природой.
Оригинал: «https://dev.to/thebouv/changing-github-enterprise-users-from-ldap-to-local-278»