@authbroker/authbroker

中文文档
0.0.12发布于 2022/03/30MITCommonJS近 30 天下载 7568

HTTP/MQTT/CoAP经纪公司基于IOT或物联网的NodeJS认证和授权模块.

中文使用文档
文档目录6 节
  1. 开始
  2. 如何运用它
  3. 捐款
  4. 作者/贡献者
  5. 信用/灵感
  6. 版权

经纪人认证和授权模块

Open Source Love Build Status

HTTP/MQTT/CoAP经纪公司基于IOT或物联网的NodeJS认证和授权模块. 此还款正在开发中.

开始

  • 安装 键盘 当地。 定能通达.
  • 如果您想要在本地进行测试, 请复制此 repo .
git clone https://github.com/authbroker/authbroker
cd authbroker
npm install
bash run-test.sh
# visit http://localhost:8080
# with username 'admin' and password 'admin'
npm run test

# for stopping docker instance you use this
docker stop $(docker ps -a -q --filter ancestor=authbroker:test --format="{{.ID}}")

它通过多克运行Keycloak并导入演示数据到IOT Realm域. 一个使用 auhtBroker 的 Broker 运行的例子 :

node ./example/broker.js

下面这些命令将订阅和发布到经纪人.

mosquitto_sub -h localhost -p 1883 -t garden/fan -u admin -P admin

mosquitto_pub -h localhost -p 1883 -t garden/fan -m "hello world" -u admin -P admin

如果 Keycloak 中的用户名/ 密码或授权更改, AuthBroker 的授权将不会被允许代理 。 例如,将主题改为未经授权的主题,如花园/未拆卸,看看经纪人如何拒绝.

如何运用它

这个模块使用节点风格的回调,可以和不同的经纪人使用,比如: 亚得斯。 。 。 .

const aedes = require("aedes")({
    persistence: new require("aedes-persistence")()
});
const server = require("net").createServer(aedes.handle);
const port = 1883;

const authBroker = require('@authbroker/authbroker');

const config = {
        "realm": "IOT_Realm",
        "authUrl": "http://localhost:8080/auth",
        "sslRequired": "external",
        "clientId": "authBroker",
        "verifyTokenAudience": true,
        "credentials": {
          "secret": "secret"
        },
        "confidentialPort": 0,
        "policyEnforcer": {},
        "mqttpubScope": "scopes:mqttpub", // scope text for pub permission
        "mqttsubScope": "scopes:mqttsub", // scope text for pub permission
        "mqttResPerfix": "res:" // prefix text for resource or topic
      };

const authbroker = new authBroker(config)

// hook it up
aedes.authenticate = authbroker.authenticate();
aedes.authorizeSubscribe = authbroker.authorizeSubscribe();
aedes.authorizePublish = authbroker.authorizePublish();

server.listen(port, function () {
    console.log("server listening on port", port);
});

有必要在凯克洛克的授权部分设置这些范围. 通过去fualt'scope:mqttpub'设定用于出版许可,而"scope:mqttsub"设定用于订阅许可.

Keycloak Scopes

用户可以发布或订阅具有"范围:mqttpub"或"范围:mqttsub"的资源.

Keycloak Resource

run-test.sh 脚本运行一个预配置的 Keycloak Demo 版本,可以用作模板.

bash run-test.sh

然后访问 http://localhost:8080, 用户名“ admin” 和密码“ admin” 在管理控制台.

捐款

contributions welcome

鼓励对下列技术有兴趣或有经验的任何人加入该项目. 如果你喜欢它,加入 电报组 给德夫斯打个招呼!

作者/贡献者

信用/灵感

MIT - 版权(c) 2019-2022 ioKloud

版本与发布记录

@authbroker/authbroker 共发布 8 个版本,首次发布于 2019/06/14;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.12latest2022/03/304 年前
0.0.112022/03/304 年前
0.0.102022/03/254 年前
0.0.52021/04/205 年前
0.0.42019/07/197 年前
0.0.32019/06/177 年前

关于 @authbroker/authbroker 的常见问题

@authbroker/authbroker 是什么?

HTTP/MQTT/CoAP经纪公司基于IOT或物联网的NodeJS认证和授权模块.

如何安装 @authbroker/authbroker?

在项目目录运行 npm install @authbroker/authbroker,或使用 pnpm add / yarn add / bun add。

@authbroker/authbroker 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/authbroker__authbroker 是否存在。

@authbroker/authbroker 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@authbroker/authbroker 可以商用吗?

@authbroker/authbroker 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@authbroker/authbroker 的下载量有多少?

根据 npm 官方下载统计,@authbroker/authbroker 在 2026/10/07 – 2026/11/05 这 30 天内被下载 7,568 次,日均约 252 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@authbroker/authbroker 还在维护吗?

最新版本 0.0.12 发布于 2022/03/30(4 年前);至今共发布 8 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/06/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。