Matrix 实例也建了有一段时间了,但并没有多少人使用,前天看到zyn的评论 ,如果将 Mastodon 与 Matrix 整合起来,让长毛象用户可以一键登入,无需二次注册想必可以降低一些使用门槛,拉一些人到 Matrix 中去。
如果你想让你的 Matrix 实例可以使用 Mastodon OAuth2 认证登录,可以参考本篇内容。
Mastodon 实例域名: https://bgme.me
Synapse Homeserver 域名: https://neo.bgme.me
本文相关域名使用如上内容,实际使用时请根据个人情况自行修改。
- 在 Development页面 创建一个 OAuth 应用。
Application name
:随便填。Application website
:随便填,可以为空。Redirect URI
:[synapse public baseurl]/_synapse/client/oidc/callback
,本次为https://neo.bgme.me/_synapse/client/oidc/callback
。Scopes
:本着最小权限原则,仅授权read:accounts
。
应用创建完毕后,记下该应用的 Client key
、Client secret
。
修改 Synapse 配置文件,添加如下内容:
oidc_providers: - idp_id: mastodon idp_name: Mastodon idp_icon: "mxc://bgme.me/483b11fe1baee524ab6b7ae6c60a65a51e0bf1d3" discover: false issuer: "https://bgme.me/" client_id: "[Mastodon Client key]" client_secret: "[Mastodon Client secret]" authorization_endpoint: "https://bgme.me/oauth/authorize" token_endpoint: "https://bgme.me/oauth/token" userinfo_endpoint: "https://bgme.me/api/v1/accounts/verify_credentials" scopes: ["read:accounts"] user_mapping_provider: config: subject_claim: "id" localpart_template: "{{ user.username }}" display_name_template: "{{ user.display_name }}"
重启 Synapse 服务,访问 https://neo.bgme.me/_matrix/client/r0/login ,如看见 type
为 m.login.sso
及 m.login.token
项目,说明 SSO 设置完成。
{ "flows": [ { "type": "m.login.sso", "identity_providers": [ { "id": "oidc-mastodon", "name": "Mastodon" } ] }, { "type": "m.login.token" }, { "type": "m.login.password" }, { "type": "uk.half-shot.msc2778.login.application_service" } ] }
尝试使用 SSO 方式登录,如登录成功,即完成 Mastodon 与 Synapse 的认证整合。
参考资料: