Node—RED 启用使用身份认证登录


Node-RED 预设是无帐号与密码的,因此若建立在公开的伺服器上就是不安全的,任何人都可以透过 IP 或网域连上平台,且直接修改及部属编辑器上的节点,因此我们要运用其内建的使用者身分验证机制来保护平台的资讯安全。

编辑器和管理员 API 安全性

EditorAdmin API 支持两种类型的身份验证:

  • 基于用户名/密码凭据的身份验证
  • 针对任何 OAuth/OpenID 提供者(例如 Twitter 或 GitHub)进行身份验证

基于用户名/密码的身份验证

要在 Editor 和 Admin API 上启用用户身份验证,请取消注释设置文件adminAuth 中的属性:

adminAuth: {
    type: "credentials",
    users: [
        {
            username: "admin",
            password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
            permissions: "*"
        },
        {
            username: "george",
            password: "$2b$08$wuAqPiKJlVN27eF5qJp.RuQYuy6ZYONW7a/UWYxDTtwKFCdB8F19y",
            permissions: "read"
        }
    ]
}

users属性是一个用户对象数组。这允许您定义多个用户,每个用户都可以拥有不同的权限。

上面的这个示例配置定义了两个用户。一个被称为admin有权在编辑器内执行所有操作且密码为password. 另一个调用george who 被授予只读访问权限。

请注意,密码是使用 bcrypt 算法安全地散列的。

注意:在以前的 Node-RED 版本中,该设置httpAdminAuth 可用于在编辑器上启用 HTTP 基本身份验证。此选项已弃用,不应使用。

生成密码哈希

如果您使用的是 Node-RED 1.1.0 或更高版本,则可以使用以下命令:

node-red admin hash-pw

对于旧版本的 Node-RED,您可以:

  • 安装单独的node-red-admin命令行工具并使用以下命令:
    node-red-admin hash-pw

  • 或者,找到 Node-RED 的安装目录并使用以下命令:

    node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" your-password-here

在所有情况下,您都会取回密码的散列版本,然后您可以将其粘贴到您的设置文件中。

Where is my settings file?


文章作者: Kevin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kevin !
评论
  目录