Рубрики
Uncategorized

LDAP на Gitlab с красной шляпой Управление идентичностью (Freeipa)

Я понятия не имею, почему, но в эти выходные я перегрел все, что у меня есть в Diumpalocean — не постоянно … Помечено DevOps, Git, учебник, интеграция.

Я понятия не имею, почему, но в эти выходные я перегрел все, что у меня есть в Diumpalocean — не навсегда, просто чтобы попробовать, я думаю …

Ну, это по крайней мере, оставило меня с большим количеством документации! Вы будете удивлены, сколько дела я просто делаю и уезжаю на страницы истории. На этот раз был другой, на этот раз я набрал.

Одна из вещей, которые всегда устроили меня, — это то, как правильно интегрировать LDAP в разные вещи — каждое приложение имеет другой способ взаимодействия и фильтрации схемы. Gitlab не является исключением, но сегодня я наконец освоил их мысль о интеграции LDAP.

1. Настройка LDAP

Во-первых, я буду использовать управление личности Red Hat или Free Freeipa, как сервер LDAP. Честно говоря, это LDAP с кучей прочих вещей, но в любом случае, есть пару предположений:

  1. У вас есть GitLabusers Группа в IDM/IPA
  2. У вас есть Gitlabadmins Группа в IDM/IPA
  3. У вас есть набор пользователей, присвоенных этим группам
  4. У вас есть пользователь Bind, посвященный GitLab LDAP Связывание

Как вы делаете выделенный Bind DN для вашего сервера LDAP? Сделать файл под названием gitlabbdn.update со следующим содержанием:

dn: uid=gitlabbdn,cn=users,cn=accounts,dc=example,dc=com
add:objectclass:account
add:objectclass:simplesecurityobject
add:uid:gitlabbdn
add:userPassword:s3cr3tP455w0rdHERE
add:passwordExpirationTime:20380119031407Z
add:nsIdleTimeout:0

Затем на вашем IPA-сервере, как пользователь администратора, выполните следующую команду:

ipa-ldap-updater gitlab-bind.update

Теперь вы можете использовать BIND DN uid = gitlabbdn, cn = пользователи, cn = учетные записи, dc = пример, dc = com и s3cr3tp455w0rdhere Пароль, который вы устанавливаете, чтобы надежно связываться с сервером LDAP.

2. Конфигурация GitLab

Далее мы изменим раздел LDAP /etc/gitlab/gitlab.rb Файл, чтобы посмотреть что-то подобное:

### LDAP Settings
###! Docs: https://docs.gitlab.com/omnibus/settings/ldap.html
###! **Be careful not to break the indentation in the ldap_servers block. It is
###!   in yaml format and the spaces must be retained. Using tabs will not work.**

gitlab_rails['ldap_enabled'] = true
gitlab_rails['prevent_ldap_sign_in'] = false

###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
  main:
    label: 'My LDAP'
    host: 'ipa.example.com'
    port: 389
    uid: 'uid'
    bind_dn: 'uid=gitlabbdn,cn=users,cn=accounts,dc=example,dc=com'
    password: 's3cr3tP455w0rdHERE'
    encryption: 'start_tls'
    verify_certificates: false
    smartcard_auth: false
    active_directory: false
    allow_username_or_email_login: false
    lowercase_usernames: false
    block_auto_created_users: false
    base: 'cn=accounts,dc=example,dc=com'
    user_filter: '(memberof=CN=gitlabusers,CN=groups,CN=accounts,DC=example,DC=com)'
    attributes:
      username: ['uid']
      email: ['mail']
      name: 'displayName'
      first_name: 'givenName'
      last_name: 'sn'
EOS

Снаружи замены домена/учетных данных с вашим, это должно сделать это. Любой пользователь LDAP в группе GitLabusers сможет получить доступ.

Беги Gitlab-CTL Reconfigure И наслаждайтесь новой централизованной аутентификацией!

Оригинал: «https://dev.to/kenmoini/ldap-on-gitlab-with-red-hat-identity-management-freeipa-3f5l»