SignalR 上的身份验证

Posted

技术标签:

【中文标题】SignalR 上的身份验证【英文标题】:Authentication on SignalR 【发布时间】:2020-06-19 03:13:27 【问题描述】:

我们有三个项目

    Angular JS => 用于前端 Asp.net Soap Web 服务 (.asmx) => 支持 Angular JS 项目的服务器代码。 ASP.NET MVC 项目 => 我们在此项目上实现 SignalR 以进行套接字通信。

现在我想对第三个项目实施身份验证。我们已经在第二个项目上实现了基于令牌的身份验证,所以我在想只在第三个项目上传递令牌然后通过调用 Web 服务(第二个项目)方法在第三个项目上验证它是否安全?另一种方法是我们在登录时为每个项目生成两个不同的令牌?最好的方法是什么?

【问题讨论】:

【参考方案1】:

使用第二个解决方案令牌对用户进行身份验证以调用您的 SignalR 集线器,这对您来说是安全且可能更容易的。如果您要使用与您的项目 n#2 相同的 signalR 来定位用户,则无需创建单独的身份验证。如果您区分项目 n#3 中的用户而不是 yes,则需要为此创建另一个令牌。

您可以在此microsoft documentation 中阅读有关 SignalR 身份验证和授权的更多信息。

【讨论】:

以上是关于SignalR 上的身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Blazor WebAssembly SignalR 身份验证

SignalR 不适用于 Windows 集成身份验证

使用参考令牌的 ASPNETCore SignalR 身份验证

SignalR - 使用访问令牌进行身份验证

通过查询字符串传递“承载”时,SignalR 身份验证失败

.Net SignalR 在还配置了 Cookie 身份验证时使用 JWT 承载身份验证