侧边栏壁纸
博主头像
duan6666的blog

行动起来,活在当下

  • 累计撰写 7 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

使用Authentik为Harbor镜像仓库配置OIDC登录

duan6666
2024-12-16 / 0 评论 / 0 点赞 / 143 阅读 / 0 字
温馨提示:
本文最后更新于2025-01-02,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前置条件:
已安装AuthentikHarbor

一. 配置Authentik提供程序

管理员界面->应用程序->提供程序->创建
选择OAuth2/OpenID Provider

下一步->填写名称及流程
下方授权流程二选一explicit/implicit
explicit:若用户在未登录则跳转登录,登录后返回正常进入
implicit:若用户未登录,则直接提示未经授权禁止进入

  • 我的选择explicit


下方失效流程二选一authentication/source-authentication
authentication:使用authentik进行身份验证
source-authentication:使用外部的身份验证,authentik验证外部身份令牌

  • 我的选择authentication


下方身份验证流程二选一invalidation/provider-invalidation
invalidation:完成后用户会被引导回到Authentik内部特定页面或登录屏幕
provider-invalidation:重定向到外部登出回调页面,完成整个登出过程后再引导用户返回应用或展示登出成功页面

  • 我的选择provider-invalidation

    完成
    提示其 未分配给任何应用程序

二. 配置authentik应用程序

管理员界面->应用程序->应用程序->创建

完成

三. 配置Harbor仓库

这里我给Harbor分配了域名:hub.duan6666.top
输入账户密码登入并进入
系统管理->用户管理中确认无其他(非管理员)账户

四. 配置Harbor认证模式为OIDC

配置管理->认证模式中选中数据库
点击更改为OIDC

以下是OIDC需要填写的表单

1. Primary Auth Mode

开启此选项后:打开web控制面板时跳转至OIDC供应商登陆

  • 默认:关闭
  • 我的选择:开启

开启后效果

关闭时效果

2. OIDC供应商

可填写并显示在登陆页面的文字,我这里写的Authentik
Primary Auth Mode中的第二张图中
通过*登陆 中的文字

3. OIDC Endpoint

这里是你的OIDC供应商地址
可以去到 管理员界面->应用程序->提供程序 中查看对应的提供程序
其中OpenID 配置颁发者的链接便是填写之其中的内容
链接:https://你的Authentik域名/if/admin/#/core/providers

4. OIDC 客户端标识、OIDC 客户端密码

提供程序页面点击编辑

  • 其中的客户端 ID对应OIDC 客户端标识
  • 客户端 Secret对应OIDC 客户端密码

5. OIDC 组过滤器

用于过滤不匹配的组

  • 默认:空值
  • 我的内容:空值

6. 组声明名称

用于检测用户组

  • 默认:空值
  • 我的内容:groups

在对应提供程序预览中可查看详情,填写后可读取用户已加入的用户组

若不填写,即便配置了OIDC管理员组也不会生效,推荐填写

7. OIDC管理员组

将对应已加入某组的成员身份设置为管理员

  • 默认:空值
  • 我的内容:admins

默认情况下Authentik的管理员组的名称为Authentik Admins,我这里将其重命名为admins

管理员界面->目录->中可以查看管理员组的名称和信息

8. OIDC Scope

若OIDC供应商用有在此处填写的内容中对应的部分,将其信息提供给Harbor(例如邮箱、用户名)
Authentik中进入管理员界面->应用程序->提供程序->对应的提供程序
点击编辑

向下翻,高级协议设置
默认已经添加了三个作用域,这三个作用域中被单引号引起来的内容便可填入OIDC Scope
在作用域中,可选offline_access,这部分选中后,只要用户在线便可刷新身份令牌,无需担心令牌过期后重新登陆,若中选中此作用域,也需在OIDC Scope中填写此部分
可在高级协议设置中配置访问代码令牌有效时限
多个内容以英文逗号间隔,

  • 默认:空值
  • 我的内容:openid,profile,email

9. 验证证书

若你的OIDC供应商使用的是自签名证书,则取消勾选此项
我这里在配置Nginx-Proxy-Manager时在Let’s Encrypt获取了在线证书,自动续期
这里是我的Nginx-Proxy-Manager配置过程

  • 默认:开启
  • 我的选择:开启

10. 自动登录

选中此项后,将会根据从OIDC的供应商获取的用户名自动配置Harbor的用户名

  • 默认:关闭
  • 我的选择:开启

11. 用户名声明

若上一项自动登录未被选中开启,则此项不可配置,此值为空时默认为name
进入管理员界面->应用程序->提供程序
在对应提供程序预览中可查看详情
在其中选择一项填写,其内容便是用户名

  • 默认:未开启且空值
  • 我的内容:空值

点击测试,看看是否能否连通,之后点击保存

五. 测试是否可以提供OIDC供应商登录

不要退出登录,请在浏览器新建隐私窗口登录,若OIDC有配置错误等问题,还有更改的可能性


六. 为通过Authentik登入的账户配置Docker/Helm密码

在右上角点击用户

点击用户设置

下方CLI密钥是随机生成的,复制后可直接使用

点击复制图标右方的三个点···即可编辑

在右方便可重新生成随机密钥或自定义自己的密钥

若使用CLI密钥登陆失败,可能不是因为输入的账号密码错误:
CLI密钥OIDC令牌相关联,但如果OIDC提供商未提供刷新令牌或刷新失败,CLI密钥便会失效。此时请注销并通过OIDC提供商重新登录 Harbor,以便Harbor可以获取新的令牌。然后CLI密钥将再次起作用。

0

评论区