coturn是webrtc项目nat穿透必备的服务器,它包含了STUN/TURN的实现。这里简单讲一下其认证机制,可以概括为四种,都是可以通过修改配置文件/etc/turnserver.conf实现的。
1)无认证(允许匿名访问),在配置文件中的选项为no-auth,开启这一选项,即使有一个user选项开启了(在配置文件或者命令行或者usersdb文件中),no-auth也会被启用;但如果no-auth,user,lt-cred-mech都没有开启,默认是开启no-auth。
2)长期凭据机制,在配置文件中的选项为lt-cred-mech,如果no-auth和lt-cred-mech都未开启,但有一个user选项开启了(在配置文件或者命令行或者usersdb文件中),lt-cred-mech也会被自动开启。
3)时间有限的长期凭据,在配置文件中的选项为use-auth-secret,需要实现TURN REST API使用认证秘密,可以在数据库的turn_secret table里查询,这是动态认证秘密,turn_secret table里的秘密不固定,可以修改。
4)静态认证秘密,在配置文件中的选项为static-auth-secret,需要实现TURN REST API使用认证秘密,这是3)的简单情形,即指定一个固定不变的秘密。
实际使用中,2)和4)是常见的。