⚙️ 配置步骤详解
要实现上述流程,你需要分别在 OIDC 身份提供商和 Harbor 两端进行配置。
-
在 OIDC 身份提供商端配置
首先,你需要在你的 OIDC 提供商(例如 KubeSphere、Keycloak 等)上将 Harbor 注册为一个客户端应用。-
获取重定向 URI:在 Harbor 的认证配置页面底部,你可以找到需要提供给 OIDC 提供商的重定向 URI,格式通常为
https://<你的harbor域名>/c/oidc/callback。 -
创建客户端:在 OIDC 提供商处创建一个新的客户端,并将上一步获取的 Harbor 回调 URI 设置为授权的重定向 URI。
-
记录关键信息:妥善保存 OIDC 提供商提供的 客户端 ID 和 客户端密钥,在配置 Harbor 时会用到。
-
配置声明(Claims):根据需求,你可能需要在 OIDC 提供商端配置用户名声明和组声明,以便 Harbor 能正确识别用户信息和权限。
-
-
在 Harbor 管理界面中配置
完成服务端配置后,你需要以管理员身份登录 Harbor 界面进行设置。-
进入"管理" -> "配置" -> "身份验证"选项卡。
-
在"身份验证模式"下拉菜单中,选择 OIDC。
-
填写 OIDC 提供商的信息,以下是几个关键配置项:
-
| 配置项 | 说明与示例 |
|---|---|
| OIDC 提供商名称 | 在登录按钮上显示的名称,例如 "公司SSO"。 |
| OIDC 提供商端点 | 提供商的 URL,例如 https://your-oidc-provider.com。 |
| OIDC 客户端 ID | 在 OIDC 提供商处注册时获得的 ID。 |
| OIDC 客户端密钥 | 在 OIDC 提供商处注册时获得的密钥。 |
| OIDC 范围 | 通常至少包含 openid,还可包括 profile, email, offline_access 等。 |
| 用户名声明 | 指定从 ID Token 的哪个声明中获取用户名。 |
| 自动加入 | 若启用,用户首次登录时会自动在 Harbor 创建账户。 |
| OIDC 管理组 | 指定一个 OIDC 组,其成员在 Harbor 拥有管理员权限。 |
-
重要提示:配置完成后,强烈建议先点击 "测试 OIDC 服务器" 按钮来验证配置是否正确,然后再保存。
🚢 关于 CLI 访问
由于 Docker 或 Helm 等命令行工具无法处理 OIDC 的网页重定向流程,Harbor 为此提供了 CLI 密钥 功能。
-
用户登录 Harbor Web 界面后,可以在"用户个人资料"中生成或复制一个 CLI 密钥。
-
使用
docker login时,将用户名填写为你的 OIDC 用户名,密码则使用这个 CLI 密钥即可。
💡 重要注意事项
-
模式切换限制:只有当 Harbor 数据库中没有除
admin之外的本地用户时,才可以从数据库认证模式切换到 OIDC 模式。 -
用户管理:在 OIDC 模式下,用户的创建、删除、密码管理等操作均在外部身份提供商进行,Harbor 不支持这些功能。
-
会话注销:你可以选择配置"OIDC 会话注销",使得用户从 Harbor 注销时,同时终止其在 OIDC 提供商端的会话。
希望这些信息能帮助你顺利完成 Harbor 的 OIDC 认证配置。如果你在配置过程中遇到关于特定 OIDC 提供商(如 Keycloak 或 Azure AD)的具体问题,可以进一步说明,我将尽力提供更详细的指引。