OAuth 2.0 规范定义了资源所有者密码凭证授予类型 https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-26#section-4.3,它允许直接使用资源所有者密码凭据(即用户名和密码)作为获取访问令牌的授权。
我希望允许用户在客户端上“通过 Facebook 登录”,而不是直接提供凭据。然后,客户端可以将用户的 Facebook 访问令牌交换为授权服务器的访问令牌。这个方案是否符合OAuth2的框架?
然后,客户端可以将用户的 Facebook 访问令牌交换为授权服务器的访问令牌。
这是否意味着您有 2 个授权服务器(一个是 Facebook,另一个是您的私人服务器)?如果是 - 您正在滥用 OAuth,应该使用授权代码授予方案。
在 OAuth 2.0 规范 (v25) 的图 5 中,您可以找到工作流定义:
资源所有者向客户端提供其用户名和密码。
客户端从授权服务器的令牌请求访问令牌
端点,包括从资源所有者收到的凭据。什么时候
发出请求后,客户端向授权服务器进行身份验证。
授权服务器对客户端进行身份验证并验证资源所有者
凭据,如果有效,则颁发访问令牌。
这是来自 Facebook 的引述http://developers.facebook.com/docs/guides/web/ http://developers.facebook.com/docs/guides/web/ :
为了让用户登录到您的网站,需要发生三件事。首先,Facebook 需要对用户进行身份验证。这可以确保用户就是他们所说的那个人。其次,Facebook 需要对您的网站进行身份验证。这可以确保用户将他们的信息提供给您的网站而不是其他人。最后,用户必须明确授权您的网站访问他们的信息。这可以确保用户准确地知道他们向您的网站披露了哪些数据。
在这两个地方,您都有一个且只有一个授权服务器 - 在您的情况下 - Facebook。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)