authorization权限控制_认证、授权、鉴权和权限控制

2023-05-16

1.1 认证、授权、鉴权和权限控制

​ 认证 --> 授权 --> 鉴权 --> 权限控制

1.1.1 认证(identification)

​ 认证主要是用来确认访问者的身份,确认这个人是不是这个人(常见实现方式是通过用户名和密码,以及身份证)。为了确认用户的身份,防止伪造,在安全要求高的场合,经常会使用组合认证(或者叫多因素认证),也就是同时使用多个认证方式对用户的身份进行校验。

1.1.2 授权(authorization)

​ 授权简单说就是服务方给予访问方一个共信的媒介,如session,cookie,token,银行卡,钥匙,门禁卡等,这个媒介不可被篡改,不可随意伪造,很多时候需要受保护,防止被窃取。之后访问方可以凭借该共信的媒介,去访问或享受服务方提供的服务。服务方提供该服务前,会对该共信的媒介进行鉴权,确认是否是它们给予的媒介,确认无误后,才会提供该服务。

​ 比如你不能拿中国银行的卡去中国建设银行的ATM取钱。

1.1.3 鉴权(authentication)

​ 鉴权是基于授权后的校验。如上所说,鉴权是用来鉴别共信的媒介是否是本服务方提供的共信媒介,是的话才会提供服务。因此,鉴权的实现方式是和授权方式有一一对应关系。对授权所颁发授信媒介进行解析,确认其真实性。

​ 鉴权的输出是权限,即鉴权后能知道用户有什么权限。

​ 常见鉴权的一些实现方式:如银行卡识别器可以用来识别银行卡是不是本银行的卡;门禁卡识别器,可以用来识别是不是本楼房的门禁卡;互联卡web领域会校验session/cookie/token的合法性和有效性。

1.1.4 权限控制(access/permission control)

​ 如上所说,通过鉴权后可以知道用户拥有什么权限,这样就能知道用户能做哪些操作或者享受什么服务。比如你是尊贵VIP,那你可以免排队;比如你是会员,你可以打折;比如你是超级管理员,你可以随便增删改查所有数据。

​ 有这个权限(身份)你才可以做这些事,享受这些服务,这就是权限控制。

1.1.5 举例场景

场景:比如你要坐高铁。

你需要先买票。买票的时候,会对你提供的身份证进行核对。认证

买票成功后,会给你一张高铁票。授权

去高铁站坐高铁的时候,会检查你的高铁票。鉴权

你是买的01车厢01座位,所以你能坐在01车厢01座位这个位置。权限控制

1.1.6 认证、授权、鉴权和权限控制的关系

​ 认证、授权、鉴权和权限控制这四个环节是一个前后依次发生、上下游的关系,

​ 认证–>授权–>鉴权–>权限控制

​ 需要说明的是,这四个环节在有些时候会同时发生。 例如在下面的几个场景:

使用门禁卡开门:认证、授权、鉴权、权限控制四个环节一气呵成,在瞬间同时发生

用户的网站登录:用户在使用用户名和密码进行登录时,认证和授权两个环节一同完成,而鉴权和权限控制则发生在后续的请求访问中,比如在选购物品或支付时。

无论怎样,若从时间顺序方面来看,这四个环节是按时间前后、依次相继发生的关系。

1.1.7 认证和鉴权的关系

​ 认证主要是对用户/访问者的真实身份进行认证,如检查身份证,与用户自身相关。认证通过后才能授权,在授权前面进行。

​ 鉴权是与授权相关的,主要用来检查授权所授予的共信的媒介是否合法/通过,如银行卡,session这些。授权通过后才能鉴权,在授权后面进行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

authorization权限控制_认证、授权、鉴权和权限控制 的相关文章

  • Endpoint包含授权元数据,但未找到支持授权的中间件

    我目前正在将本地开发的应用程序迁移到数字海洋中的 Ubuntu 16 04 Droplet 我正在使用 NET Core 3 1 并已为其配置了我的服务器 但是 当我导航到控制器上使用 Authorize 属性 我仅在我的生产服务器上 而不
  • ASP.NET MVC 授权

    如何使用 MVC asp net 实现授权 使用授权属性 Authorize public ActionResult MyAction stuff 您也可以在控制器上使用它 也可以传递用户或角色 如果你想要更多控制的东西 你可以尝试类似的东
  • RESTful 服务认证

    根据 REST 规范 服务应该是无状态的 但随后就很难启用身份验证 我读过的一些东西说 让 REST 有状态并不是世界末日 但这不是重点 重点是遵循规范并保持一致 所以 我在这里问这个问题 希望有人能引导我走向正确的方向 我正在使用 Spr
  • 实现永不过期的 OAuth 刷新令牌

    在 OAuth 2 的上下文中 如何处理refresh token过期 还是缺少 我使用 JSON Web 令牌 JWT 作为access token生命周期较短 20 分钟后过期 据我了解 这意味着我不必存储access token 仅验
  • 如何使用 JWT 令牌管理多设备同时登录?

    我的疑问是关于使用 JWT 令牌支持同一用户同时进行多设备登录 我使用 NestJS 作为我的后端 用户表 userid 用户名 密码 包含哈希密码 名称 refreshToken 包含哈希刷新令牌 当用户执行 api login 调用时
  • 如何将 _locale 参数添加到安全路径?

    我设置了安全设置来保护根路径下的所有内容 除了查看隐私政策的公共页面外 privacy 一切正常 security yml access control path privacy role IS AUTHENTICATED ANONYMOU
  • Laravel 授权策略 AccessDeniedHttpException 此操作未经授权

    我有这样的设置 应用程序 策略 观察策略
  • 在开发过程中绕过或关闭 [Authorize(Roles="")]?

    构建 MVC3 应用程序 TPTB 希望我们使用他们的自定义授权提供程序 然而 在开发过程中 这个身份验证提供程序有点麻烦 因为它要么在您关闭 重新启动浏览器之前给出错误 要么要求您在每次编译时重新登录 现在 我只是添加了
  • Rails:使用 Authlogic 进行授权

    我需要一个非常精细的授权系统 可以与真实逻辑 http github com binarylogic authlogic tree master 到目前为止我已经尝试过这些宝石 插件 Lockdown http stonean com wi
  • 带有刷新令牌的 JSON Web 令牌身份验证逻辑

    Angular 4 应用程序在浏览器 网站后端 中运行 显示特定用户拥有的服务器数据 服务器 PHP MySQL Zend Framework 3 Doctrine ORM Naming access token 生命周期短 1 分钟 允许
  • 内置身份验证机制-API网关

    API网关具有执行授权的内置功能 但是 awslabs 提供的示例将 lambda 连接到 API 网关 其中 lambda 根据此进行授权code https github com awslabs serverless applicati
  • 使用 IIS 和 ACL 的 WCF 授权

    我正在尝试保护一些 WCF 服务 如果可能的话 我想使用 IIS 或 Web config 来完成所有繁重的工作 配置 我不想在我的代码中嵌入任何东西 我想我知道这可能不可行 如果可能的话 我想实现这一点而不必求助于 AspCompatib
  • .net core应用程序中如何进行基于组的授权?

    净核心应用程序 我的要求是添加基于组的授权 我是 Azure AD 的用户 我属于一些名称以 BR 和 AR 开头的组 属于 AR 组的用户只能访问我的 API 目前我的客户端应用程序是 Swagger 我仅通过 swagger 访问 AP
  • Graphql @include 带表达式

    我正在实现一个查询 该查询应该根据用户登录状态提供响应中的某些字段 具体来说 我想得到 点率 仅当字段 authenticationToken已通过并且希望避免通过 authenticated在下面的查询中 我想避免发送的原因 authen
  • 如何使用 HTTPClient 设置 HTTP 请求标头“身份验证”?

    我想在向服务器发送 POST 请求时设置 HTTP 请求标头 授权 我该如何在 Java 中做到这一点 HttpClient 有支持吗 http www w3 org Protocols HTTP HTRQ Headers html z9
  • 为什么 IIS 中的授权规则不会限制对我的 WCF 服务的访问?

    我有一个托管在 IIS 10 中的独立 WCF 服务 我想将对 Web 服务的访问限制为选定的用户组 我可以通过在 IIS 中执行以下操作来为 Web 应用程序执行此操作 身份验证 仅 Windows 身份验证 禁用匿名身份验证 授权规则
  • Stackoverflow 使用本地存储进行授权似乎不安全。这是正确的,否则我们如何加强它?

    我一直在研究类似于 stackexchange 的身份验证和授权模块 现在我确信他们使用某种模型的 oAuth 或令牌生成服务器来授权使用他们的各个站点 我尝试了一个小实验 登录 Stackoverflow 后 我会从开发者控制台删除所有
  • 在运行时用Dagger添加Retrofit RequestInterceptor

    我正在使用匕首和改装 我用 Dagger 注入我的 Retrofit 服务 现在我想做一个授权请求来获取 accessToken 之后 我想使用请求拦截器来增强我的 api 模块 以便将此访问令牌用于将来的请求 我的想法是在收到访问令牌后使
  • AllowAnonymous 与 OverrideAuthorizeAttribute

    AllowAnonymous 和 OverrideAuthorizeAttribute 的使用有什么区别 是一样的吗 http www asp net web api overview security authentication and
  • 将 access_token 存储在用户声明中以进行授权是否安全?

    因此 我在设置 IdentityServer4 时遇到了承载身份验证问题 基本上 我无法调用我的 API 资源并收到 401 错误 当我使用 access token 添加授权标头时 我能够从我的网络请求中获取数据 using var cl

随机推荐