Authelia 与 RustDesk Server Pro 集成指南:通过 OpenID Connect 1.0 实现单点登录

发布时间:2026/11/5 12:18:59

Authelia 与 RustDesk Server Pro 集成指南:通过 OpenID Connect 1.0 实现单点登录 Authelia 与 RustDesk Server Pro 集成指南通过 OpenID Connect 1.0 实现单点登录【免费下载链接】autheliaThe Single Sign-On Multi-Factor portal for web apps. OpenID Certified™ and Post-Quantum Cryptography Ready.项目地址: https://gitcode.com/GitHub_Trending/au/authelia本篇技术指南讲解如何将 Authelia 作为 OpenID Connect 1.0OIDCProvider与 RustDesk Server Pro 这一自托管远程桌面服务进行集成使用户可以使用 Authelia 的统一身份认证体系登录 RustDesk Server Pro。读完本文你将掌握在 Authelia 中注册 OIDC 客户端所需的完整 YAML 配置与每个关键参数的含义、在 RustDesk Server Pro Web 管理界面中创建 OIDC Auth Provider 的逐步操作、以及各 OIDC 端点授权、令牌、UserInfo、JWKS在 Authelia 中的真实路径与对应源码依据。测试版本与集成前提该集成指南基于以下版本组合验证通过Autheliav4.39.24RustDesk Server Prov1.3.9本文示例遵循以下假设你在实际部署时应替换为真实域名项目假设值应用根地址RustDesk Server Prohttps://rustdesk.example.com/Authelia 根地址OIDC Issuerhttps://auth.example.com/Client IDrustdeskClient Secretinsecure_secret仅演示用生产环境严禁使用重要提示配置一个 OpenID Connect 1.0 注册客户端之前请务必先阅读 Authelia 官方的 OpenID Connect 1.0 集成总览 以及 OpenID Connect 1.0 客户端配置指南了解 Provider 与客户端的基础概念与全部可用选项。前置必读客户端标识与密钥规范在开始配置之前有几条关于client_id与client_secret的硬性规则需要牢记详见 常见问题 与 客户端配置client_id对每个客户端必须唯一长度不超过 100 字符且只能包含 RFC3986 Unreserved Characters字母、数字及-、.、_、~。client_secret是 Authelia 与应用之间的共享密钥必须与 RustDesk Server Pro 侧配置的密钥完全一致。本文与示例中的rustdesk/insecure_secret仅用于演示生产环境绝对不要使用应使用随机生成的高强度值。强烈建议以哈希形式将client_secret存入 Authelia 配置而非明文明文存储已被正式弃用详见下文“密钥存储与工作因子”小节。Authelia 提供了便捷的命令生成符合上述规范的值避免 URL 编码问题生成 72 字符的随机 Client ID# Docker 方式 docker run --rm authelia/authelia:latest authelia crypto rand --length 72 --charset rfc3986 # 裸机方式 authelia crypto rand --length 72 --charset rfc3986生成随机 Client Secret 并同时输出其 PBKDF2 哈希明文用于 RustDesk 侧哈希用于 Authelia 配置# Docker 方式 docker run --rm authelia/authelia:latest authelia crypto hash generate pbkdf2 --variant sha512 --random --random.length 72 --random.charset rfc3986 # 裸机方式 authelia crypto hash generate pbkdf2 --variant sha512 --random --random.length 72 --random.charset rfc3986如果生成的字符集在 URL 编码后会产生不同的值Authelia 会额外打印一份预编码版本方便你处理不支持正确编码的应用。第一步在 Authelia 中注册 OIDC 客户端以下 YAML 是适用于 RustDesk Server Pro 的 Authelia 客户端配置 示例可直接放入configuration.yml的identity_providers.oidc.clients列表identity_providers: oidc: ## 此处省略 OpenID Connect 1.0 Provider 的其他必填配置。 ## 请参见 Provider 配置指南补齐 issuer、jwks 等全局项。 clients: - client_id: rustdesk client_name: RustDesk Server Pro client_secret: $pbkdf2-sha512$310000$c8p78n7pUMln0jzvd4aK4Q$JNRBzwAo0ek5qKn50cFzzvE9RXV88h1wJn5KGiHrD0YKtZaR/nCb2CJPOsKaPK0hjf.9yHxzQGZziziccp6Yng # insecure_secret 的哈希 public: false authorization_policy: two_factor require_pkce: false pkce_challenge_method: redirect_uris: - https://rustdesk.example.com/api/oidc/callback scopes: - openid - email - profile response_types: - code grant_types: - authorization_code access_token_signed_response_alg: none userinfo_signed_response_alg: none token_endpoint_auth_method: client_secret_basic关键参数逐项解析配置项取值说明client_idrustdesk客户端唯一标识必须与 RustDesk Server Pro 中填写的 Client ID 完全一致。client_nameRustDesk Server Pro在 Authelia 界面中展示的友好名称缺省时与client_id相同。client_secret$pbkdf2-sha512$...共享密钥的 PBKDF2 哈希对应明文insecure_secret。此配置项在客户端为机密型confidential时必填若使用非 Secret 凭证的认证方法或公开型客户端public: true则需留空。publicfalse声明为机密型客户端。RustDesk Server Pro 是服务端程序可安全持有凭证故为false。authorization_policytwo_factor该客户端授权时要求的认证强度可选one_factor、two_factor或 Provider 中通过 authorization_policies 自定义的策略名。注意它只作用于 Authorization Request与访问控制规则是两套独立机制。require_pkcefalse是否强制要求该客户端使用 PKCE。RustDesk Server Pro 的 OIDC 实现不发送 PKCE 参数故此处关闭开启后若客户端不支持会导致授权失败。pkce_challenge_method空强制指定的 PKCE challenge 方法合法值为空、plain或S256推荐。设置后等价于开启require_pkce。redirect_urishttps://rustdesk.example.com/api/oidc/callback允许回调的 URI 白名单大小写敏感必须精确匹配 RustDesk 发起授权后回跳的地址其他回调一律视为不安全并被拒绝。scopesopenid、email、profile允许该客户端申请的 scope缺省值为openid,groups,profile,email。应结合 scope 定义 与应用实际需要配置。response_typescode授权码流程。安全上建议只用code其他响应类型implicit/hybrid安全性较弱。grant_typesauthorization_code允许的授权类型。授权码是 OAuth 2.0 / OIDC 最通用的流程缺省即为authorization_code。access_token_signed_response_algnoneAccess Token 的签名算法。Authelia 默认颁发不透明Access Token即noneRustDesk Server Pro 通过 UserInfo 端点换取用户信息故无需签名。userinfo_signed_response_algnoneUserInfo 端点响应的签名算法none表示以普通 JSON 返回application/json。token_endpoint_auth_methodclient_secret_basic客户端在 Token 端点认证的方式即以 HTTP Basic 方式携带 Client ID 与 Secret。Authelia 支持的取值包括client_secret_basic、client_secret_post、client_secret_jwt、private_key_jwt、none等详见 集成总览的客户端认证方法表。注意以上示例只展示了客户端注册的部分选项。实际部署时你还必须补齐 OpenID Connect 1.0 Provider 配置 中的全局必填项如issuer、jwks密钥配置等。client_secret中的$pbkdf2-sha512$310000$...前缀表明其迭代次数为 310000若你的硬件性能较弱且客户端频繁超时可参考下文“工作因子调优”。第二步在 RustDesk Server Pro 中创建 OIDC Auth ProviderRustDesk Server Pro 提供了唯一一种集成方式——通过其Web 管理界面完成配置。按以下步骤操作登录 RustDesk Server Pro。进入Settings设置。进入OIDC页面。点击 New Auth Provider新建认证提供方。按下表配置各项配置项值NameAutheliaClient IDrustdeskClient Secretinsecure_secret此处填写明文与 Authelia 配置中哈希对应的原文一致Issuerhttps://auth.example.comAuthorization Endpointhttps://auth.example.com/api/oidc/authorizationToken Endpointhttps://auth.example.com/api/oidc/tokenUserinfo Endpointhttps://auth.example.com/api/oidc/userinfoJWKS Endpointhttps://auth.example.com/jwks.json点击页面底部的Submit提交保存配置。配置完成后用户在 RustDesk 客户端选择 OIDC 登录时将被重定向到 Authelia 门户完成认证按authorization_policy要求可能包含两步验证认证通过后回跳至https://rustdesk.example.com/api/oidc/callback完成会话建立。端点路径的源码依据上表中的端点并非随意填写而是 Authelia 实际实现的固定路径。在 OpenID Connect 1.0 集成总览 的端点表中这些路径以 Authelia 根 URL 为前缀授权端点/api/oidc/authorization对应authorization_endpoint令牌端点/api/oidc/token对应token_endpointUserInfo 端点/api/oidc/userinfo对应userinfo_endpoint撤销端点/api/oidc/revocation内省端点/api/oidc/introspectionJWKS/jwks.json对应jwks_uri发现端点/.well-known/openid-configuration与/.well-known/oauth-authorization-server这些路径同样可以从仓库源码与测试中得到印证例如 handler_oauth2_authorization_test.go 中定义了testOIDCAuthorizationEndpoint https://login.example.com:8080/api/oidc/authorizationhandler_oauth2_consent_test.go 等测试也以/api/oidc/...为请求 URI。如果你的 RustDesk 版本支持 OpenID Connect Discovery 1.0更推荐直接通过https://auth.example.com/.well-known/openid-configuration自动发现全部端点避免手工填写的笔误手工填写时请确保以上地址与 Authelia 实际部署的根 URL 一致。密钥存储、工作因子与安全加固为什么client_secret建议存哈希Authelia技术层面仍支持在配置中存放明文client_secret不带$前缀或使用$plaintext$前缀但这一行为已被正式弃用未来版本很可能彻底移除。按 RFC6819 Section 5.1.4.1.3 的要求授权服务器应当只以哈希/摘要形式存储客户端密钥Authelia 当前并未实现任何必须在明文下读取密钥的规范如client_secret_jwt因此明文存放没有任何必要。正确做法是RustDesk 侧填明文Authelia 配置中填该明文的 PBKDF2 哈希即本文示例的形态。工作因子调优Authelia 在每次客户端认证时会执行 PBKDF2 哈希运算计算耗时随迭代次数310000和硬件性能变化。如果 RustDesk Server Pro 与 Authelia 交互时出现超时可以降低工作因子。先测量不同迭代次数的耗时time authelia crypto hash generate pbkdf2 --variant sha512 --iterations 310000 --password insecure_password测量时不必使用真实密钥耗时与密码长度基本无关然后选择合适的迭代次数重新生成client_secret哈希并更新配置。其他建议require_pkce、require_pushed_authorization_requests等加固选项需要客户端支持RustDesk Server Pro 的 OIDC 实现不发送 PKCE 参数因此本示例保持关闭不要盲目开启导致登录失败。若你的部署暴露在公网请为 Authelia 配置强密码策略与双因素认证authorization_policy: two_factor已覆盖 OIDC 登录流程。关于 PKCE、Pushed Authorization Requests、JARM 等安全机制的完整讨论可参阅 OpenID Connect 1.0 集成总览的安全章节。验证与排错思路配置完成后可通过以下方式验证集成是否生效打开 RustDesk 客户端选择使用 OIDC 登录确认浏览器跳转到https://auth.example.com的 Authelia 登录页。登录成功后确认浏览器回跳至https://rustdesk.example.com/api/oidc/callback且 RustDesk Server Pro 会话建立成功。若登录失败优先检查client_secret是否与 Authelia 配置中哈希对应的明文完全一致redirect_uris是否与 RustDesk 实际回调地址精确匹配大小写敏感各端点 URL 前缀是否为 Authelia 真实根地址Authelia 日志中是否有与 scope、grant_type 或客户端认证相关的错误提示。延伸阅读RustDesk Server Pro OIDC 官方文档Authelia OpenID Connect 1.0 集成总览OpenID Connect 1.0 客户端配置指南OpenID Connect 1.0 Provider 配置指南OpenID Connect 1.0 常见问题密钥生成、明文弃用、工作因子调优生成安全值参考指南【免费下载链接】autheliaThe Single Sign-On Multi-Factor portal for web apps. OpenID Certified™ and Post-Quantum Cryptography Ready.项目地址: https://gitcode.com/GitHub_Trending/au/authelia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/4 18:52:35

AI科研绘图实战:从零基础到专业级论文配图

写论文最痛苦的事情,其实不是数据跑不出来,也不是文献读不完,而是图表怎么画都“差点意思”。我见过太多科研人,实验结果非常漂亮,结果配图一放上去,直接拉低整个论文的档次。早些年大家还在硬啃 Illustrat…

2026/11/5 12:14:29

Stimulsoft Reports 2019.2.2 落地指南:老系统兼容与版本陷阱规避

简介:Stimulsoft Reports 2019.2.2 是一款面向.NET开发者的专业报表控件,适用于WinForms、ASP.NET及WPF平台,帮助开发者快速构建数据可视化报表与打印输出功能,尤其适合中高级C#工程师在企业级管理系统、BI看板或财务报表模块中集…

2026/11/5 12:14:29

H110/B250主板BIOS魔改:CPU微码、ME与刷写校验全流程

简介:面向希望为 B150、B250、H110 等老主板扩展 Intel 8/9 代 CPU 兼容性的 DIY 玩家与装机爱好者,这份 BIOS 魔改工具包提供了一套较完整的固件修改辅助材料,适合具备一定硬件基础、了解刷写风险的用户在做好备份与稳定供电的前提下研究使用…

2026/11/5 12:14:29

GD32E10x官方例程入门:从点灯到外设调试全流程

简介:这份GD32E10x系列官方例程面向使用兆易创新GD32E10x系列MCU的嵌入式开发者与初学者,基于ARM Cortex-M3内核,集合了从基础外设到通信、电机控制等场景的示例代码,可用于快速理解芯片用法并搭建工程。压缩包共935个文件&#x…

2026/11/5 12:09:24

潍坊高纯氢氧化镁生产厂家怎么选:泽隆新材料靠谱商家测评排名

潍坊高纯氢氧化镁怎么选不踩坑:从产能、品控到定制能力,一篇讲透靠谱厂家的判断标准采购高纯氢氧化镁、阻燃级氢氧化镁,最怕的不是价格高,而是批次不稳、指标浮动、交期失控。尤其是做线缆料、橡胶制品、阻燃母粒的企业&#xff0…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑