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

authentik开源身份认证与管理平台-与 Node-RED 集成(4)

文章目录

  • 什么是 Node-RED?
  • 准备
  • authentik配置
  • Node-RED 配置
  • 配置验证

什么是 Node-RED?

Node-RED 是一种用于以新的有趣的方式连接硬件设备、API 和在线服务的编程工具。
它提供了一个基于浏览器的编辑器,可以轻松地使用画布中可用的大量节点组合流,这些节点可以在单击中部署到运行时。
这需要修改 Node-RED 的 settings.js 文件,并安装额外的 Passport-js 包;有关详细信息,请参见 Securing Node-RED 文档。

准备

在本指南中,使用了以下占位符:
authentik.company 是 authentik 的 FQDN。
nodered.company 是 Node-RED 的 FQDN。

authentik配置

为了支持 Node-RED 与 authentik 的集成,您需要在 authentik 中创建一个应用程序/提供程序对。

  1. 作为管理员登录到 authentik 并打开 authentik 管理员界面。

  2. 导航至应用程序 > 应用程序,然后单击使用提供程序创建以创建应用程序和提供程序对。 (或者,您可以先单独创建提供程序,然后创建应用程序并将其连接到提供程序。)

    • 应用程序 :提供一个描述性名称、一个可选的应用程序类型组、策略引擎模式和可选的 UI 设置。
      应用名称:NodeRed, Slug会自动带出:nodered

    • 选择提供者类型 :选择OAuth2/OpenID Connect作为提供者类型。

    • 配置提供者 :提供名称(或接受自动提供的名称)、用于此提供者的授权流程以及以下必需配置。
      注意客户端 ID、 客户端密钥和 slug 值,因为它们将在稍后需要。
      设置一个 Strict 重定向 URI 为 https://nodered.company/auth/strategy/callback/ 。
      选择任何可用的签署密钥。
      确保禁用加密。

    • 配置绑定 (可选):您可以创建一个 绑定 (策略、组或用户)来管理用户“我的应用程序”页面上应用程序的列表和访问权限。

  3. 单击提交以保存新应用程序和提供程序。

Node-RED 配置

  1. 使用 npm 安装passport-openidconnect
    导航到 Node-RED 的 node_modules 目录。这取决于您选择的安装方法。在官方的 Node-RED Docker 容器中,node_modules 目录位于数据卷 data/node_modules/ 中。或者,使用 Docker 容器,使用 docker exec -it nodered bash 和 cd /data/node_modules,在容器内使用 npm。

运行npm install passport-openidconnect命令。

  1. 编辑settings.js
    编辑 Node-RED 的 settings.js 文件(/data/settings.js),使用外部身份验证源(passport-openidconnect)。
adminAuth:{type:"strategy",strategy:{name:"openidconnect",label:'Sign in with authentik',icon:"fa-cloud",strategy:require("passport-openidconnect").Strategy,options:{issuer:'https://authentik.company/application/o/<application_slug>/',authorizationURL:'https://authentik.company/application/o/authorize/',tokenURL:'https://authentik.company/application/o/token/',userInfoURL:'https://authentik.company/application/o/userinfo/',clientID:'<client_id>',clientSecret:'<client_secret>',callbackURL:'https://nodered.company/auth/strategy/callback/',scope:['email','profile','openid'],proxy:true,verify:function(context,issuer,profile,done){returndone(null,profile);},}},users:function(user){returnPromise.resolve({username:user,permissions:"*"});}},

配置验证

http://www.jsqmd.com/news/589209/

相关文章:

  • API是什么?一个例子讲清楚
  • 【Minecraft】无法连接至服务器,登录失败:无效会话(请尝试重启游戏及启动器)
  • 如何利用 Google Analytics 来优化网站 SEO
  • 提升开发效率:使用快马平台自动化生成数据导出功能扩展模块
  • 3步实现智能视频剪辑:FunClip开源工具终极指南
  • Git使用
  • 量化指标解码18:SMC市场结构与流动性
  • AD7490 SPI驱动开发:12位16通道工业ADC工程实践
  • Arduino_Cellular库深度解析:工业级4G通信底层实现
  • [特殊字符] PCL2单机世界转Paper/插件服 完整替换教程
  • 实战演练:基于快马平台将java面试题库转化为模拟面试与代码挑战场
  • OpenClaw压力测试:Qwen3-32B在RTX4090D上的极限并发
  • 拆解系统思考:别让事件思维拖垮团队
  • Kubernetes中的RBAC权限管理
  • SpringBoot项目里PostgreSQL主键冲突?别慌,三步搞定序列同步(附排查脚本)
  • 硬件工程师实战避坑指南与成本控制技巧
  • 急停按钮为什么接常闭
  • Go的runtime.ReadMemStats:获取内存分配统计
  • DBA必看:Oracle OCP认证到底值不值得考?2024年最新薪资与职业发展分析
  • Epicyclic-gearing
  • 神经网络与模型预测控制融合算法在四旋翼无人机及非线性机器人汽车系统中的研究(Matlab代码实现)
  • I2C协议详解:从基础到高级应用实践
  • 效率提升秘籍:用快马平台批量测试百种openclaw配置方案,快速定位最优参数
  • OpenClaw模型切换指南:Kimi-VL-A3B-Thinking与其他多模态模型对比测试
  • 《永恒战士2-无双战神》无限金币版(提供apk下载)安卓Android逆向记录学习-Deepseek-AI辅助
  • OpenClaw成本优化方案:Qwen3-4B自建接口替代OpenAI调用
  • Adafruit VEML6070库详解:Arduino/STM32多平台UV传感器驱动
  • 用MediaPipe Pose和Python实时监控你的坐姿:一个完整的桌面健康助手项目
  • 人工智能之语音领域 语音处理 第六章 语音处理技术发展趋势与未来展望
  • SevenSegmentSerial:HT16K33七段数码管多协议驱动库