前置条件:
已安装Authentik
、Harbor
一. 配置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密钥
将再次起作用。
评论区