一、Oauth2.0
时序图
为什么图中第4步是返回code,而不是直接返回AccessToken?
答:因为第4步是带着code通过url重定向的方式返回到业务方页面,这时候如果直接将AccessToken放到url里,存在安全风险。如浏览器历史记录可保留记录。
二、OIDC
OpenID Connect 是基于 OAuth 2.0 的身份认证协议,增加了Id Token。
时序图
Access Token和ID token区别
- Access Token 的格式可以是JWT也可以是一个随机字符串,不要试图从中解析信息
- Id Token 的格式为 JWT,包含用户的基本信息(用户名、头像等)
三、SAML2
它是一个基于XML的标准协议
- 浏览器:SP 和 IdP 借助浏览器互相通信
- SP:资源提供方
- IdP:身份认证提供方
时序图
- 用户试图登录 SP 提供的应用。
- SP 生成 SAML Request,通过浏览器重定向,向 IdP 发送 SAML Request。
- IdP 解析 SAML Request 并将用户重定向到认证页面。
- 用户在认证页面完成登录。
- IdP 生成 SAML Response,通过对浏览器重定向,向 SP 的 ACS 地址返回 SAML Response,其中包含SAML Assertion 用于确定用户身份。
- SP 对 SAML Response 的内容进行检验。
- 用户成功登录到 SP 提供的应用。