• Mosquitto搭建Android推送服务(四)Mosquitto服务器用户登录与权限配置


    文章钢要:

    1、对服务器进行多用户配置

    2、根据不同用户给予不同权限

    一、Mosquitto的用户机制

    mosquitto中可以添加多个用户,只有使用用户名和密码登陆服务器才允许用户进行订阅与发布操作。可以说用户机制是mosquitto重要的安全机制,增强服务器的安全性。

    用户与权限配置需要修改3处地方:

    1、mosquitto中最最最重要的配置文件mosquitto.conf。

    2、pwfile.example (保存用户名与密码)

    3、aclfile.example (保存权限配置)

    首先给我们的服务器增加2个用户,一个叫userName密码是1,一个叫userName2 密码是2

    第一步:

    打开mosquitto.conf文件,找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录,默认是true。

    我们需要将allow_anonymous节点前面的"#"去掉,然后后面写false。不允许匿名用户登录。如下:

    修改前:#allow_anonymous

    修改后:allow_anonymous false

    第二步:

    找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里

    将前面的“#”去掉,并且在后面写上pwfile.example文件的路径,注意:是绝对路径。例如:

    修改前:#password_file

    修改后:password_file /etc/mosquitto/pwfile.example (这里的地址根据自己文件实际位置填写)

    第三步:

    创建用户名和密码,打开命令窗口。键入:mosquitto_passwd -c /etc/mosquitto/pwfile.example userName

    然后键入2次密码,用户创建成功。

    -c 创建一个用户

     /etc/mosquitto/pwfile.example  创建到pwfile.example文件中

    userName 创建的用户名

    此时userName用户创建完毕。

    第四步:

    创建userName2用户。

    在命令窗口键入mosquitto_passwd /etc/mosquitto/pwfile.example userName2

    输入2次密码,用户创建成功

    注意:第二次输入用户不用-c ,如果加上-c会将以前创建的用户覆盖。

    至此用户创建完毕。

    打开pwfile.example看一下结果,类似下图,KKLL与KKLL2为用户,“:”后面是加密的密码

     

    二、Mosquitto权限

    Mosquitto权限是根据topci控制的,类似与目录管理。您可以设定每个用户订阅/发布权限,也可以设定每个用户可访问的topic范围,从而达到权限控制的目的。

    这里我们需要用到刚才创建的2个用户。

    userName 设置为订阅权限,并且只能访问的主题为"root/123/#"

    userName2 设置为发布权限,并且只能访问的主题为"root/123/#"

    如果用userName进行发布是不会成功的,反过来用userName2进行订阅同样不会接受到任何信息。因为他们的权限不同。

    第一步:增加Mosquitto权限

    打开aclfile.example,在最下面键入如下文字:

    user userName

    topic read root/123/#

    user userName2

    topic write root/123#

    --------------------------------

    read 订阅权限

    write 发布权限

    # 通配符,表示所有的

    保存退出。

    如下图所示:

     

    第二步:修改Mosquitto.conf

    打开Mosquitto.conf文件,找到acl_file节点。修改其内容所示:

    修改前:

    #acl_file

    修改后:

    acl_file /etc/mosquitto/aclfile.example

    将前面的#号去掉,后面地址根据自己文件实际位置填写

     三、测试

    订阅:

    mosquitto_sub -t root/123/# -u userName -P 1 

    注意:-P中的P为大写。

    发布:

    mosquitto_pub -t root/123/123 -u userName2 -P 2 -m "hello word!!!" 

    在订阅端会收到hello word信息。

    对服务器的权限用户设置完毕。

  • 相关阅读:
    构建自己的PHP框架--定义ORM的接口
    装X神器--Hacker Typer
    inno setup读取注册表遇到的一个坑
    一个简单的inno setup模板
    Android Studio导入项目非常慢的解决办法
    Android Studio快捷键每日一练(6)
    Android Studio快捷键每日一练(5)
    Android Studio快捷键每日一练(4)
    Android中的FragmentManager的问题
    Android Studio快捷键每日一练(3)
  • 原文地址:https://www.cnblogs.com/yinyi521/p/6111583.html
Copyright © 2020-2023  润新知