欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

OpenID Connect Core 1.0(三)验证

程序员文章站 2022-04-06 19:53:43
OpenID Connect执行终端用户登录或确定终端用户已经登录的验证工作。OpenID Connect 使服务器以一种安全的方式返回验证结果。所以客户可以依靠它。出于这个原因,在这种情况下客户被称为依赖方(RP)。 验证结果在返回ID令牌中,ID令牌定义(第二节)。它声明表达这些信息作为发行人, ......

openid connect执行终端用户登录或确定终端用户已经登录的验证工作。openid connect 使服务器以一种安全的方式返回验证结果。所以客户可以依靠它。出于这个原因,在这种情况下客户被称为依赖方(rp)。

验证结果在返回id令牌中,id令牌定义(第二节)。它声明表达这些信息作为发行人,标识符,认证到期时间等。

验证可以按照三种方式:

1、授权码流程( response_type=code );

2、隐式流程( response_type=id_token token 或 response_type=id_token );

3、混合流程 (使用其他响应类型值在 oauth 2.0中定义的多个响应类型编码实践 [oauth.responses])。流程确定以何种方式以id令牌和访问令牌返回给客户端。

接下来对三个流程的特点进行了总结,显示在非规范化表中。该表的目的是提供一些指导在特定的上下文中选择哪一个流程。

属性

授权码流程

隐式流程

混合流程

从授权终结点返回所有令牌

从令牌终结点返回的所有令牌

令牌不显示用户代理

客户端可以通过验证

可刷新令牌

一次往返即沟通完成

多用于服务器到服务器通信

可变

 

 

 

 

 

 

 

 

 

 

 

 

使用哪种流程取决于授权请求中的response_type值。下列就是各种response_type 值选择对应的流程:

response_type值

流程

code

authorization code flow

id_token

implicit flow

id_token token

implicit flow

code id_token

hybrid flow

code token

hybrid flow

code id_token token

hybrid flow

 

 

 

 

 

 

 

 

 

 

 

所有这些响应类型的值除了code均定义在oauth 2.0 (rfc6749)中,oauth 2.0中定义多个响应类型编码实践 (oauth.responses) 规范。注意:虽然oauth 2.0还定义了令牌隐式流程响应类型值,但openid connect不使用这种响应类型,因为没有id令牌返回。