OAuth术语已经困扰我很长一段时间了。OAuth授权是否如某些人所建议的那样,或者是身份验证?
如果我错了,请纠正我,但我一直认为授权是允许某人访问资源的行为,但是OAuth似乎没有任何实现来实际允许用户访问给定的资源。所有OAuth实现都在为用户提供令牌(签名的,有时是加密的)。然后,每次调用后端服务端点时都会传递这个令牌,在那里检查令牌的有效性,这也不是OAuth所关心的问题。
我认为OAuth身份验证(每篇文章都说不是)需要用户提供凭据,从而证明用户应该/不应该拥有访问权限吗?
因此,看起来OAuth既不是授权,也不是身份验证,因为它们必须由其他进程执行。那么到底是什么呢?它是一个用于传递令牌的进程吗?它是不是真的没有什么特别的意思?
很难问一个关于这个主题的问题而不听起来神秘和迷信(幽灵和小妖精),所以我希望回答这个问题也不是一件简单的事情。风险自负。
发布于 2022-02-27 10:46:44
OAuth是一种授权协议。它不是为身份验证而设计的。是的,在OAuth过程中有一个步骤,身份服务器对资源所有者进行身份验证。它发生的方式不属于OAuth协议。这就是OAuth不关心身份验证的原因。
OAuth通过向第三方(服务提供商)提供访问令牌来执行授权,该第三方将能够通过提供令牌来授权对资源的访问。
假设有一个要求,即服务提供者希望代表资源所有者访问资源(受身份服务器保护)。因此,资源所有者将首先进行身份验证,然后授予服务提供商访问特定资源的权限。则身份服务器将为服务提供商发布访问令牌。稍后,服务提供商可以使用该令牌访问资源。
在这里,OAuth并不关心谁在携带访问令牌或试图访问资源。它验证访问令牌,并允许第三方访问资源。
https://stackoverflow.com/questions/33702826
复制相似问题