带有REST API身份验证的WebRTC TURN服务器

迈克尔·P

我正在尝试从此处为webRTC设置rfc5766-turn-turn TURN服务器我可以使用turnuserdb.conf具有我的用户名和密码(my_user_name:my_password)文件成功通过此TURN服务器中继视频在网络客户端,我使用了:

"iceServers":{[
    "url": "turn:my_user_name,@turn_server_ip",
    "credential":"my_password"
}]

我正在尝试使用TURN服务器附带的REST API功能,以避免通过网络发送密码或将密码存储在客户端。在Rest API下遵循了这个规范这个解释

但是很遗憾,我收到401,但无法进行身份验证。

这就是我所做的:

  1. 我创建了一个秘密“ my_secret”,然后像这样运行转弯服务器:

    turnserver -v --syslog -a -L xx.xxx.xx.xx -X yy.yyy.yyy.yy -E zz.zzz.zz.zzz --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 --use-auth-secret --static-auth-secret=my_secret --realm=north.gov --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout -q 100 -Q 300 --cipher-list=ALL
    

    (我只是用替换了IP地址xx.xxx.xx.xx yy.yyy.yyy.yy zz.zzz.zz.zzz

  2. 后来我生成了一个时间戳,现在是+ 1小时,所以我运行了nodejs:

    Date.now()+1000*60*60;      // output 1433895918506.
    

    使用我的秘密该网站上生成了临时密码,并得到了结果0ca57806bdc696b3129d4cad83746945b00af77b

  3. 我将密码编码为base64

  4. 现在,我试图登录与Web客户端使用临时用户名之交服务器进行通信:1433895918506:my_user_name和密码MGNhNTc4MDZiZGM2OTZiMzEyOWQ0Y2FkODM3NDY5NDViMDBhZjc3Yg==,在网络客户端上,现在我用

    "iceServers":"url":"turn:1433895918506:my_user_name@turn_server_ip","credential":"MGNhNTc4MDZiZGM2OTZiMzEyOWQ0Y2FkODM3NDY5NDViMDBhZjc3Yg=="}]
    

但这不起作用,我得到:

401 user <1433895918506:my_user_name>  incoming packet message processed, error 401: Unauthorised.

您能帮我找出问题所在吗?

美度

当我使用您的姓名和密码生成凭据时,我1Dj9XZ5fwvKS6YoQZOoORcFnXaI=没有MGNhNTc4MDZiZGM2OTZiMzEyOWQ0Y2FkODM3NDY5NDViMDBhZjc3Yg==,请检查您的算法/代码是否有错误。

并且时间在Unix Timestamp中,所以以秒而不是毫秒为单位(尽管这不会影响,但只会使您的凭据永不过期)

检查您的系统和运行TURN服务器的系统是否时钟同步(至少间隔几天),通常,为了避免时钟不同步的问题,最好将ttl用作24小时,因此您的时间戳记:

timestamp=  parseInt(Date.now()/1000) + 24*3600

生成TURN凭证的代码:

var crypto = require('crypto');

function getTURNCredentials(name, secret){    

    var unixTimeStamp = parseInt(Date.now()/1000) + 24*3600,
        username = [unixTimeStamp, name].join(':'),
        password,
        hmac = crypto.createHmac('sha1', secret);
    hmac.setEncoding('base64');
    hmac.write(username);
    hmac.end();
    password = hmac.read();
    return {
        username: username,
        password: password
    };
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于通过REST API进行TURN服务器身份验证的说明

来自分类Dev

关于通过REST API进行TURN服务器身份验证的说明

来自分类Dev

带有QueryParamAuth身份验证器的REST Api-Yii2

来自分类Dev

带有QueryParamAuth身份验证器的REST Api-Yii2

来自分类Dev

在 REST 节点 js 服务器中进行身份验证,使用带有 Facebook 登录的 Android 客户端

来自分类Dev

Composer REST 服务器身份验证

来自分类Dev

带有 Java 套接字服务器的 Rest API

来自分类Dev

带有 Grapevine 的 WinForms REST API 服务器

来自分类Dev

没有服务器会话的身份验证

来自分类Dev

从Android到服务器的带有“身份验证”的多个文件传输协议

来自分类Dev

从Android到服务器的带有“身份验证”的多个文件传输协议

来自分类Dev

安全性:带有SSH身份验证的git服务器

来自分类Dev

具有多个资源服务器的OAuth 2.0身份验证服务器

来自分类Dev

openfire服务器在亚马逊云服务器中没有身份验证?

来自分类Dev

WebRTC是否需要“长期凭证”身份验证机制才能与TURN服务器一起使用?

来自分类Dev

带有SAML的REST API身份验证

来自分类Dev

Google Function HTTP触发器-服务器到带有服务帐户的服务器之间的身份验证问题

来自分类Dev

身份验证后在 Oauth 资源服务器上出现“UnknownSessionException:没有带有 id 的会话”

来自分类Dev

Azure AD是否具有可用作身份验证服务器的服务?

来自分类Dev

带有自定义服务器身份验证的Ember简单身份验证(凭据未定义)

来自分类Dev

带有护照和Nginx作为代理服务器的身份验证问题Node.js

来自分类Dev

通过带有密码的跳转服务器进行scp,使用私钥对目标进行身份验证

来自分类Dev

在没有TURN服务器的情况下,如何使用WebRTC解决NAT?

来自分类Dev

Codeigniter Rest服务器摘要或基本身份验证无法登录

来自分类Dev

服务器提供的Mocha Testing身份验证API

来自分类Dev

服务器提供的Mocha Testing身份验证API

来自分类Dev

用于具有 Azure 身份验证的私有 Web 服务器的 SSL 证书

来自分类Dev

带有REST API的Web服务器-Spring Boot-多servlet容器

来自分类Dev

带有REST API的Web服务器-Spring Boot-多servlet容器

Related 相关文章

  1. 1

    关于通过REST API进行TURN服务器身份验证的说明

  2. 2

    关于通过REST API进行TURN服务器身份验证的说明

  3. 3

    带有QueryParamAuth身份验证器的REST Api-Yii2

  4. 4

    带有QueryParamAuth身份验证器的REST Api-Yii2

  5. 5

    在 REST 节点 js 服务器中进行身份验证,使用带有 Facebook 登录的 Android 客户端

  6. 6

    Composer REST 服务器身份验证

  7. 7

    带有 Java 套接字服务器的 Rest API

  8. 8

    带有 Grapevine 的 WinForms REST API 服务器

  9. 9

    没有服务器会话的身份验证

  10. 10

    从Android到服务器的带有“身份验证”的多个文件传输协议

  11. 11

    从Android到服务器的带有“身份验证”的多个文件传输协议

  12. 12

    安全性:带有SSH身份验证的git服务器

  13. 13

    具有多个资源服务器的OAuth 2.0身份验证服务器

  14. 14

    openfire服务器在亚马逊云服务器中没有身份验证?

  15. 15

    WebRTC是否需要“长期凭证”身份验证机制才能与TURN服务器一起使用?

  16. 16

    带有SAML的REST API身份验证

  17. 17

    Google Function HTTP触发器-服务器到带有服务帐户的服务器之间的身份验证问题

  18. 18

    身份验证后在 Oauth 资源服务器上出现“UnknownSessionException:没有带有 id 的会话”

  19. 19

    Azure AD是否具有可用作身份验证服务器的服务?

  20. 20

    带有自定义服务器身份验证的Ember简单身份验证(凭据未定义)

  21. 21

    带有护照和Nginx作为代理服务器的身份验证问题Node.js

  22. 22

    通过带有密码的跳转服务器进行scp,使用私钥对目标进行身份验证

  23. 23

    在没有TURN服务器的情况下,如何使用WebRTC解决NAT?

  24. 24

    Codeigniter Rest服务器摘要或基本身份验证无法登录

  25. 25

    服务器提供的Mocha Testing身份验证API

  26. 26

    服务器提供的Mocha Testing身份验证API

  27. 27

    用于具有 Azure 身份验证的私有 Web 服务器的 SSL 证书

  28. 28

    带有REST API的Web服务器-Spring Boot-多servlet容器

  29. 29

    带有REST API的Web服务器-Spring Boot-多servlet容器

热门标签

归档