You need to sign in or sign up before continuing.
git over https does not work with crowd omniauth
Gitlab CE 12.3.5 (2417d5be) (docker container if that matters)
Crowd Omniauth config:
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['crowd']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
{
"name" => "crowd",
"args" => {
"crowd_server_url" => "https://crowd.server.url.tld",
"application_name" => "appname",
"application_password" => "secret_password"
}
}
]
- Log into Gitlab first time with existing crowd user.
- Create project with that user naming 'test-project'.
- Gitlab shows warning "You won't be able to pull or push project code via HTTPS until you set password on your account.
- Have a feeling that this must be wrong notification, because I had just logged in with password, omniauth is working and it does not make any sense that the same omniauth user/pass does not work for git over https operations.
- Test git clone https://gitlab.tld/username/test-project.git/ fatal: Authentication failed for 'https://gitlab.tld/username/test-project.git/'
- Check gitlab-rails production.log:
Processing by Projects::GitHttpController#info_refs as */*
Parameters: {"service"=>"git-upload-pack", "namespace_id"=>"username", "project_id"=>"test-project.git"}
Filter chain halted as :authenticate_user rendered or redirected
Completed 401 Unauthorized in 16ms (Views: 1.3ms | ActiveRecord: 1.5ms | Elasticsearch: 0.0ms)
Started GET "/username/test-project.git/info/refs?service=git-upload-pack" for 10.255.0.2 at 2019-10-11 09:59:55 +0000
Processing by Projects::GitHttpController#info_refs as */*
Parameters: {"service"=>"git-upload-pack", "namespace_id"=>"username", "project_id"=>"test-project.git"}
Filter chain halted as :authenticate_user rendered or redirected
Completed 401 Unauthorized in 297ms (Views: 0.7ms | ActiveRecord: 27.8ms | Elasticsearch: 0.0ms)
- Complete facepalm/wtf moment.
The entire idea of central user management (in this case Crowd) is that you have a single authentication/authorization source. Not being able to use omniauth credentials for git over https and requering separate password to be set in Gitlab makes no sense.
Desired/expected result: git over https is authenticated against crowd omniauth.