IdentityServer4授权模式应用场景

Posted royzshare

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IdentityServer4授权模式应用场景相关的知识,希望对你有一定的参考价值。

OpenID 和 OAuth 的区别

  • OpenID:Authentication,即认证,用户是谁?
  • OAuth:Authorization,即授权,用户能做哪些操作?
  • OpenID Connect(OIDC):基于OAuth协议,是“认证”和“授权”的结合。

    OAuth2提供了Access Token来解决授权第三方客户端访问受保护资源的问题。 OIDC在这个基础上提供了ID Token来解决第三方客户端标识用户身份认证的问题。。

IdentityServer4

IdentityServer4 是 ASP.NET Core的一个包含OpenID Connect和OAuth 2.0协议的框架,提供了单点登录,集中控制,API访问控制等功能。

客户端模式(Client Credentials)

适用于和用户无关,机器与机器之间直接交互访问资源的场景。

POST https://api.oauth2server.com/token
    grant_type=client_credentials&
    client_id=CLIENT_ID&
    client_secret=CLIENT_SECRET

密码模式(resource owner password credentials)

适用于当前的APP是专门为服务端设计的情况。

POST https://api.oauth2server.com/token
  grant_type=password&
  username=USERNAME&
  password=PASSWORD&
  client_id=CLIENT_ID

简化模式(implicit flow)

适用于浏览器WEB应用,支持

  • 用户认证(javascript 应用或传统服务端渲染的Web应用)
  • 用户认证+授权(JavaScript应用)

简化模式下ID Token和Access Token都是通过浏览器的前端通道传递的。

所以如果是传统服务端Web应用并且仅是在服务端使用Access Token的话,推荐使用Hybrid Flow。
技术分享图片

授权码模式(Authorization code flow)

授权码模式通过后台传输Tokens,相对于简化模式会更安全一点。

但每当考虑使用授权码模式的时候,请使用混合模式。混合模式会首先返回一个可验证的ID Token并且有更多其他特性。

技术分享图片

混合模式(Hybrid flow)

适用于服务器端 Web 应用程序和原生桌面/移动应用程序。

混合模式是简化模式和授权码模式的组合。混合模式下ID Token通过浏览器的前端通道传递,而Access Token和Refresh Token通过后端通道取得。

参考


以上是关于IdentityServer4授权模式应用场景的主要内容,如果未能解决你的问题,请参考以下文章

从Client应用场景介绍IdentityServer4

第十一节:IdentityServer4授权码模式介绍和代码实操演练

IdentityServer4 自定义授权模式

IdentityServer4-前后端分离的授权验证

IdentityServer4-前后端分离的授权验证

IdentityServer4系列 | 授权码模式