当前位置: 首页 > news >正文

halo博客配置微软SSO指南

0x00 前言

这两天看到Halo的oauth插件更新了,支持了第三方SSO,于是想到用微软账号绑定博客账号。但是找了一圈发现配置SSO的博客不多,于是决定自己折腾,遂有了此篇指南。

0x01 azure配置

step1 申请应用

首先进入azure后台管理界面portal.azure.com,在上方搜索"App registrations"。然后点击上方"New registration",新建一个应用。此时界面如下图:

Snipaste_2025-03-27_12-47-11.png
这里我们需要填写三项:
Name字段是SSO应用的名称,可以自己随便填写。
Supported account types是使用SSO登录时可以接受的账户的类型:"organizaion directory"是微软学校或者工作账户,一般是学校或者单位发的,包含这个的选项可以用工作账号绑定Halo;"personal Microsoft account"是我们自己注册的账号,包含这个的选项可以用自己的微软账号绑定Halo。对于我们个人使用的博客的话,一般选后面两项都可以,这里选择最后的"personal account"作为演示。
Redirect URI字段左边类型选择Web,右边的网址填写https://<your site domain>/login/oauth2/code/sso即可,其中<your site domain>更改为你的服务器的域名。需要注意的是,azure只接受https协议的回调地址,所以需要给自己的域名配置ssl证书,没有的话可以申请阿里云的免费证书。
(填http就会有提示)
Snipaste_2025-03-27_12-33-57.png
所有信息都正确都填写后点击Registration,即可注册应用。申请应用之后会进入应用主页,记录主页中Application (client) ID字段的值,这个一会配置Halo的时候要用到。

step2 申请密钥

点击左侧的Certificates & secrets

Snipaste_2025-03-27_12-55-54.png

点击中间的Add client secret
Snipaste_2025-03-27_12-57-19.png
在弹出的窗口中填写Description和Expire date字段。Description是对客户端的描述,可以随便填;Expire date是密钥过期时间,密钥过期之后,就无法登录,需要重新申请或者跟新密钥,对于我们的博客来说,选择24months即可,这样可以避免更换密钥。
点击Add即可完成secret申请。
申请完之后,下方的列表就会显示我们刚刚申请的secret,其中Value就是申请的Client Secret,也需要记录后面配置Halo要用到。

step3 配置openid/oauth权限

选择左侧列表中的 API Permissions ,然后选择Add a permission。这里会看到右侧弹出了一个窗口,在窗口中选择Microsoft Graph,然后就会进入下图所示的API选择界面。找到OpenId permissions,选中四个权限并点击下面Add permisions即可.
Snipaste_2025-03-27_18-06-32.png

0x02 Halo配置

首先Halo要安装了官方的OAuth插件的1.6.0版本(更新到最新版即可),并确保Halo OAuth插件已经启用。
然后进入Halo控制台用户界面,点击右上角身份认证的选项,可以看到插件支持的认证方式。这里开启SSO选项,然后点击SSO选项开关右侧的设置图标,进入SSO的配置界面。

Snipaste_2025-03-27_18-22-00.png

Snipaste_2025-03-27_18-25-03.png

http://www.zskr.cn/news/64493.html

相关文章:

  • cmake编译stm项目提示“selected processor does not support `isb 0xF in ARM mode”
  • stm32f4 USB host无法解析hid键盘数据
  • React Zustand
  • 浙江网络舆情处置实战派大揭秘! 杭州本土企业都夸稳的5家王牌公司
  • 浙江网络舆情处置实战派大揭秘!杭州本土企业都夸稳的5家王牌公司
  • -2025/11/28
  • React事件处理
  • 数学的大厦(八):同态与同构
  • 最新PyCharm 安装详细图文教程:小白也能轻松搞定
  • 从零开始的云原生之旅(十一):压测实战:验证弹性伸缩效果 - 实践
  • Ai元人文:价值的惊险一跃——当AI伦理告别“救火”迈向“共生”
  • 搞定多数据源 + 统一数据格式!用工厂 / 策略 / 适配器模式解决用户端与管理端协同开发痛点
  • P5357 【模板】AC 自动机
  • 2025年终总结
  • P5367 【模板】康托展开
  • Day5 Scrum冲刺博客
  • 台达变频器与西门子1200 PLC互联借Modbus RTU转Profinet推动工业物联网
  • 二维偏序(离线二维数点)
  • 敏捷冲刺随笔-2
  • 2025年12月高压固态软启动柜厂家排行榜,技术创新+24小时售后,工业采购测评推荐
  • 我是如何用浏览器插件轻松抓取抖音评论并实现精准搜索分析的
  • useEffect详解
  • 详解np.random.normal(0, 3, size=x.shape)
  • 代码随想录Day23_回溯_组合.md
  • 何以为生
  • Gemini3疯了!0.09接入Nano Banana Pro 4k画质API(附实战教程)
  • 东方博宜OJ 1119:求各位数字之和 ← 循环结构
  • 2025.11.28
  • 多项式次数选择完整演示
  • Java 线程池深度解析:原理、策略与生产环境调优指南