访问令牌和两条腿的OAuth2

访问令牌和两条腿的OAuth2,oauth,oauth-2.0,token,2-legged,Oauth,Oauth 2.0,Token,2 Legged,我第一次学习oAuth2。我将使用它来使用两条腿的方法为一些简单的web服务提供身份验证 根据我所读到的,流程应该是这样的:web服务客户端向oAuth服务器提供某种凭证(我正在考虑使用JWT)。如果凭据有效,oAuth服务器将返回一个访问令牌。然后,web服务客户端在尝试使用web服务端点时提供访问令牌 我的问题是,为什么不在向端点发出请求时提供JWT呢?为什么oAuth的流是这样构想的。为什么不直接向JTW提供端点并将其用于身份验证?获得访问令牌的额外步骤有什么好处 谢谢 您当然可以直接向w

我第一次学习oAuth2。我将使用它来使用两条腿的方法为一些简单的web服务提供身份验证

根据我所读到的,流程应该是这样的:web服务客户端向oAuth服务器提供某种凭证(我正在考虑使用JWT)。如果凭据有效,oAuth服务器将返回一个访问令牌。然后,web服务客户端在尝试使用web服务端点时提供访问令牌

我的问题是,为什么不在向端点发出请求时提供JWT呢?为什么oAuth的流是这样构想的。为什么不直接向JTW提供端点并将其用于身份验证?获得访问令牌的额外步骤有什么好处


谢谢

您当然可以直接向web服务提供JWT。问题是如何以服务信任的方式生成它

JWT是和access_令牌,但并非所有access_令牌都是JWT

您的客户机可以发布JWT,使用密钥(或证书)对其进行签名,然后将其发送到API。拥有第三方(一个
颁发者
)的优势在于,您可以将身份验证与颁发令牌分开。客户端可以通过多种方式进行身份验证(例如usr/pwd、证书、密钥等),然后使用JWT调用API

额外的抽象为您提供了更大的灵活性和管理可伸缩性。例如:如果您有一个API使用者,那么您可能可以使用一个凭证(或JWT,或其他任何凭证)。如果您计划让许多客户机使用您的API,那么将此责任交给专门的组件(例如,
发行人
)更有意义

OAuth BTW是为一个特定的用例而设计的:代表您将对API的访问委托给另一个系统。您授予对system-A的访问权,以代表您访问system-B上具有权限范围的资源