主题
OIDC
什么是OIDC
OIDC = (Identity, Authentication) + OAuth 2.0。 它在OAuth2.0上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。我们都知道OAuth2是一个授权协议,它无法提供完善的身份认证功能,OIDC使用OAuth2.0的授权服务器来为第三方客户端提供用户的身份认证,并把对应的身份认证信息传递给客户端,且可以适用于各种类型的客户端(比如服务端应用,移动APP,JS应用),且完全兼容OAuth2.0。
OIDC 优势
身份认证和授权。OAuth2不是身份认证(Authorization)协议,OIDC(OpenId Connect)可以进行身份认证(Authorization)。OIDC(OpenID Connect)是Authentication,即认证,对用户的身份进行认证,判断其身份是否有效,也就是让网站知道“你是你所声称的那个用户”;OAuth是Authorization,即授权,在已知用户身份合法的情况下,经用户授权来允许某些操作,也就是让网站知道“你能被允许做那些事情”。由此可知,授权要在认证之后进行,只有确定用户身份之后才能授权。
认证管控台注册应用

- 认证地址:客户端 注册地址,会用做 正则匹配校验
- 用户属性:认证端会根据应用选择属性返回
- 点击保存应用-协议,系统会自动为应用创建clientID和clientSecret。应用必须妥善保存这两项信息
基本原理

开发步骤
步骤一:调用authorize接口获取code
步骤二:调用token接口获取access_token以及Id Token
步骤三:调用获取公钥接口 用于验签Id Token ,并且有提供java版本的验签工具类
步骤四:调用获取用户信息接口可以获取用户详情
API列表
| 名称 | 说明 | 版本 |
|---|---|---|
| authorize | oidc的authorize接口(重定向方式) | |
| 获取AccessToken | oidc获取accessToken接口 | |
| 获取用户信息 | 获取用户的详细信息 | |
| 获取公钥 | 包含服务器的公钥,客户端可以使用这些公钥来验证CA颁发的访问令牌和ID令牌的数字签名 |

