IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> IdentityServer4 的多种模式 -> 正文阅读

[系统运维]IdentityServer4 的多种模式

参考:英文文档及教程
jwt.io:token提高可视化网站

IdentityServer4 的多种模式

(一)客户端授权模式

客户端授权模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向认证|授权服务器进行认证。授权服务器不做任何要求,只要需要看看本次来认证的请求是不是属于提前约束好的客户端,如果是,那么直接颁发令牌-token。

1、理解:

  • 什么是客户端、用户、认证|授权服务器?:当我们以微信身份“皮皮鬼”登录爱奇艺时。皮皮鬼是用户,手机上的android应用程序是客户端,微信是认证|授权服务器。
  • 什么是提前约束?:认证|授权服务器内应该保存有 认证的客户端信息,该客户端可访问的api资源(内存模式、数据库模式)。内存:信息直接写在代码中;数据库,信息写在数据库中。
    在这里插入图片描述
    注释:
    (A)Client Authorization:客户端向认证服务器进行身份认证,并要求一个访问令牌。
    (B)Access Token:认证服务器确认无误后,向客户端提供访问令牌。

2、程序步骤:

步骤一:创建IdentityServer服务器
步骤二:identityServer4创建API资源项目

过程详解图:
在这里插入图片描述
注意:按照本教程代码,执行过程中,API资源IP:6000;认证|授权服务器IP:5000。
他们在Properties的launchSettings.json中定义。

3、补充说明

如上示例所示,可以根据postman验证访问上述过程。
也可以创建一个无界面的客户端(控制台应用)来验证。
参考链接:创建使用[ClientCredentials客户端凭证]授权模式的客户端

(二)【资源所有者密码凭证】授权模式的客户端(密码模式)

密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码。客户端使用这些信息,向“服务商供应商”索要授权。
在这种模式中,用户必须把自己的密码给客户端,但是客户端不得存储密码,这通常用在用户对客户端高度信任的情况下,比如客户端时操作系统的一部分,或者由一个著名公司出品。而认证服务器只有在其他授权模式无法执行的情况下,才能考虑使用这种模式。

1、理解:

例如,我用微信登录爱奇艺,可以用用户名密码登录。这个情景里,我是资源所有者,爱奇艺是客户端,微信是授权服务器。我将用户名密码交给爱奇艺,爱奇艺用这个用户名密码来获得微信的一些资源。因此,这通常用在用户对客户端高度信任的情况下。但是,由于多了一层用户名密码校验,相比于客户端授权模式更安全。具体流程如下:
在这里插入图片描述
(A)用户向客户端提供用户名和密码
(B)客户端将用户名和密码发给认证服务器,向后者请求令牌。
(C)认证服务器确认无误后,向客户端提供访问令牌。

2、程序步骤:

本文用了无UI组件的模式来进行密码模式的简单实践,这里同样使用内存模式。
主要分为三步:

  1. 配置服务器
  2. 获取token
  3. 获取用户信息
  4. 获取API资源

步骤:密码模式程序编写步骤

(三)授权码模式

参考文档:IdentityServer4授权码模式介绍和代码实操演练

1、背景

密码模式上的升级,解决了密码模式的一些问题。
即:浏览器(用户代理)可见token,这可能会造成恶意访问。为了解决这个用户代理的问题,诞生了授权码模式。

2、理解

在这里插入图片描述
流程

(A)用户访问客户端,后者将前者导向认证服务器。由于用户直接访问客户端被拦截,重定向到授权服务器。授权服务器接受到请求后,返回一个页面。让用户来输入账号密码

(B)用户选择是否给予客户端授权。即:填写用户名密码

(C)若用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。响应一个code给代理浏览器,需要区分的是,这里的code并不是token。浏览器内code可见

(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。客户端程序利用从浏览器那里得到的code,来访问授权服务器。

(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。授权服务器辨识code,之后将颁发token。需要区分的是,token在客户端颁发,可以避免在用户代理中泄露token

3、程序编写

  1. QuickStartUI搭建。参考链接:十分钟搭建IdentityServer4及QuickStart UI
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:25:02  更:2021-10-03 17:26:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:21:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码