SRS 5.0的HTTP API支持鉴权了,感谢SRS开发者和GPT(GitHub Copilot)一起完成了代码、注释和双语文档。
How to Secure Your HTTP API
当你构建了SRS服务器后,你可以使用HTTP API来访问它,比如SRS控制台或者其他HTTP客户端。但是,你应该保护好你的HTTP API,防止未授权的访问。本文介绍如何保护你的HTTP API。
Usage
首先,请升级SRS到5.0.152+或者6.0.40+,这些版本支持HTTP API鉴权。
然后,请通过配置http_api.auth
来启用HTTP Basic Authentication:
# conf/http.api.auth.conf
http_api {
enabled on;
listen 1985;
auth {
enabled on;
username admin;
password admin;
}
}
接着,用这个配置启动SRS:
./objs/srs -c conf/http.api.auth.conf
或者,通过环境变量设置用户名和密码:
env SRS_HTTP_API_ENABLED=on SRS_HTTP_SERVER_ENABLED=on \
SRS_HTTP_API_AUTH_ENABLED=on SRS_HTTP_API_AUTH_USERNAME=admin SRS_HTTP_API_AUTH_PASSWORD=admin \
./objs/srs -e
现在,你可以访问下面的地址来验证:
- • 提示输入用户名和密码:http://localhost:1985/api/v1/versions
- • 带用户名和密码的URL:http://admin:admin@localhost:1985/api/v1/versions
要清除用户名和密码,你可以通过用户名访问HTTP API:
- • http://admin@localhost:1985/api/v1/versions
注意:请注意,我们只针对HTTP API开启了鉴权,不包括HTTP服务器和WebRTC HTTP API。
SRS Console
SRS控制台是一个基于SRS的HTTP API的Web应用,它可以让你方便的管理SRS服务器。当SRS启动后,你可以访问SRS控制台:http://localhost:8080/console/
如果你开启了HTTP API鉴权,你可以在访问控制台URL时带上用户名和密码:http://admin:admin@localhost:8080/console/
否则,浏览器会提示输入用户名和密码。
For SRS 4.0
SRS 4.0不支持HTTP API鉴权,有些可选的解决方案。你可以用Nginx来做反向代理,然后在Nginx中配置鉴权。或者用Go语言编写一个简单的HTTP代理。
Browser ---HTTP-with-Authentication---> Nginx ---HTTP---> SRS 4.0
你需要修改HTTP API侦听的端口,比如:
http_api {
enabled on;
listen 127.0.0.1:1985;
}
这样,HTTP API就只能被本机的代理访问了。
About WebRTC API Security
SRS不支持WebRTC相关的HTTP API的鉴权,因为WebRTC鉴权是通过HTTP回调来实现的。
请参考WebRTC回调和Token鉴权等文档。
Conclusion
这篇文章是我和GitHub Copilot一起写的。
代码实现是SRS开发者,和GitHub Copilot一起写的。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。