随着互联网技术的发展,微服务架构已经成为每个互联网公司的标配。伴随着服务粒度的细化,服务的安全和鉴权问题,以及客户端与服务之间的认证问题已经成为必不可少的一项工作。说起认证和鉴权,那怎么少得了 OAuth 2.0 协议呢?
火锅店旁边的照片打印机
这个案例想必大家都遇到过,在商场里面或者餐馆门口会看到一些可以打印照片的设备。想要设备打印出照片那么必须传输照片给设备,但是假如此时由于你的手机设备存储有限,美美的照片被存储在了百度云盘。那么如何让设备获取到你存储在云盘的照片呢?聪明的你肯定已经想到对策了。
1. 账户和密码
这种方式最为简单直接,但是一旦你将账户和密码告诉第三种应用,第三方应用就会无所不能,随意操作你的账户不受你的管控。你唯一能做的就是更改掉旧的密码,这样才能收回你的权限。
2. 开发者钥匙
这种方式需要先在资源提供方申请开发者钥匙,它建立在客户应用和资源方是互相信任的情况下。但是这种方式也会存在开发者钥匙泄露的情况,一旦泄露给不法分子,安全同样会受到威胁。
3. 特殊令牌
这种方式是资源方提供一个令牌给客户应用,通过令牌,客户应用可以访问资源。但是资源方颁发的令牌会受到权限的控制,并且会在有效期终止后自动销毁。
上述特殊令牌的方式即为我们今天即将要讨论的 OAuth 2.0,OAuth 2.0 会解决令牌涉及到的一系列问题。那么 OAuth 2.0 的令牌可以用来解决哪些问题呢?