searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

用户远程登录到容器的一种方案路线

2023-09-25 06:29:34
9
0

1.websocket介绍

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就可以直接创建持久性的连接,并进行双向数据传输。Websocket最大的优势在于服务器和客户端能够实时进行双向通信,在游戏、实时消息推送、在线聊天、实时数据展示等场景中,提供高效和稳定的数据传输。传统的HTTP通信中每次通信都需要客户端发起请求,服务器相应请求,且每次请求都要带上一些额外的信息,而websocket通过一次握手建立持久连接,之后的传输都不需要额外信息,减少了网络延迟。

2.查询容器远程登录信息

path参数

名称 类型 说明 示例
clusterName String 集群名 test

query参数

名称 类型 说明 示例
namespaceName String 命名空间名称 kube-system
podName String pod名称 pod-test
containerName String 容器名称 pod-test-1

3.实现逻辑如下:

1.对用户进行身份认证

2.获取集群配置,建立Kubernetes Client,并获得pod的ip地址,这是建立websocket连接的前提

3.根据入参创建JWT(JSON Web Token,一种用于在网络应用间传递安全信息的开放标准,提供了一种无状态、可扩展且安全的身份验证和授权机制),设置过期时间为5分钟。

4.对JWT进行签名

5.将返回的字符串作为请求query参数放在发起远程登陆请求的url中,客户端会根据请求url是否携带jwt来决定是否执行用户身份校验

6.如果用户携带jwt,会进行解密操作获取clusterName、podName等相关身份信息,如果身份信息与请求发送的信息一致,验证通过。反之,如果用户没有携带JWT或者错误携带JWT,身份认证都不会通过,无法成功远程登陆到容器中。

0条评论
0 / 1000
杨****仪
1文章数
0粉丝数
杨****仪
1 文章 | 0 粉丝
杨****仪
1文章数
0粉丝数
杨****仪
1 文章 | 0 粉丝
原创

用户远程登录到容器的一种方案路线

2023-09-25 06:29:34
9
0

1.websocket介绍

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就可以直接创建持久性的连接,并进行双向数据传输。Websocket最大的优势在于服务器和客户端能够实时进行双向通信,在游戏、实时消息推送、在线聊天、实时数据展示等场景中,提供高效和稳定的数据传输。传统的HTTP通信中每次通信都需要客户端发起请求,服务器相应请求,且每次请求都要带上一些额外的信息,而websocket通过一次握手建立持久连接,之后的传输都不需要额外信息,减少了网络延迟。

2.查询容器远程登录信息

path参数

名称 类型 说明 示例
clusterName String 集群名 test

query参数

名称 类型 说明 示例
namespaceName String 命名空间名称 kube-system
podName String pod名称 pod-test
containerName String 容器名称 pod-test-1

3.实现逻辑如下:

1.对用户进行身份认证

2.获取集群配置,建立Kubernetes Client,并获得pod的ip地址,这是建立websocket连接的前提

3.根据入参创建JWT(JSON Web Token,一种用于在网络应用间传递安全信息的开放标准,提供了一种无状态、可扩展且安全的身份验证和授权机制),设置过期时间为5分钟。

4.对JWT进行签名

5.将返回的字符串作为请求query参数放在发起远程登陆请求的url中,客户端会根据请求url是否携带jwt来决定是否执行用户身份校验

6.如果用户携带jwt,会进行解密操作获取clusterName、podName等相关身份信息,如果身份信息与请求发送的信息一致,验证通过。反之,如果用户没有携带JWT或者错误携带JWT,身份认证都不会通过,无法成功远程登陆到容器中。

文章来自个人专栏
容器-yangxy
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0