#oauth #gitlab #gitlab-omnibus #gitlab-ce
#oauth #gitlab #gitlab-omnibus #gitlab-ce
Вопрос:
Я установил Gitlab-CE на виртуальной машине CentOS и пытаюсь настроить вход с помощью общего поставщика OAuth2, если быть более точным, я на самом деле использую IBM Security Access Manager 9.0.6.
Пока что вход работает после небольшой настройки omniauth-oauth2-generic конфигурации gem :
И в области администрирования я нахожу своего пользователя с помощью поставщика удостоверений oauth2 :
Моя проблема в том, что информация о пользователе не устанавливается при входе пользователя в систему :
Вот моя конфигурация omniauth :
#https://gitlab.com/satorix/omniauth-oauth2-generic
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['oauth2_generic']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
{
'name' => 'oauth2_generic',
'app_id' => '9gzCzRKeiipexDRXsJOJ',
'app_secret' => 'mysecret',
'args' => {
client_options: {
'site' => 'https://example.com', # including port if necessary
'authorize_url': '/mga/sps/oauth/oauth20/authorize',
'token_url': '/mga/sps/oauth/oauth20/token',
'user_info_url' => '/mga/sps/oauth/oauth20/userinfo'
},
user_response_structure: {
root_path: [],
id_path: ['sub'],
attributes: {
nickname: 'sub',
name: 'name',
first_name: 'given_name',
last_name: 'family_name'
}
}
# optionally, you can add the following two lines to "white label" the display name
# of this strategy (appears in urls and Gitlab login buttons)
# If you do this, you must also replace oauth2_generic, everywhere it appears above, with the new name.
#name: 'IBM ISAM', # display name for this strategy
#strategy_class: "OmniAuth::Strategies::OAuth2Generic" # Devise-specific config option Gitlab uses to find renamed strategy
}
}
]
И моя конечная точка информации о пользователе возвращает :
{ "sub":"XCQX342",
"nickname": "Kalem",
"name": "My name",
"given_name": "My name",
"family_name": "My surname",
"email": "myemail@example.com"
}
Я сравнил свою конфигурацию сhttp://lifeinide.com/post/2017-08-30-jetbrains-hub-as-oauth2-provider-for-gitlab / но я не понимаю, что я делаю не так, и почему gitlab не может проанализировать пользовательские атрибуты.
Спасибо за вашу помощь.
Ответ №1:
Я надеюсь, что вы решили свою проблему.
Если нет :
Попробуйте напрямую задать поле, как в этом случае
Аналогично тому, что вы там установили
user_response_structure: {
root_path: [],
id_path: ['sub'],
attributes: {
nickname: 'sub',
name: 'name',
first_name: 'given_name',
last_name: 'family_name',
email: 'email'
}
}
Комментарии:
1. Спасибо за ответ. Я снял эту проблему минуту назад и использовал поставщика SAML. У меня нет тестовой среды, поэтому я не могу проверить ваш ответ. Будем надеяться, что это поможет кому-то еще.