oauth-2.0 在用户已通过身份验证的情况下,要使用的正确OAuth2流是什么

txu3uszq  于 2022-10-31  发布在  其他
关注(0)|答案(2)|浏览(139)

我仍在努力理解OAuth2流以及它是如何一起工作的,所以如果这个例子令人困惑,请提前道歉。
我对OAuth2授权流的理解是:
1.使用者移至网站的URL(www.somesite.com
1.用户被重定向到授权服务器(如PingFederate),用户将在其中进行身份验证。
1.一旦通过身份验证,用户将被重定向回具有授权码的初始站点。
1.等等。
我的情况与此不同。我无法将用户重定向到授权服务器进行登录,因为我的公司使用第三方应用程序框架,该框架将用户身份验证到专有数据库。因此,我的用户已经通过了身份验证。此外,我的用户将永远不需要允许其他应用程序访问他们的联系人等......就像我看到的所有OAuth2示例一样。
但是,我仍然需要为每个用户请求单独的授权令牌(在我的情况下,是JWT),以便他们可以将令牌传递给可能从我的主Web应用程序调用的服务。
客户端凭据流似乎没有使用意义,因为据我所知,它更多的是一个机器到机器的流。
我可以使用什么流程来从包含用户特定属性的身份验证服务器请求授权令牌?

s71maibg

s71maibg1#

我可以使用什么流程来从包含用户特定属性的身份验证服务器请求授权令牌?
如果您从安全Angular 信任您的客户端应用程序,则可以使用Resource Owner Password Flow。您的客户端代码/应用程序必须获取用户凭据,并将其与此流程所需的其他详细信息一起提交给授权服务器。授权服务器将发出一个oauth access token。如果您希望oauth authorization server发出JWT,则必须实现一些代码来增强访问令牌。

kokeuurv

kokeuurv2#

您仍应重定向用户,并使用Code Flow。需要调整授权服务器(AS),以通过连接到您的自定义数据库来验证在其登录表单中输入的用户名和密码。
任何好的AS都将通过其可扩展性特性来支持这一点。

  • 使用JDBC连接到数据库的凭据验证器
  • 使用自定义HTTP客户端连接到API的凭据验证程序

相关问题