Lucky 第三方登录与网页认证功能介绍

Lucky 2.20.0 版本开始,系统支持了 第三方登录 功能,这让登录管理更加便捷、安全。 本文将带你一步步了解这个功能的配置和使用方法。

一、添加第三方用户信息

你可以在菜单中的 「第三方认证」模块 添加第三方用户,目前支持以下平台:

  • GitHub
  • Google
  • QQ
  • 微博
  • 通用 OIDC(已验证 authentik、pocket-id、casdoor 可用)

⚠️ 使用 通用 OIDC 时,需要先在 Lucky 的 Web 服务中部署一个「中间认证接口」,再到第三方认证模块顶部的设置里填写 OIDC 相关信息,才能正常使用。

第三方认证目前主要应用在:

  • Lucky 后台登录
  • Web 服务的网页认证

 

二、部署中间认证接口

2.1 为什么要有中间认证接口?

为了统一管理不同平台的认证流程、避免网页认证回调地址固定等问题,Lucky 不会直接对接 OAuth 平台。 相反,Lucky 通过 Lucky Web 服务 的 OAuth 模块部署一个「中间认证接口」。

支持的类型:

  • 通用 OIDC
  • GitHub
  • Google

💡 GitHub 与 Google 默认使用 Lucky 官方提供的中间接口,如果你希望更灵活或自定义,可以自行部署属于自己的中间认证接口。 QQ 与 微博 暂不支持自建接口,只能使用官方服务。


2.2 中间认证接口配置注意事项

  1. 中间认证接口 仅支持 HTTPS
  2. 对于 OIDC 类型,需要填写的配置地址一般为:
    https://你的OIDC地址/.well-known/openid-configuration
  3. Redirect URL 指该规则的访问地址。例如:
    • 假设前端访问地址是 https://lucky666.cn/oauth/oidc
    • 监听端口为 16666 则 Redirect URL 应填写:
    https://lucky666.cn:16666/oauth/oidc
  4. 部署完成后,需要回到 第三方认证模块的设置页,更新相关 OIDC 信息。
    • 特别是 OIDC 授权端点(authorization_endpoint),可以通过访问上面的配置地址来获取。

示例:访问

https://xxx.xxx/.well-known/openid-configuration

在返回内容中找到 authorization_endpoint 字段即可。


2.3 测试配置是否正确

设置完成后,可在「第三方认证」模块中 添加一个第三方认证用户 来进行测试,确认是否可以正常登录。


三、使用第三方登录功能

第三方登录目前可以使用在两个地方:

  1. Lucky 后台登录
  2. Web 服务中的网页认证

3.1 后台登录的第三方登录

如果你希望在后台使用第三方登录,请在「Lucky 设置」页面中启用相关功能。

⚠️ 注意:

  • 第三方登录的 2FA(双重验证) 是独立的,与后台自带的 2FA 不互通。
  • 要启用 2FA,请在「添加或编辑第三方用户」时进行设置。

3.2 Web 服务网页认证

网页认证 相比基本认证的优势:

  • ✅ 浏览器兼容性更好
  • ✅ 安全性更高
  • ❌ 不支持 API 调用

网页认证的生效条件:

启用网页认证开关并且
当请求的 User-Agent 中包含以下关键词时,会优先使用网页认证模式: "mozilla", "chrome", "safari", "firefox", "edge", "opera", "webkit"

如果不符合这些条件,将使用基本认证方式(前提是开启了基本认证,否则返回 403)。

认证期限:

  • 浏览器关闭后 Session  失效
  • 服务端若 6 小时内无任何请求,也会自动失效

3.3 灵活的用户访问控制

你可以:

  • 在「子规则」中单独配置各自的认证用户
  • 也可以在「主规则」中设置全局认证规则,让所有子规则共享相同配置

3.4 账号密码登录规则

网页认证同样支持账号密码登录,格式如下:

用户名:密码

也可以启用 2FA 验证:

用户名:密码:2FA密钥

这样在网页登录时即可进行双重验证。


结语

通过以上配置,Lucky 就能支持 GitHub、Google、QQ、微博、OIDC 等多种方式登录,无论是后台还是网页都可轻松集成。 对于个人或团队来说,这不仅提升了安全性,也让用户体验更流畅。