认证、授权、凭证
认证(Authentication)、授权(Authorization)、凭证(credentials)
认证是指以当前用户的身份登录过后,系统便能追踪到他的身份,并做出符合相应业务逻辑的操作。即使用户没有登录,大多数系统也会追踪他的身份,只是当做来宾或匿名用户来处理,认证技术解决的是**我是谁?**的问题。
授权是指什么样的身份被允许访问某些资源,在获取用户身份后继续检查用的权限。单一的系统授权往往是伴随认证来完成的,但是开放API的多系统结构之下,授权可以有不同的系统来完成。例如OAuth
。授权是解决我能做什么?的问题。
凭证,实现认证和授权的基础是需要一种媒介(credentials
)来标记访问者的身份或权利,在现实生活中每个人都需要一张身份证才能访问自己的银行账户、结婚和办理养老保险等,这就是认证的凭证。在互联网世界中,服务器为每一个访问者颁发 session ID
存放到cookie
,这就是一种凭证技术。数字凭证还表现在方方面面,SSH
登录的秘钥、JWT
令牌、一次性密码等。用户账户也不一定存放在数据库中的一张表,在一些企业的IT系统中,对账户管理的权限有了更多的要求。所以账户技术(accounting)可以帮助我们使用不同的方式管理用户账户,同时具有不同系统之间共享账户的能力。