IdentityServer4 OAuth2.0和Open Connect概念

1.Auth2.0简介

1.1Auth2.0是一个委托协议,它可以让那些控制资源的人允许某个应用以代表他们来访问他们控制的资源,

注意是代表这些人,而不是假冒或模仿这些人。这个应用从资源的所有者哪里获得授权(Authorization)和

(访问令牌)access token,随后就可以使用这个access token来访问资源。

(1)关于授权Authorization

(2)Access Token

(3)支持各种客户端

Auth2.0授权Authorization(你能干什么)

OpenId Connect身份认证Authentication(你是谁)

 

 

 

 

 

1.2授权类型(Authorization Grant)

授权码模式(Authorization Code) 授权服务器 适合MVC

简化模式(Implicit) 适合浏览器应用,比如Anglar

密码模式(Resource Owner Password Credentials) 资源所有者和客户端应用之间高度信用

客户端模式(Client Credentials)

(Device Code)

(Refresh Token)

 

1.3端点(Endpoint)

授权端点(Authorization Endpoint)

Token端点(令牌端点)(Token Endpoint)

 

 

 

1.4范围(Scope)

代表资源所有者在被保护资源那里的一些权限。

 

1.5Access Token

有时候就叫Token

用来访问被保护资源的凭据

代表了给客户端颁发的授权,也就是委托给客户端的权限

描述出Scope,有效期

 

1.6Refresh Token

用来获取Access Token的凭据

用Authorization Server(授权服务器)颁发给客户端应用

可选

具备让客户端应用逐渐降低访问权限的能力

 

 

 

1.7发生错误时

error

error_description

error_url

state

 

 

 

2.OpenId Connect

OAuth2.0不是身份认证协议

什么是什么认证?

它可以告诉应用程序当前的用户是谁,还有这些用户是否正在使用你的应用程序。

它是一种安全架构,它可以告诉你用户是他们所声明的身份,通常呢,是通过提供

一套安全凭据(例如用户名和密码)给应用程序来证明这一点。

 

2.1身份认证VS授权

身份认证Authentication

授权Authorization

OpenId Connect基于OAuth2.0,在此之上,它添加了一些组件来提供身份认证的能力

OpenId Connect是建立在OAuth2.0协议上一个简单的身份标识层,OpenId Connect兼容OAuth2.0 

 

2.2OAuth2.0与身份认证协议的角色映射

 

 

 

2.3为什么不使用OAuth2.0里的Access Token来解决身份认证的问题?
Access Token不含有身份认证的信息

生命周期可能很长,用户离开了,它仍然有效

Access Token 可能被其它客户端借用

Access Token 不是为客户端准备的,它对客户端不透明,但是客户端可以从Access Token里得到一些用户信息。

Access Token的真正的目标观众是被保护的资源

 

2.4OpenId Connect

ID Token

UserInfo 端点

提供一组标识身份的Scopes和Claims(profile,email,address,phone)

 

 

OpenId Connect三个流程

授权码(Authorization Code Flow)

简化模式(Implicit Flow)

混合流程(Hybrid Flow)

posted @ 2021-12-28 00:02  peng_boke  阅读(305)  评论(0编辑  收藏  举报