Client ID认证「建议收藏」

Client ID认证「建议收藏」1.插件ClientID认证使用配置文件预设客户端ClientID与密码,支持通过HTTPAPI管理认证数据。ClientID认证不依赖外部数据源,使用上足够简单轻量,使用该种认

大家好,又见面了,我是你们的朋友全栈君。

1.插件

  Client ID 认证使用配置文件预设客户端Client ID 与密码,支持通过 HTTP API 管理认证数据。
  Client ID 认证不依赖外部数据源,使用上足够简单轻量,使用该种认证方式时需要开启 emqx_auth_clientid插件,直接在DashBoard中开启即可,
 

2.哈希方法

  Client ID 认证默认使用 sha256 进行密码哈希加密,可在 etc/plugins/emqx_auth_clientid.conf 中更改: 
    # etc/plugins/emqx_auth_clientid.conf
    ## Value: plain | md5 | sha | sha256
    auth.client.password_hash = sha256

  配置哈希方法后,新增的预设认证数据与通过 HTTP API 添加的认证数据将以哈希密文存储在 EMQ X 内置数据库中。

 

3.预设认证数据

  可以通过配置文件预设认证数据,编辑配置文件: etc/plugins/emqx_auth_clientid.conf
    ## Value: plain | md5 | sha | sha256
    auth.client.password_hash = sha256
  插件启动时将读取预设认证数据并加载到 EMQ X 内置数据库中,节点上的认证数据会在此阶段同步至集群中。
  预设认证数据在配置文件中使用了明文密码,出于安全性与可维护性考虑应当避免使用该功能。
 

4.HTTP API 管理认证

  我们使用VSCode来通过EMQ X的API来添加和查看Client ID的认证数据。

  1:添加认证数据API 定义: POST api/v4/auth_clientid{ “clientid”: “emqx_c”, “password”: “emqx_p”}
    ####添加clientId和密码#####
    POST http://{{hostname}}:{{port}}/api/v4/auth_clientid HTTP/1.1
    Content-Type: {{contentType}}
    Authorization: Basic {{userName}}:{{password}}
    {“clientid”: “emq-client1″,”password”: “123456”}

   使用 POST 请求添加 clientid 为 emq-client1 password 为 123456 的认证信息,返回信息中 code = 0 即为成功。 
  2:查看已经添加的认证数据API 定义: GET api/v4/auth_clientid
    #############获取所有详细信息########
    GET http://{{hostname}}:{{port}}/api/v4/auth_clientid HTTP/1.1
    Content-Type: {{contentType}}
    Authorization: Basic {{userName}}:{{password}} 
  3:更改指定 Client ID 的密码API 定义: PUT api/v4/auth_clientid/${clientid}{ “password”:”emqx_new_p”}
  指定 Client ID,传递新密码进行更改,再次连接时需要使用新密码进行连接:

    #############更改指定 Client ID 的密码########
    PUT http://{{hostname}}:{{port}}/api/v4/auth_clientid/emq-client1 HTTP/1.1
    Content-Type: {{contentType}}
    Authorization: Basic {{userName}}:{{password}}
    {
      ”password”: “654321”
    }
  4:查看指定 Client ID 信息API 定义: GET api/v4/auth_clientid/${clientid}
  指定 Client ID,查看相关 Client ID、密码信息,注意此处返回的密码是使用配置文件指定哈希方式加密后的密码:
    #############获取指定ClientId详细信息########
    GET http://{{hostname}}:{{port}}/api/v4/auth_clientid/emq-client1 HTTP/1.1
    Content-Type: {{contentType}}
    Authorization: Basic {{userName}}:{{password}} 
  5:删除认证数据API 定义: DELETE api/v4/auth_clientid/${clientid}
  删除指定 Client ID:
    #############删除指定的client信息########
    DELETE http://{{hostname}}:{{port}}/api/v4/auth_clientid/emq-client1 HTTP/1.1
    Content-Type: {{contentType}}
    Authorization: Basic {{userName}}:{{password}}

 

5MQTTX客户端验证

  
Client ID认证「建议收藏」

  用户名随便输一个,可以随便填写

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154562.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2022.01.12激活码永久[最新免费获取]2022.03.02

    (idea2022.01.12激活码永久)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40ZKSWCX8G-eyJsaWNlb…

    2022年4月2日
    60
  • AutoEventWireup

    AutoEventWireup
      Google了一番,大家讨论AutoEventWireup问题可不少,Page指令的AutoEventWireup属性被设置为true(或者如果缺少此属性,因为它默认为true),该页框架将自动调用页事件,即Page_Init、Page_Load等14个方法,在这种情况下,不需要任何显式的Handles子句或委托。但这是怎么实现的呢?.net又怎样根据AutoEventWireup属性来动态编译或者预编译页面呢?我在Google上没有找到答案。
     

    2022年5月28日
    36
  • app软件开发的基本流程_app项目开发流程

    app软件开发的基本流程_app项目开发流程 本文转载自互联网,如有侵权,请联系我及时删除。谢谢。(一)项目启动前  从事产品的工作一年多,但自己一直苦于这样或者那样的困惑,很多人想要从事产品,或者老板自己创业要亲自承担产品一职,但他们对产品这个岗位的认识却不明晰,有的以为是纯粹的画原型,有的是以为做项目管理跟踪项目进度,有的是做竞品分析给老板看。实际上,这些都不是产品经理的核心和重点。在较为成熟的企业,因为产品的壮大和人员的增多,…

    2025年6月26日
    4
  • 手机兼容性测试_浏览器兼容性测试工具

    手机兼容性测试_浏览器兼容性测试工具AndroidApp兼容性测试,是一个比较重要的App评价内容说到测试阶段,兼容性测试主要是对App在各类机型上的兼容、适配等情况进行测试。搞清楚这一阶段的测试重点后,因此,AndroidApp在进行兼容性测试前,一定要做好其前序测试内容,否则兼容性测试效果将会较差。1.机型配置问题Android兼容测试一定要做到宽范围覆盖,如果做不到这个,那么就违背了兼容性测试的目标——测试App在各类机型、系统上的运行是否兼容、适配。因此,兼容性测试必须要在各个机型、系统上对App进行运行、测.

    2025年7月23日
    4
  • java的方法分为两大类型,java题库

    1.Java程序主要分为两种类型:应用程序和。2.Java程序用{}将多条语句组合在一起,语句之间必须用;隔开。3.在类声明中提供类标志的关键字是class。4.一个Java源程序编译后会生成一个扩展名为.class的字节码文件。5.应用程序编译后生成字节码文件,由Java.exe直接解释执行…

    2022年4月9日
    45
  • MongoDB高级操作(管道聚合)

    MongoDB高级操作(管道聚合)一、 聚合aggregate聚合(aggerate)主要用于计算数据,类似于SQL中的sum(),avg(),聚合aggregate是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果。方法:db.stu.aggergate({管道:{表达式}}),如图:二、管道(grep)在Mon…

    2025年8月4日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号