身份验证

本文档介绍了Circleci Server安装的各种方式可以获得访问并验证其帐户的用户。Circleci目前支持OAuth和LDAP作为身份验证方法。

与GitHub / GitHub企业的OAuth金宝博娱乐官网网址

Circleci服务器中用户帐户身份验证的默认方法是通过Github.com/github企业OAuth。金宝博娱乐官网网址

安装启动并运行后,为用户提供访问应用程序的链接 - 例如 .com- 并且它将通过通过Github / GitHub Enterprise OAuth流程来提示他们设置帐户。金宝博娱乐官网网址然后,应用程序将将它们重定向到Circleci登录屏幕。

服务器登录
图1. Circleci服务器登录屏幕

LDAP.

作为OAuth / GitHub选项的替代方案,您可以选择LDAP身份验证。许多组织使用LDAP服务器在一个地方集中所有身份信息。本节介绍如何启用,配置和测试Circleci以验证具有OpenLDAP或Active Directory凭据的用户。

启用LDAP将禁用其他身份验证方法。Circleci.不推荐用于打开现有安装的LDAP身份验证,以前已使用GitHub认证的用户。如果需要切换到现有安装的LDAP,请考虑联系您的帐户团队。

先决条件

  • 安装和配置OpenLDAP服务器或Active Directory。

  • 将GitHub Enterpris金宝博娱乐官网网址e或Github.com配置为用户可以访问的组织和项目来源。

  • 安装没有现有用户的Circleci服务器的新实例。

配置LDAP身份验证

本节提供配置LDAP的信息。下面是一个示例配置,以了解所需的信息类型。该示例显示了OpenLDAP,但Active Directory的设置是可比的:

LDAP示例
图2. LDAP配置示例

这些是在Circleci Server管理控制台中配置LDAP的步骤:

  1. 验证在LDAP / AD端口上的访问到LDAP / AD服务器。

  2. 以管理员身份登录到新安装的Circleci实例的管理控制台。

  3. 导航到设置页面(例如 .com:8800)滚动向下滚动以检查启用LDAP身份验证按钮。选择OpenLDAP或Active Directory。

  4. 填写您的LDAP实例主机名和端口号。

  5. 选择加密类型(纯文本是不安全的,因此不推荐)。

  6. 使用您授权在LDAP数据库上执行搜索查询的用户的完全专有名称填写搜索用户字段。例:CN = ,dc = <示例>,dc =

  7. 使用前一步骤中使用LDAP密码填写搜索密码字段。

  8. 填写基本DN字段,以可分辨名称用于目录中的点,来自Circleci将要查找用户/组。例:OU 188bet娱乐官网=公司,DC =示例,DC = ORG

  9. 填写用户搜索DN字段,具有相对可分辨名称的点,用于Circleci将找到用户的目录中的一个点。应该相对于上面提供的基础DN。例:ou =用户

  10. 填写具有属性名称的用户名字段,该字段是登录的用户名源。例:uid(在这种情况下,用户必须使用他们的UID登录)或邮件(在这种情况下,用户将使用电子邮件登录)。

  11. 填写电子邮件字段,其中包含用户电子邮件的源代码的名称。例:邮件

  12. 填写组成员身份字段,其中名称是特定组中的用户成员身份。例:奥尼姆梅梅

  13. 填写包含对象类的名称的组对象类字段,该类将识别DN作为组。例:Groupofunquenamames.

  14. (可选)使用要测试的LDAP用户的测试电子邮件和密码填写测试用户名和测试密码字段。这是第三方基础架构,此测试选项并不总是可靠的。

  15. 保存设置。

已知问题:授予管理员访问用户

如果您使用的是LDAP身份验证,请使用以下方法之一来授予用户的管理权限。管理权限应自动授予访问项目的第一个用户,但当前有一个已知问题,防止当使用LDAP身份验证时发生这种情况。

仅需要以下方法中的一种来授予管理员访问。如果您不熟悉使用REPP,请考虑在运行这些步骤之前联系客户支持。

对于LDAP用户名(GitHub帐户连接之前的给定用户,或者如果它们没有GitHub帐户):

( - >(circle.repl.mongo / fetch:用户:域 - 型号:其中{:login“the-ldap-username”:first_vcs_authorized_client_id nil}:limit 1)(first)(circle.model.user / set / set-field!{:admin“全部”})(:Analytics-ID)(Cirect.Services.Domain / Delete-User-Cache))

通过github用户名(GitHub帐户连接之后,它替换先前的:登录值):

( - >(circle.repl.mongo / fetch:用户:域 - 型号:其中{:login“the-github-username”}:limit 1)(first)(circle.model.user / set-yestis!{:admin“全部”})(:Analytics-ID)(cirect.services.domain / delete-user-cache))

通过分析ID

( - >(circle.model.user / find-by-analtics-id“3b35037c-6eb3-4e41-88e2-3913b2f43d96”)(circle.model.user / set-fields!{:admin“全部”})(:Analytics-ID)(Cirect.Services.Domain / Delete-User-Cache)))

用户互动

设置LDAP后,登录Circleci的用户将通过连接按钮重定向到帐户页面,即他们必须使用以连接其GitHub帐户。单击“连接”之后,将出现页面上的用户信息(例如,他们的电子邮件)的LDAP部分,将指示他们将验证其GitHub帐户。在验证其GitHub帐户后,用户将被定向到职业页面使用circleci。

使用LDAP进行身份验证的用户,然后从LDAP / AD中删除将能够访问Circleci,只要它们登录(由于Cookie)。一旦用户注销或cookie到期时,他们将无法登录。Github权限定义用户查看项目或运行构建的能力。因此,如果GitHub权限与LDAP / AD权限同步,则删除的LDAP / AD用户将自动丢失授权以查看或访问Circleci。

故障排除

使用LDAP搜索进行故障排除LDAP服务器设置,如下所示:

ldapsearch -x lll -h