安全

授权(authorization)· authz

/ aw-ther-i-ZAY-shun /

授权(authorization)决定的是:在系统已经知道你是谁之后,你「被允许做什么」。你登录了——没问题——但你能删掉这个文件吗?能看别人的工资吗?能打开管理后台吗?授权就是为每一个这种问题把关的那道关卡。

它总是发生在身份验证(authentication)之后。系统先确认你的身份(authn),再检查你的权限(authz)。知道你是谁,并不能说明你能碰什么——一个登录的访客和一个登录的管理员同样都「通过了验证」,但「被授予的权限」天差地别。

当你撞上一堵过不去的墙,那通常就是授权失败:服务器很清楚你是谁,只是不让你做这件事。在网络上,它常常表现为一个 403 Forbidden(禁止访问)。

if (user.role !== "admin") {
  return res.status(403).send("Forbidden");
}
// authenticated, but not authorized for this

授权检查:我们知道你是谁,只是你没权限进这里。

401 Unauthorized 其实是说「我们不知道你是谁」(属于身份验证问题)——真正代表授权说「不行」的是 403 Forbidden。这是网络上一个一直没改过来的命名错位。

又称
authzpermissionsaccess control