第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.常见术语解析
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的用户名和暗码
3.2.1 四种方法
3.3 OpenID、OIDC 和 OAuth 的差异 👉
- OpenID 是认证,OAuth2.0是授权
- Authentication、Authorization
- 一个是登录,一个是授权
- 认证 = 【是不是】,授权 =【给不给】
-
OpenID更简略,只供给一个认证,和字符串去中心化的登录认证,只需要辨认URL和OpenID即可,便利——【数字身份辨认结构】。
-
OAuth是OpenID的一个弥补,可是彻底不同的服务,彻底不需要供给任何信息给第三方,包括用户名
-
OpenID Connect 兼容 OAuth2.0 + OpenID
- OpenID Connect和OAuth2十分类似 —— 实际上前者是后者的尖端扩展。它们把两个根底安全问题(身份认证和 API 拜访)兼并成了一个单一的协议。
3.4 常用的几种 Ids4 形式 👉
3.5 其他登录
4 结构包括的内容
-
中心的 IdentityServer 目标模型
-
服务和中间件
-
装备数据和操作数据
-
自定义扩展用户数据
-
Quickstart UI
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/IdentityServer/IdentityServer4.Quickstart.UI/release/get.ps1'))
5. Ids4 好坏点
长处:
- 结构集成了 OCID 和 OAuth2.0 ,更全
- 能够做自定义扩展,更便利
- 调配 ocelot 等,更体系
- 独自登录,刊出登录,外部登录等等
劣点:
- 个人觉得太杂乱,不太好定制(微软供给的 owin 中间件和 identity, 自己定制了一个 oauth2 认证服务器)
- 合适大中型项目,小项目就别用了
- 合适单体,不合适微服务