NMS内建支持简单且非常安全的,基于密码和过期时间的鉴权模式。
与阿里云的直播鉴权模式比较类似。
开启方法
打开config.ini
鉴权密码
1 |
auth_key = authkey@2019 |
播放鉴权开关
1 |
auth_play = 1 |
0-关闭,1-打开
推流鉴权开关
1 |
auth_push = 1 |
0-关闭,1-打开
使用方法
鉴权原理就是将流地址中的信息+过期时间+密码的字符串,再md5后作为最后参数发给NMS进行判断。
比如一个原始流地址是
rtmp://example.com/live/stream
- 它的流信息就是
/live/stream - 我们希望生成的url在30秒后过期,那么取出当前的unix时间(单位秒)+ 30
1575453962 - 密码是上面设置的
authkey@2019 - 组合在一起的字符串是
/live/stream-1575453962-authkey@2019各参数间使用 – 符号连接 - 对这个字符串进行md5
22d7d03aa3fe7d880f29bed08ccb25f0 - 最终url是
rtmp://example.com/live/stream?sign=1575453962-22d7d03aa3fe7d880f29bed08ccb25f0sign字段名是nms约定,不能更改
安全性
md5后的验证信息包含了流信息,过期时间,密码3个要素,
就算链接地址被截取或公开,也无法修改流地址,过期时间。
url过期后也无法继续使用。
安全提示
url的生成,最好放在web服务端生成后返回给客户端,客户端直接用于连接。
避免在客户端保存密码并生成,导致程序反编译后密码泄露
过期的时间越短安全度越高,但也需要考虑网络连接时间,操作速度,客户端服务端时间差等因素。
url过期后无法继续试用,断线后重连需要重新生成。
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: NMS v3系列教程之 六、直播鉴权