【发布时间】:2020-06-22 13:54:56
【问题描述】:
希望您能帮助解决这个问题。我们有一个基于浏览器的支持应用程序,它使用 SignalR 进行客户聊天。该解决方案包含两个 Web 应用程序:admin.[domain].com 和 support.[domain].com。两者都是 C# ASP.NET CORE 3.1 MVC 应用程序。
支持工程师使用管理应用程序来服务聊天。 SignalR 集线器托管在管理应用程序中。管理应用使用 ASP.NET CORE 身份进行身份验证和授权。
但是,支持应用程序没有身份机制 - 我们需要一个“低摩擦”解决方案,用户只需连接到 support.domain.com/{GUID},不需要密码。 GUID 是由支持工程师预先生成的 SignalR 组名称。到达这条路线后,支持应用会调用AddToGroup(GUID)。
SignalR 文档指出组不是一种有效的安全机制。但是,如果组名是 GUID,并且我们从不发送给所有客户端,那么这是一种相当安全的方法吗?
消息只能在组内发送或接收。 GUID 使组名非常安全,我原以为会这样。
如果群组名称是未知的 GUID,聊天是否容易被窃听?是否有比这种方法更好/更安全的替代方法,无需客户端输入密码?
【问题讨论】:
标签: signalr asp.net-core-signalr