OpenID Connect Core 1.0(三)验证
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令牌返回。
推荐阅读
-
Asp.net Core 2.0 OpenId Connect Handler缺失Claims?
-
.NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证
-
OpenID Connect Core 1.0(八)从第三方发起登录
-
OpenID Connect Core 1.0(五)使用授权码流验证(下)
-
OpenID Connect Core 1.0(三)验证
-
OpenID Connect Core 1.0(七)使用混合流验证
-
OpenID Connect Core 1.0(六)使用隐式验证流
-
OpenID Connect Core 1.0(四)使用授权码流验证(上)
-
asp.net core系列 56 IS4使用OpenID Connect添加用户认证
-
ASP.NET Core 1.0 路由、静态文件、身份验证简介、自定义中间件