是否可以使用已知的用户名和密码进行身份验证?

问题描述:

提供有效的用户名和密码,我可以进行身份​​验证使用OAuth的的OAuth2的OpenID(basicly知道,如果用户和密码都OK了)?是否可以使用已知的用户名和密码进行身份验证?

我需要的是调用认证服务器来知道用户和密码是否有效

在此先感谢


UPDATE:其实我发现了一个document,其中解释了OAuth2支持这种机制:

尽管如此,的OAuth2也支持这样的用户告诉 的客户端方案他的用户名和密码。在这种情况下,客户端 将该信息以及客户端ID和客户端密码以及期望的范围传输到授权服务器,然后 直接获得期望的令牌而无需另一个呼叫。

所以,下一个问题是,请你能提供一个有效的例子吗?

+2

我当然希望如此。否则将很难登录。 – JosephHirn 2013-03-08 15:26:33

OAuth 2.0规范定义了针对不同类型应用程序或授权方案的几种不同用例或工作流。

其中一个授权工作流程和最常与Oauth关联的授权工作流程是当客户端应用程序请求访问受保护资源但不直接获取最终用户的凭证 - 访问请求重定向以向最终用户由授权系统拥有的登录屏幕,不属于客户端应用程序。当用户提供凭证并同意允许客户端应用程序的访问请求时,授权服务器会向客户端应用程序返回授权代码,客户端应用程序可以使用该代码获取访问令牌以访问最终用户的受保护资源。

这就是所谓的授权代码授权,它在OAuth2规范的4.1节中有详细说明。

还有另一个授权工作流程,其中客户端应用程序确实拥有用户凭证或某种其他形式的共享密钥。客户端应用程序在请求访问令牌时包含用户凭证或共享密钥。这称为客户端凭据授权,并在section 4.4 of the Oauth2 spec中详细说明。

客户端凭据授权可能最接近您的方案。