栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

IdentityServer4 的多种模式

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292262.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号