为Harbor Registry配置Active Directory(AD)身份验证

时间:2020-02-23 14:30:16  来源:igfitidea点击:

Harbor Registry是企业级图像和头盔注册服务器,用于存储和分发容器图像和头盔图表。借助Harbor,我们可以存储和管理用于Kubernetes,OpenShift和任何其他内部容器编排平台的图像。在本教程中,我们将探讨如何在Harbor注册表上配置Active Directory用户身份验证。

对于Linux LDAP/FreeIPA,请参阅:如何将Harbor Registry与LDAP集成以进行用户身份验证

设置准备工作

我们应该在云中或者内部基础结构中具有正在运行的Harbor镜像注册表。请参阅以下有关Harbor镜像注册表安装的教程:

使用Helm Chart在Kubernetes/OpenShift上安装Harbor Image Registry

在CentOS/Debian/Ubuntu上安装Harbor Container Image Registry

推荐的部署方法是在Kubernetes或者OpenShift上使用Helm图表。我希望正式的运营商会很快出来。

为Harbor Registry配置Active Directory(AD)身份验证

在Active Directory端,至少应具有:用于绑定到Active Directory用户名和密码的用户用于Harbor用户的组用于Active Directory的基本DN

因此我的示例配置将如下所示:LDAP URL:ldap://example.net:389绑定用户DN:cn = HarborAdmin,ou = BindUsers,dc = example,dc = net绑定用户密码:StronADUserPasssBase DN:OU = CompanyUsers,DC = example,DC = netLDAP UID:sAMAccountNameLDAP范围:SubtreeLDAP组成员DN:CN = HarborUsers,OU = CompanyGroups,DC = example,DC = net

我们必须从Active Directory中获取正确的值并进行相应的替换。

第1步:以管理员身份登录以包含控制台

以管理员用户身份登录到Harbor注册表仪表板。

在Harbor上为AD配置LDAP身份验证

然后导航到管理>配置>身份验证

输入参数。就我而言,这些是:

Auth Mode: LDAP
LDAP URL: ldap://example.net:389
LDAP Search DN: cn=HarborAdmin,ou=BindUsers,dc=example,dc=net
LDAP Search Password: StronADUserPasss
LDAP Base DN: OU=CompanyUsers,DC=example,DC=net
LDAP UID: sAMAccountName
LDAP Scope: Subtree
LDAP Group Membership: memberOf=CN=HarborUsers,OU=CompanyGroups,DC=example,DC=net

HarborUsers是AD中允许用户访问Harbor的组。这意味着我们需要将用户添加到要在此处映射的组中,因此我们不允许AD上的所有用户。

提供所有值后,单击"测试LDAP服务器"按钮以验证设置。

如果连接成功,我们将收到此消息。

在Harbor Web门户上测试登录,以确认Active Directory组中的用户可以访问该服务。

我们需要进行身份验证才能访问Docker计算机上的Harbor注册表。

$docker login reg1.example.com
Authenticating with existing credentials...
Existing credentials are invalid, please enter valid username and password
Username: theitroad
Password: <LDAPPassword>
Login Succeeded!

用户现在可以使用Active Directory凭据登录到Harbor图像注册表。