5

我已经努力在 concourse 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 

设置成功的关键是,bitbucket 中 OAuth 消费者的回调 url 只需要 concourse ci 网站(/auth/oauth/callback回调 url 中没有)

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

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

通用 oAuth

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

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

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

failed to verify token

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

--generic-oauth-scope account

仍然得到同样的错误。

我应该在范围内放什么?

4

2 回答 2

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`

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

不再支持 BitBucket 身份验证。抱歉 - Dex 不支持它。:( 但是我们确实支持通用 LDAP、oAuth 和 OIDC 连接器,您可以使用它们来代替。

于 2018-08-03T20:32:14.823 回答
1

Concourse master 分支恢复了 BitBucket Cloud OAuth,请参阅

截至今天(2018 年 11 月 15 日),尚无支持 BitBucket Cloud OAuth 的版本,但即将发布的下一个版本将 :-)

于 2018-11-15T10:09:32.003 回答