OIDC 主要角色
OIDC 主要角色包括:
- End User(EU):资源所有者,即用户;
- Relying Party(RP):指代在 OAuth 2.0 中,受信任的客户端,身份认证和授权信息的消费方;
- ID Token:包含 EU 身份认证信息的 JWT 格式数据,是用户的身份凭证;
- OpenID Provider(OP):有能力提供身份认证的服务方;
- UserInfo Endpoint:受 OAuth 2.0 保护的用户信息接口,此接口必须使用 HTTPS,能够当 RP 使用 ID Token 访问时返回用户的信息。
OIDC 认证流程

授权码流程
是一种在原有 Code 基础上增加了一个 ID Token,同时基于 OAuth 2.0 的授权码流程。即在用户进入授权页面点击登录时,授权服务器会给受信任的第三方应用返回一个 Code,用来换取 ID Token 和 Access Token。之后第三方应用就可以利用 Access Token 前往资源服务器获取用户信息,并在前端存放作为身份凭证的 ID Token。

隐式流程
相比于授权码流程,隐式流程更加简单,但这一身份验证方法并不安全。同时因为其不支持返回 Refresh Token,所以一旦登录过期,就需要重新进行登录。隐式流程常用于在浏览器中运行的 JavaScript 应用程序。

混合流程
混合流程是授权码流程和隐式流程的组合,可以一次性通过授权接口,将 Code、ID Token、Access Token 返回给客户端,同时利用 Code 换取 Refresh Token,在后端刷新 Access Token,从而避免用户重复登录。
OIDC 和 SAML 的差异
OIDC 是在 OAuth 的基础之上进行扩展,通过扩展身份层,来实现去中心化的身份验证服务。在 OpenID 开源社区启动的 OpenID 的开发项目中,基金会表示现在已有来自超过 50,000 多个网站的 10 亿多个用户账号启用 OpenID,以管理支持包括 OIDC 身份验证等在内的基础架构。SAML 2.0 则是一个开放标准,自 2003 年以来,一直提供身份验证和授权功能给商用、私用身份提供程序(IdP)和服务提供程序(SP)。
亚马逊云科技 OIDC 相关产品

Amazon Identity and Access Management(IAM)
安全地管理身份以及对亚马逊云科技服务和资源的访问