我拿到票据了, 可以卖肉了吗?
SSO: 只能买一两, 不能再多了
单点登录的认证过程是如何的, 比方说单点登录服务D, 子系统A和B, A B D和浏览器之间是如何通信的
以下是单点登录(SSO)过程的详细步骤:
- 用户尝试访问子系统A。
- 子系统A检查用户是否已登录(例如检查本地会话)。
- 子系统A发现用户未登录,将用户重定向到单点登录服务D的登录页面。
- 用户在单点登录服务D的登录页面上输入用户名和密码。
- 用户提交登录表单。
- 单点登录服务D验证用户凭据。
- 验证成功后,单点登录服务D生成Token(如JWT)和子系统A的服务票据。
- 单点登录服务D将用户重定向回子系统A,并附加服务票据。
- 子系统A接收服务票据,并向单点登录服务D验证服务票据。
- 验证成功后,子系统A将用户标记为已登录,并允许访问资源。
- 用户尝试访问子系统B。
- 子系统B检查用户是否已登录。
- 子系统B发现用户未登录,但注意到浏览器已经有了来自单点登录服务D的Token。
- 子系统B将Token发送到单点登录服务D以验证其有效性。
- 单点登录服务D验证Token,并为子系统B生成服务票据。
- 单点登录服务D将服务票据发送回子系统B。
- 子系统B接收服务票据,并将用户标记为已登录。
- 用户现在可以访问子系统B的资源。
大概的过程如下:
单点登录(SSO)过程中, 子系统A接收服务票据,并向单点登录服务D验证服务票据, 为什么要进行这一步骤, 没有这一个步骤行不行
在单点登录(SSO)过程中,子系统A接收服务票据并向单点登录服务D验证服务票据这一步是确保安全性的重要步骤。这有以下几个原因:
- 防止伪造服务票据:验证服务票据可以确保票据是由单点登录服务D颁发的,而不是伪造的。如果不进行这个步骤,攻击者可能会伪造服务票据,尝试绕过身份验证过程,访问受保护的资源。
- 验证票据有效性:服务票据可能包含过期时间、签名等信息。通过验证服务票据,子系统A可以确保票据未过期且未被篡改。
- 获取用户信息:服务票据可能包含用户的相关信息(如用户ID、角色等)。子系统A可以通过验证服务票据来获取这些信息,并在处理请求时使用这些信息。
如果跳过这一步,子系统A将无法确认服务票据的真实性和有效性,从而可能导致安全漏洞。因此,在单点登录过程中,验证服务票据是非常重要的一环。
版权归原作者 洪宏鸿 所有, 如有侵权,请联系我们删除。