设计API接口需要考虑安全性,很有必要理清 Identification 识别、Authentication 认证和 Authorization 授权三者关系,其实很简单,举个例子来说:

你要登陆系统,

  • 你有一个用户名 jack,它可以唯一代表你,这就是 Identification 识别;
  • 你输入的用户名 jack 和 密码 123456,服务器验证通过,服务器认为你就是 jack,这就是 Authentication  认证;
  • 你登陆系统后,可以发布/编辑文章,这就是 Authorization 授权。

 

Identification 识别

判断使用者是谁,鉴定必须是独一无二的,才能正确的分辨出每个人。

主要回答这些问题:

  • 谁是用户?

 

Authentication 认证

判断使用者是不是他所宣称的那个人,

如帐号密码机制,是基于帐号密码为只有本人跟系统本身才知道的共享秘密,所以只要可以正确输入密码,系统就可判断使用者为这个帐号所代表的人物。

主要回答这些问题:

  • 谁是用户?
  • 用户真的是他/她代表自己的人吗?

 

Authorization 授权

判断当前使用者所拥有对系统资源存取的权限(等级),例如会员登入后拥有读写资源的权力,而访客只有读的权力。

主要回答这些问题:

  • 用户X是否有权访问资源R?
  • 用户X是否被授权执行操作P?
  • 用户X是否被授权在资源R上执行操作P?

 

综述

上面识别、认证、授权三者的关系:

系统要知道某个使用者对系统资源的存取权力,包含三个部分

Identification  识别:使用者告诉系统他是谁。

例:输入ID

Authentication 认证:系统判断使用者是否真的是他宣称的那个人

例:输入密码

Authorization 授权:系统根据该帐号所拥有的权限验证该使用者

例:系统判断该使用者为会员,给予读及写的权利

看出来吗?我们一般在开发系统时,用户登陆验证权限控制把Identification  识别、Authentication 认证、Authorization 授权三方面混在一起,所以突然要区分时会觉得有些困难。

参考

区分authentication、authorization、Identification – Do what you want – CSDN博客
https://blog.csdn.net/z497544849/article/details/78082050

图片来源
https://seconeblog.wordpress.com/2017/08/02/cissp-5-identity-and-access-management-p760/

打赏

Leave a Reply

Your email address will not be published. Required fields are marked *