2014-09-29 11 views
5

我打算通过coturn - https://code.google.com/p/coturn/为WebRTC应用运行我自己的TURN服务。手册说,这个有关身份验证和证书:对于WebRTC与TURN服务器一起工作,是否需要*'长期凭证'认证机制?

... 

    -a, --lt-cred-mech 
      Use long-term credentials mechanism (this one you need for WebRTC usage). This option can be used with 
      either flat file user database or PostgreSQL DB or MySQL DB or MongoDB or Redis for user keys storage. 

    ... 

此客户端的代码示例还表明,凭据需要TURN:

// use google's ice servers 
var iceServers = [ 
    { url: 'stun:stun.l.google.com:19302' } 
    // { url: 'turn:192.158.29.39:3478?transport=udp', 
    // credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 
    // username: '28224511:1379330808' 
    // }, 
    // { url: 'turn:192.158.29.39:3478?transport=tcp', 
    // credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 
    // username: '28224511:1379330808' 
    // } 
]; 
  • 难道他们总是需要? (Coturn可以在没有任何认证机制的情况下运行,但是从手册页不清楚是否严格为要求 for WebRTC工作)
  • 如果需要,我可以创建一组凭据并将其用于所有客户呢? (客户端代码示例显然只是为了演示,但似乎表明您可能会将凭据硬编码到客户端代码中。如果这不可行/不值得推荐,那么将推荐的方法将适当的凭据传递给客户方代码?)

回答

10

测试之后,似乎传递凭据工作需要为客户方代码(在控制台得到一个错误,否则)。

在Coturn中启用“no-auth”选项(或者留下lt-cred-mech和st-cred-mech评论)但仍然在应用程序JS中传递证书也不起作用,因为TURN消息以某种方式使用密码凭证进行签名。也许Coturn并不希望客户端发送验证细节,如果它运行在无验证模式下,所以它不知道如何解释这些消息。

解决方案

打开LT-名气机甲进行硬编码的用户名和密码均Coturn配置文件,以及JS的应用,似乎工作。在Coturn配置文件中注释了“静态用户”条目 - 使用明文密码格式而不是密钥格式。

Coturn配置(这是整个配置文件我得到了它的工作):

fingerprint 
lt-cred-mech 
#single static user details for long-term authentication: 
user=username1:password1 
#your domain here: 
realm=mydomain.com 

ICE服务器列表从Web应用JS:

var iceServers = [ 
    { 
     url: 'turn:123.234.123.23:3478', //your TURN server address here 
     credential: 'password1', //actual hardcoded value 
     username: 'username1' //actual hardcoded value 
    } 
]; 

这显然没有提供实际的安全TURN服务器,因为凭证对任何人​​都可见(所以任何人都可以使用带宽和处理器时间作为中继)。

总结:

  • 是,实现WebRTC使用TURN长期认证是必需的。
  • 是的,看起来你可以硬编码一套凭据供每个人使用 - coturn并不担心两个客户端同时获得相同的凭据分配。
  • 一个可能的解决方案,以最小的麻烦适当的安全将是Coturn支持的TURN REST API
+0

Tks for info bud – 2014-10-14 09:58:37

+0

如果您想提供TURN和STUN服务,您可能需要使用'cert'和'pkey'属性将配置文件添加到域信任证书和私钥中。 – logoff 2015-02-18 14:14:00

相关问题