GPT帮助SRS 5.0支持HTTP API鉴权

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 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论