如何将Bitbucket云与Concourse CI集成?

Bil*_*ill 5 bitbucket bitbucket-api oauth-2.0 concourse bitbucket-cloud

我已经开始在大堂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 
Run Code Online (Sandbox Code Playgroud)

成功设置它的关键是,bitbucket中的OAuth使用者的​​回调网址只需要大厅ci网站(/auth/oauth/callback在回调网址中没有)

现在我发现了一个问题.任何用户(甚至是bitbucket云中新注册的免费用户)都可以登录我的大厅ci服务器.

经过一番研究,我得到了这个

通用oAuth

--generic-oauth-*标志配置通用oAuth提供程序,默认情况下不会对单个用户登录执行任何其他验证.它应该只以这种方式与内部auth系统一起使用.例如,如果它用于配置Google或Twitter oAuth,它将允许互联网上的每个人创建管道.它会非常慷慨.如果需要验证,请确保使用--generic-oauth-scope标志.

那么有没有办法阻止未经授权的bitbucket云用户登录,这应该只限于我的组织?与github的选项相同--github-auth-organization=ORG

我尝试添加--generic-oauth-scope concourse.main但总是得到错误:

failed to verify token
Run Code Online (Sandbox Code Playgroud)

我还阅读了关于Bitbucket Cloud的OAuth - Scopes并尝试使用大多数范围,例如

--generic-oauth-scope account
Run Code Online (Sandbox Code Playgroud)

仍然得到相同的错误.

我应该把什么放在范围内?

Joh*_*lph 3

对于 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`
Run Code Online (Sandbox Code Playgroud)

遗憾的是,Concourse 4.0 的新用户模型不再支持bitbucket 云。

不再支持 BitBucket 身份验证。抱歉 - Dex 不支持。:( 不过,我们确实支持通用 LDAP、oAuth 和 OIDC 连接器,您可以使用这些连接器。