我很难决定如何最好地为我的SignalR服务添加身份验证和授权。
目前,它与WebApi2 Web服务一起托管在Owin中。我使用OAuth2承载令牌来验证这些令牌,并且它完美地运行。但是,我想知道它们是否适合SignalR?
我的客户端是基于JavaScript的,SignalR使用WebSockets(如果可用)。这意味着我无法使用Authorization标头。我发现在连接之前我可以使用qs属性提供令牌。但是,OAuth2访问令牌当然会过期(在我的实现中相对较短)。我假设更新qs属性一旦连接(特别是使用Web套接字),就不会产生任何影响。
我想我的问题是向SignalR提供安全令牌,票证或任何类型的授权信息的最佳方法是什么?最好是一种可以在我的WebApi和SignalR上保持一致的方式,但我想知道我应该做什么。
由于
答案 0 :(得分:1)
现在已经有一段时间了 - 但我们过去常常在signalR请求中查找auth cookie,以确保只有已登录的用户才能订阅信号通知。
它没有处理令牌过期的情况 - 因为cookie仅在连接时被检查。这对我们来说不是问题。