【问题标题】:Google IAP Authentication for WebSocketsWebSocket 的 Google IAP 身份验证
【发布时间】:2021-10-04 02:27:57
【问题描述】:

我们在 Google Compute VM 前面有一个 Google http(S) LB,我们正在将一个子域路由到后端,该后端只公开一个 wss 端点。我找不到任何关于如何使用 Google IAP 和 OIDC 令牌进行身份验证的 javascript 代码示例。

Google IAP 是否支持身份验证的查询参数? 我找到了这个条目:
Bearer authentication for websocket

感谢您的建议

【问题讨论】:

    标签: javascript google-cloud-platform google-oauth google-iap


    【解决方案1】:

    在 JavaScript WebSockets API 中没有方法可以从 JavaScript 自定义 WebSocket 标头,您仅限于从浏览器发送的“隐式”身份验证(即基本或 cookie)。此外,处理 WebSocket 的服务器与处理“正常”HTTP 请求的服务器完全分开是很常见的。这会使共享授权标头变得困难或不可能。实现这一目标的一种方法是使用基于“票证”的身份验证系统。

    • 当客户端代码决定打开一个 WebSocket 时,它会联系 HTTP 服务器获取授权“票”。

    • 服务器生成票证。它通常包含某种 用户/帐户 ID,请求票证的客户端的 IP,a 时间戳,以及您可能保存的任何其他类型的内部记录 需要。

    • 服务器存储此票证(即在数据库或缓存中),并且 将其返回给客户端。

    • 客户端打开 WebSocket 连接,并沿此发送 “票”作为初始握手的一部分。

    • 然后服务器可以比较这张票,检查源 IP,验证 票证未被重复使用且未过期,并执行任何操作 其他类型的权限检查。如果一切顺利,WebSocket 连接现已验证。

    请参阅websocket security 和相关堆栈帖子HTTP headers in websockets client APIWebsocket authentication 的链接。

    【讨论】:

      猜你喜欢
      • 2020-04-05
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 2018-02-24
      • 2020-03-21
      • 2014-04-30
      相关资源
      最近更新 更多