认证


authentication 认证访问者是谁
authorization 访问权限

一. Basic access authentication

Basic access authentication

使用Basic access authentication时,每一个request都包含了一个header,格式为:

Authorization: Basic <credentials>

其中,credentials时使用base64对id与password进行编码的,id与password之间用 : 隔开。

缺点:

  1. 每个浏览器要存credentials,每个浏览器的存储策略到不同。比如ie中只存15m。
  2. 由于credential是使用base64编码的(不安全),常常需要何https配合使用。

二、API KEY authentication

3 Common Methods of API Authentication Explained
它只是一种认证方式,而不是授权方式。
在这里插入图片描述
在用户第一次登陆时,获取api-key,将它存起来(如cookie)中,下次请求时,从cookie中看是否有api-key,有就携带着发送请求。

下面时ant-design-pro中使用api-key进行认证的步骤。

  1. 登陆
    在这里插入图片描述
  2. 将login获取的token存到cookie中
    在这里插入图片描述
  3. 接口请求时携带api-key。
    在这里插入图片描述

三. OAuth

允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表等),而无需将用户名和密码提供给第三方应用。授权模式总共有5中,常见的有三种。

3.1 授权码模式(authorization code grant)

参考 What is the OAuth 2.0 Authorization Code Grant Type?

流程:

  • 第三方应用打开浏览器
  • 用户看到授权提示并授权
  • 携带授权码(authorization code)重定向到第三方应用
  • 第三方应用使用授权码获取access token

3.2 简化模式(implicit grant)

参考 What is the OAuth 2.0 Implicit Grant Type?

这种方式的适用环境通常是一些javascript应用没有比较好的安全方式来存储 authorization code。

流程:

  • 第三方应用打开浏览器
  • 用户看到授权提示并授权
  • 用户携带着access token返回第三方应用

3.3 密码模式 (password grant)

参考 What is the OAuth 2.0 Password Grant Type?

适用与你自己的应用(受信app),不适合给第三方应用使用。

流程:

  • 应用收集用户的账号密码(直接输入)
  • 受信应用发起一次post请求,使用password获取acess token。

在这里插入图片描述

3.4 oauth2.0 授权方式的选择

在这里插入图片描述

OAuth site
Spring Security Architecture

四. Cookie/Session 认证机制

需要在客户端的浏览器端创建了一个Cookie对象,万一Cookie被删了呢

五. jwt

json web token。cookie/session 认证机制中服务器端都要存当前用户信息,而在json web token认证中,用户信息存在客户端。
在这里插入图片描述

六.参考文献

4种认证(authentication)或授权(authorization)方式
Web开发中常见的认证机制
Basic access authentication
OAuth 2.0
理解OAuth 2.0

Securing REST Services With OAuth2 in Spring Boot

3 Common Methods of API Authentication Explained

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值