admin
之外的用户,则无法更改身份验证模式。配置 OIDC 身份提供商身份验证
如果选择 OpenID Connect (OIDC) 身份验证,用户将通过 OIDC 单点登录 (SSO) 提供商(如 Okta、KeyCloak 或 dex)登录到 Harbor 界面。在这种情况下,您无需在 Harbor 中创建用户帐户。
由于用户由 OIDC 提供商管理,因此 OIDC 身份验证模式不支持自助注册、创建用户、删除用户、更改密码和重置密码。
配置您的 OIDC 提供商
您必须配置您的 OIDC 提供商,以便可以将其与 Harbor 一起使用。有关如何执行这些配置的精确信息,请参阅您的 OIDC 提供商的文档。
- 设置将使用 OIDC 提供商登录到 Harbor 的用户和组。您无需为用户或组分配任何特定的 OIDC 角色,因为这些角色不会映射到 Harbor 角色。
- OIDC 提供商端点的 URL(在 OAuth 术语中称为授权服务器)必须为其配置文档提供众所周知的 URI。有关配置文档的更多信息,请参阅 OpenID 文档。
- 要使用 OIDC 组管理用户,请创建一个自定义组声明,其中包含您要注册到 Harbor 中的所有用户组。组声明必须映射到用户登录时发送到 Harbor 的 ID 令牌中。您可以启用 OIDC 提供商上的
memberof
功能。使用memberof
功能,当组实体的member
属性更新时(例如,通过从 OIDC 组添加或删除 OIDC 用户),OIDC 用户实体的memberof
属性也会更新。 - 将 Harbor 注册为 OIDC 提供商的客户端应用程序。将 Harbor 的回调 URI 作为
redirectURI
关联到客户端应用程序。这是 OIDC 提供商向其发送 ID 令牌的地址。
在 Harbor 中配置 OIDC 提供商
在 Harbor 中配置 OIDC 提供商之前,请确保您的提供商已根据前一节正确配置。
-
使用具有 Harbor 系统管理员权限的帐户登录到 Harbor 界面。
-
在 管理 下,转到 配置 并选择 身份验证 选项卡。
-
使用 身份验证模式 下拉菜单选择 OIDC。
-
输入有关您的 OIDC 提供商的信息。
-
主身份验证模式:是否使用 OIDC 模式作为主身份验证模式。
当显式访问 URL ‘/account/sign-in’ 时,可以覆盖并通过数据库登录 -
OIDC 提供商名称:OIDC 提供商的名称。
-
OIDC 提供商端点:OIDC 提供商的端点的 URL。
-
OIDC 客户端 ID:Harbor 作为客户端应用程序在 OIDC 提供商处注册的客户端 ID。
-
OIDC 客户端密钥:Harbor 客户端应用程序的密钥。
-
OIDC 组过滤器:用于从
组声明名称
列表中选择匹配组的 正则表达式。匹配的组将添加到 Harbor。此过滤器不限制用户登录 Harbor 的能力。 -
组声明名称:您在 OIDC 提供商中配置的自定义组声明的名称,其中包含要添加到 Harbor 的组。
-
OIDC 管理员组:管理员组的名称,如果用户的 ID 令牌显示他是此组的成员,则该用户将在 Harbor 中拥有管理员权限。注意:您只能设置一个管理员组。另请确保此字段中的值与 ID 令牌中的组项目的值匹配。
-
OIDC Scope:逗号分隔的字符串,列出身份验证期间要使用的 Scope。
OIDC scope 必须包含
openid
,并且通常还包含profile
和email
。要获取刷新令牌,它还应包含offline_access
。如果您使用 OIDC 组,则 scope 必须标识组声明。请咨询您的 OIDC 提供商管理员,以获取有关如何识别组声明 scope 的精确详细信息,因为这因供应商而异。
-
-
如果 OIDC 提供商使用自签名或不受信任的证书,请取消选中 验证证书。
-
如果您不希望用户在首次登录期间在 Harbor 中设置用户名,请选中 自动加入。选中此选项后,必须设置属性 用户名声明,Harbor 将从 ID 令牌中读取此声明的值,并将其用作用户加入的用户名。因此,您必须确保您在 用户名声明 中设置的值包含在您设置的 OIDC 提供商返回的 ID 令牌中,否则当 Harbor 尝试让用户加入时会出现系统错误。
-
如果您希望在用户从 Harbor 注销后终止用户与 OIDC 提供商的当前会话,请选中 OIDC 会话注销。
-
验证您在 OIDC 提供商中配置的重定向 URI 与页面底部显示的 URI 相同。
-
单击 测试 OIDC 服务器 以确保您的配置正确。
-
单击 保存 以完成配置。
通过 OIDC 提供商登录到 Harbor
当 Harbor 系统管理员已将 Harbor 配置为通过 OIDC 进行身份验证时,Harbor 登录页面上会出现 使用 ${your_oidc_provider_name} 登录 按钮。

注意: 当 Harbor 配置为通过 OIDC 进行身份验证时,通过本地数据库登录 按钮供本地 Harbor 系统管理员登录使用。
-
作为 Harbor 用户,单击 使用 ${your_oidc_provider_name} 登录 按钮。
这会将您重定向到 OIDC 提供商进行身份验证,在 OIDC 提供商对您进行身份验证后,您将被重定向回 Harbor。
-
如果这是您首次使用 OIDC 登录到 Harbor,您将被加入到 Harbor,以便您在 Harbor 的数据库中拥有用户记录,该记录在将您添加到项目、分配角色等时使用。此过程的流程取决于配置
- 如果未选中选项 自动加入,将显示一个对话框,用于指定 Harbor 要与您的 OIDC 用户名关联的用户名。
- 如果选中选项 自动加入,系统不会提示您设置用户名,而是 Harbor 将尝试通过 用户名声明 中设置的声明从 ID 令牌中提取用户名,并使用此用户名自动让用户加入。
- 如果未选中选项 自动加入,将显示一个对话框,用于指定 Harbor 要与您的 OIDC 用户名关联的用户名。
从 Docker 或 Helm CLI 使用 OIDC
在您通过 OIDC 身份验证并首次登录到 Harbor 界面后,您可以使用 Docker 或 Helm CLI 访问 Harbor。
Docker 和 Helm CLI 无法处理 OIDC 的重定向,因此 Harbor 提供了一个 CLI 密钥,用于从 Docker 或 Helm 登录。这仅在 Harbor 使用 OIDC 身份验证时可用。
-
使用 OIDC 用户帐户登录到 Harbor。
-
单击屏幕顶部的用户名,然后选择 用户个人资料。
-
单击剪贴板图标以复制与您的帐户关联的 CLI 密钥。
-
您可以选择单击用户个人资料中的 … 图标以显示用于自动生成或手动创建新 CLI 密钥的按钮。
一个用户只能有一个 CLI 密钥,因此当生成或创建新密钥时,旧密钥将失效。
-
如果您生成了新的 CLI 密钥,请单击剪贴板图标以复制它。
您现在可以使用您的 CLI 密钥作为密码,从 Docker 或 Helm CLI 登录到 Harbor。
docker login -u testuser -p cli_secret jt-dev.local.goharbor.io
在此页上
贡献