Как интегрировать облако Bitbucket с Concourse CI?
Я работал над созданием новой команды в Concorse CI и могу войти в систему как пользователи Bitbucket.
fly set-team -n main \
--basic-auth-username myuser \
--basic-auth-password xxxx \
--generic-oauth-display-name bitbucket \
--generic-oauth-client-id xxxx \
--generic-oauth-client-secret xxxx \
--generic-oauth-auth-url https://bitbucket.org/site/oauth2/authorize \
--generic-oauth-token-url https://bitbucket.org/site/oauth2/access_token
Ключ для его успешной установки заключается в том, что URL-адрес обратного вызова для потребителя OAuth в bitbucket должен быть только на веб-сайте CI (нет /auth/oauth/callback
в URL обратного вызова)
Теперь я нашел проблему. Любой пользователь (даже новый зарегистрированный бесплатный пользователь в облаке bitbucket) может войти в систему моего CI-сервера.
После того, как сделал некоторые исследования, я получил это
Общий oAuth
Флаги --generic-oauth-* настраивают универсального провайдера oAuth, который не выполняет никакой дополнительной проверки того, что отдельный пользователь входит в систему по умолчанию. Таким образом, его следует использовать только с внутренними системами аутентификации. Например, если бы он использовался для настройки Google или Twitter oAuth, это позволило бы практически каждому человеку в Интернете создавать конвейеры. Это было бы очень щедро. Если вам нужна проверка, убедитесь, что вы используете флаг --generic-oauth-scope.
Итак, есть ли какие-либо способы остановить вход в систему неавторизованных пользователей облачного хранилища, что должно быть ограничено только моей организацией? То же, что и опция github --github-auth-organization=ORG
Я пытаюсь добавить --generic-oauth-scope concourse.main
Но всегда получаю ошибку:
failed to verify token
Я также читаю OAuth на BitbucketCloud-Scopes и пробую с большинством областей, таких как
--generic-oauth-scope account
По-прежнему получаю ту же ошибку.
Что я должен положить в сферу?
2 ответа
Для Concourse CI >= v.3.7 и <= v.4.0 вы можете использовать выделенного поставщика аутентификации Bitbucket Cloud. Я написал в блоге об этом, но суть заключается в использовании
fly -t ci set-team -n dev --bitbucket-cloud-auth-client-id=xxx --bitbucket-cloud-auth-client-secret=xxx --bitbucket-cloud-auth-repository=myorg/myrepo`
К сожалению, новая пользовательская модель Concourse 4.0 больше не поддерживает облачное хранилище.
Больше нет поддержки для аутентификации BitBucket. Извините - Декс не поддерживает это.:(Однако мы поддерживаем универсальные соединители LDAP, oAuth и OIDC, которые вы можете использовать вместо этого.
Главный филиал Concourse вернул BitBucket Cloud OAuth, см.
- https://github.com/concourse/concourse/commit/265d35519442ff174a1036889b1910dc2f91d4c9
- https://github.com/concourse/dex/commit/e1acb6d577111af69dd919712a70f3e952205fce
На сегодняшний день (2018-11-15), пока нет релиза, поддерживающего BitBucket Cloud OAuth, но следующий релиз, который должен быть выпущен в ближайшее время, будет:-)