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

本文关键字:密码 执行 身份验证 用户 可以使 是否 | 更新日期: 2023-09-27 18:02:52

给定一个有效的用户名和密码,我可以使用OAuthOAuth2OpenId执行身份验证(基本上知道用户和密码是ok的)吗?

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

更新

实际上我找到了一个文档,其中解释了OAuth2支持这种机制:

然而,OAuth2也支持用户告诉的场景向客户端发送用户名和密码。在这种情况下,客户端传输此信息以及客户端ID和客户端将密钥和所需的范围发送到授权服务器,然后直接获取所需的令牌,而不需要另一次调用。

那么,下一个问题是,你能提供一个工作的例子吗?

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

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

授权工作流之一,也是最常与Oauth相关联的一个工作流,是当客户端应用程序请求访问受保护的资源,但不直接获得最终用户的凭据时——访问请求重定向到向最终用户展示一个由授权系统拥有的登录屏幕,而不是由客户端应用程序拥有的登录屏幕。当用户提供凭据并同意允许客户端应用程序的访问请求时,授权服务器将向客户端应用程序返回一个授权代码,客户端应用程序可以使用该代码获取访问令牌来访问最终用户的受保护资源。

这被称为授权代码授予,在OAuth2规范的4.1节中有详细说明。

有另一种授权工作流,其中客户端应用程序确实拥有用户凭据或其他形式的共享秘密。客户端应用程序在请求访问令牌时包含用户凭据或共享密钥。这被称为客户端凭据授予,在Oauth2规范的4.4节中有详细说明。

客户端证书授予可能最接近您的场景。