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

时间:2013-03-08 15:17:52

标签: c# .net oauth openid oauth-2.0

鉴于有效的用户名和密码,我是否可以使用 OAuth OAuth2 OpenId <执行身份验证(基本上知道用户和密码是否正常) /强>

我需要调用身份验证服务器以了解用户和密码是否有效

更新

实际上我找到了document,其中解释说OAuth2支持这种机制:

  

尽管如此, OAuth2还支持用户告知的场景   客户端的用户名和密码。在这种情况下,客户端   传输此信息以及客户端ID和客户端   秘密和授权服务器所需的范围然后   无需另外通话即可直接获得所需的令牌。

那么,接下来的问题是,你能提供一个有效的例子吗?

1 个答案:

答案 0 :(得分:1)

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

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

这称为授权代码授权,详见OAuth2规范的4.1节。

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

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