我可以通过在Authorization标头中传递用户名和密码来验证OAuth授权服务器吗?

时间:2018-02-12 09:13:00

标签: oauth oauth-2.0 authorization implicit

如果是OAuth 2.0授权代码和隐式流程案例,则在点击授权网址用户时会被重定向到OAuth提供商登录页面。

为避免在我的应用程序中显示OAuth提供程序页面,我是否可以让用户在文本字段中输入用户名和密码,并将其作为授权URL的授权标头传递并从OAuth提供程序返回access_token并将其用于进一步的请求?

合法,有效和可行吗?

1 个答案:

答案 0 :(得分:0)

  

合法,有效和可行吗?

没有。不是你现在使用的流程。 隐式流不是为此目的而构建的,因此您无法执行此操作。

但是,OAuth 2.0为您提供了满足您需求的专用流程。

<强> 4.3. Resource Owner Password Credentials Grant

  

资源所有者密码凭据授予类型适用于      资源所有者与其拥有信任关系的情况      客户端,例如设备操作系统或高权限应用程序。

如协议中所述,在此流程中,您的最终用户(资源所有者)将其凭据提供给客户端应用程序。客户端应用程序使用资源所有者凭据调用令牌端点以获取访问令牌。

流程概述(来自RFC6749

enter image description here

令牌请求请求(来自RFC6749

enter image description here

如规范所述,此流程用于支持无法充分利用OAuth 2.0的旧系统。例如,使用基本身份验证的客户端。