我对oauth2(在Mastodon的上下文中)的理解是,用户向Mastodon实例注册其客户端,并接收客户端机密,然后将其用于制作身份验证uri,用户可以访问该身份验证uri并检索身份验证代码,与机密一起使用以请求最终的身份验证令牌。该令牌用于通过请求标头对经过身份验证的请求进行签名。
我注意到Mastodon不需要用户验证应用程序的oauth2凭据。
https://docs.joinmastodon.org/api/rest/apps/#get-api-v1-apps-verify-credentials
如何在不通过用户身份验证的情况下发送任何经过身份验证的请求?
答案 0 :(得分:0)
从OAuth 2.0的角度来看,用户不需要验证应用程序凭据。应用程序凭证属于应用程序,并且必须受到任何第三方的保护,包括最终用户。
OAuth 2.0用于授权,换句话说就是访问委派。最终用户使用您的应用程序时,他/她允许您的应用程序使用他/她的资源。因此,检索,存储,使用和保护凭据是应用程序的责任。
请详细了解clients (applications) in OAuth 2.0 specification。
还有一件事,
该令牌用于通过请求标头签署经过身份验证的请求
这种理解是不正确的。一旦应用程序收到令牌,它们将通过标头简单地传递到OAuth保护的端点(例如:Mastodon API)。这在their documentation
中突出显示获得访问令牌后,将HTTP标头Authorization:Bearer ...添加到任何API调用中。
从RFC6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage
了解更多信息