前言
应群友需求,写一篇关于如何使用 1Panel 部署 Logto,来实现身份验证和授权的指南。
https://logto.io/zh-CN
Logto 是一个开源的身份验证和授权解决方案,支持多种身份验证方式,通过通用 OIDC,可以轻松实现单点登录和多因素认证。
本文将以 Halo 的对接为例,讲讲如何在 1Panel 上部署 Logto 且对接实现身份验证和授权功能。
准备工作
- 已部署 1Panel 的服务器一台
- 域名一个
- Halo (或其他自有支持 OIDC 的平台)
- 基本语文素养
部署
安装 OpenResty
https://www.bilibili.com/video/BV16FsMeGEx2/
安装 PostgreSQL
https://www.bilibili.com/video/BV1f74JejERZ/
安装 Logto
在 1Panel 面板中打开 应用商店
,搜索 Logto
,点击安装。
修改 Logto 服务地址
与 Logto 管理控制台地址
,其余配置保持不变,点击 确认
开始安装。
注意:这里填写的域名必须是后面反代正式使用的域名,且必须启用 HTTPS 。
示例:
反向代理
在 OpenResty 中添加两个 反向代理
站点,参考上图中的地址和端口进行反代。
均需要在站点配置中开启 HTTPS。
创建账户
进入 Logto 管理控制台,如示例中 https://admin-logto.anye.xyz/
即可进入欢迎页面,点击 Create account
按钮注册账户。
可在此处修改显示为 简体中文
。
对接 Halo
Logto 创建应用
Logto 提供了丰富的模板,我们对接自己现有的应用时通常选用 OIDC,可以在 开始上手
- 查看全部
中的最下面找到。
点击 开始构建
,输入 应用名称
创建应用。下拉查看 端点和凭据
,保持此页面待用。
示例:
Halo 添加 OIDC 认证
首先你需要在 Halo 中安装 应用:社交 IAM 认证 - Halo - 强大易用的开源建站工具 插件,接着在插件配置中 新建认证提供商
自定义 显示名称
、描述
、图标
等等
认证类型选择 oidc
认证方法
、授权类型
、用户信息认证方法
保持默认
添加一个作用域 openid
授权地址
填写 Logto 管理页面中的 授权端点
,认证地址
填写 Token 端点
,用户信息地址
填写 用户信息端点
,用户唯一属性
填写 sub
,保存。
示例:
Logto 管理页面 Halo 添加认证页面
进入新建认证提供商配置页面,按照 Logto 管理页面中的 应用 ID
和 App secrets
,填写 Client ID
和 Client Secret
,保存并启用。
配置回调
还没结束,别急着走掉🤣,在上图的 客户端
页面查看 回调地址
,手动修改 {baseUrl}
为你的域名,填写到 Logto 应用设置的 重定向 URIs
字段中。
示例:
退出登录后重定向 URIs
填写首页即可。
测试
在 Halo 的 个人中心
界面中尝试绑定
若能够正常注册 Logto 账户,且正常绑定到 Halo,尝试直接使用 Logto 登录,若成功登录,则说明配置成功。
参考资料
[1] https://docs.logto.io/
[2] https://apps.fit2cloud.com/1panel/logto