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

文章目录

什么是 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)。
json 复制代码
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) {
                                return done(null, profile);
                        },
                }
        },
        users: function(user) {
                return Promise.resolve({ username: user, permissions: "*" });
        }
},

配置验证

相关推荐
阿杜杜不是阿木木9 小时前
authentik开源身份认证与管理平台-与 Immich 集成(9)
immich·authentik
阿杜杜不是阿木木10 小时前
authentik开源身份认证与管理平台-与 Proxmox VE 集成(2)
开源·pve·proxmox·authing·pbs·authentik
阿杜杜不是阿木木14 小时前
authentik开源身份认证与管理平台-与 Jenkins 集成(5)
运维·servlet·jenkins·authing·authentik
阿杜杜不是阿木木16 小时前
authentik开源身份认证与管理平台-与 MinIO 集成(8)
minio·authentik
阿杜杜不是阿木木17 小时前
authentik开源身份认证与管理平台-与 Gitea 集成(6)
gitea·authing·authentik
阿杜杜不是阿木木17 小时前
authentik开源身份认证与管理平台-介绍与安装(1)
数据库·redis·开源·authing·sso·authentik
阿杜杜不是阿木木18 小时前
authentik开源身份认证与管理平台-与 SonarQube 集成(7)
sonarqube·authentik
DexterLien15 天前
使用开源 Authentik 实现 AWS 单点登录
aws·sso·saml·authentik
tian_jiangnan23 天前
node-red百科全书
node-red