第73篇 IdentityServer4的简单介绍

1.什么是IdentityServer4?

它是一个中间件服务框架,集成OIDC与OAuth2.0,
方便搭建任意多个项目。

IdentityServer4的组成

  • Identity身份
  • Server服务器
  • 4版本

源代码:https://github.com/IdentityServer 【1 ~ 4】
demo:https://demo.identityserver.io/

1.1 Ids4能做些什么?

  • 主要的单体应用,微服务使用不多,还不如使用jwt等状态码
  • 保护你的资源
  • 颁发令牌、验证令牌、刷新令牌
  • 使用本地帐户或通过外部身份提供程序对用户进行身份验证
  • 提供会话管理和单点登录
  • 管理和验证客户机
  • 支持非常多的协议实现和可扩展点

2.常见术语解析

image

3.学习过程中的知识点

3.1 JWT与OAuth2.0 👉

  • JWT是一种具体的,自身包含特定声明逻辑的,Token实现框架。(账号密码登录
    JWT提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。 令牌(Token)本身包含了一系列声明,应用程序可以根据这些声明限制用户对资源的访问。

  • OAuth一种授权协议,是规范,不是实现。(QQ授权机制)
    OAuth2是一种授权框架,提供了一套详细的授权机制。用户或应用可以通过公开的或私有的设置,授权第三方应用访问特定资源。
    【比如快递员进小区,给我送快递】

3.2 OAuth2.0简介 👉

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。就比如我用QQ登录博客园,那博客园(第三方应用)的昵称就可以是我的QQ(某网站)昵称,它获取到了我的QQ昵称,并存到了博客园的数据库,我以后就一直可以使用QQ来登录博客园,但是博客园却不知道我QQ的用户名和密码

image

3.2.1 四种方式

image

3.3 OpenID、OIDC 和 OAuth 的区别 👉

  1. OpenID 是认证,OAuth2.0是授权
  • Authentication、Authorization
  • 一个是登录,一个是授权
  • 认证 = 【是不是】,授权 =【给不给】
  1. OpenID更简单,只提供一个认证,和字符串去中心化的登录认证,只需要识别URL和OpenID即可,方便——【数字身份识别框架】。

  2. OAuth是OpenID的一个补充,但是完全不同的服务,完全不需要提供任何信息给第三方,包括用户名

  3. OpenID Connect 兼容 OAuth2.0 + OpenID

  • OpenID Connect和OAuth2非常相似 —— 实际上前者是后者的顶级扩展。它们把两个基础安全问题(身份认证和 API 访问)合并成了一个单一的协议。

3.4 常用的几种 Ids4 模式 👉

image

3.5 其他登录

image

4 框架包含的内容

5. Ids4 优劣点

优点:

  • 框架集成了 OCID 和 OAuth2.0 ,更全
  • 可以做自定义扩展,更方便
  • 搭配 ocelot 等,更系统
  • 单独登录,注销登录,外部登录等等

劣点:

  • 个人觉得太复杂,不太好定制(微软提供的 owin 中间件和 identity, 自己定制了一个 oauth2 认证服务器)
  • 适合大中型项目,小项目就别用了
  • 适合单体,不适合微服务

6. 我们应该如何快速的入门

image

7. 创建项目

image

8. Ids4持久化

image

9. 数据库表全解析

image

posted @ 2024-12-07 18:34  似梦亦非梦  阅读(67)  评论(0编辑  收藏  举报