网页应用程序有什么区别?简单来说是什么?
我经常看到缩写“auth”。它是指“auth”-entication(认证)还是“auth”-orization(授权)?还是两者都有?
我经常看到缩写“auth”。它是指“auth”-entication(认证)还是“auth”-orization(授权)?还是两者都有?
身份验证 | 授权 | |
---|---|---|
它的作用是什么? | 验证凭据 | 授予或拒绝权限 |
它是如何工作的? | 通过密码、生物识别、一次性验证码或应用程序 | 通过安全团队维护的设置 |
用户能否看到它? | 是 | 否 |
用户能否更改它? | 部分能够更改 | 否 |
数据如何移动? | 通过 ID 令牌 | 通过访问令牌 |
欲了解更详细信息,请参阅此处
认证与授权
认证
是一个验证过程:
数字签名
[关于]检查电子邮件。授权
是在 认证
后的下一步。它涉及对资源的权限/角色/特权。 OAuth
(开放式授权) 是授权的一个例子。
在今天的互联网中,授权被广泛用于对客户端应用访问进行限制。
认证是通过获取某种凭据(例如用户名和密码组合)并使用这些凭据来验证用户身份的过程。
授权是允许经过身份验证的用户通过检查用户是否对系统具有访问权限来访问他的资源的过程。您可以通过向经过身份验证的用户授予或拒绝特定权限来控制访问权限。因此,如果认证成功,则开始授权过程。 认证过程始终会进入授权过程。
JWT用于授权:JWT是一种基于JSON格式的安全令牌,它基本上是一个Base64编码的字符串,用作在两个应用程序之间传输安全内容的手段。它们用于保护Web API中的请求数据。 这些包含在Authorization HTTP头中,作为承载者认证方案的一部分。
OAuth用于授权:OAuth不是API或服务:它是授权的开放标准,任何人都可以实现它。 使用OAuth,您可以使用您的Google,Facebook,Twitter或Microsoft帐户登录第三方网站,而不必提供密码。 这样,您就可以避免在您使用的每个网络应用程序上创建帐户和记住密码。
我发现这篇文章中的比喻对我很有帮助。
考虑一个人走到一扇锁着的门前,为了照顾宠物而进入家里,而家人则在度假期间不在家。这个人需要:
- 认证采用钥匙的形式。门上的锁只授权给拥有正确钥匙的人,就像系统只授权给拥有正确凭据的用户一样。
- 授权采用权限的形式。一旦进入,这个人就有权访问厨房并打开存放宠物食品的橱柜。但这个人可能没有权限进入卧室小憩一会儿。
因此,认证关乎用户身份,而授权关乎用户权限。
认证是确认有效用户的过程。
授权是验证用户访问级别的过程。
应用程序示例 用户A,B都是库存应用程序的认证用户。 两个用户都可以进入库存,但B具有更多的授权权限以发出物品。
authn
用于认证,authz
用于授权。 - jdf