Как интегрировать облако 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, см.

На сегодняшний день (2018-11-15), пока нет релиза, поддерживающего BitBucket Cloud OAuth, но следующий релиз, который должен быть выпущен в ближайшее время, будет:-)

Другие вопросы по тегам