如何使用OAuth2使用登录名和密码进行身份验证?

问题描述 投票:1回答:1

我正在编写一个没有UI的服务,必须使用OAuth2连接到Web API。我拥有一切 - 客户端ID,客户端密钥,身份验证URL,回调URL,用户名和密码。

我想知道更换OAuth2令牌的用户名,密码等的最简单方法,以便我可以使用Web API进行身份验证。

我一直在看Apache Oltu,规范的工作流程似乎是:

  1. 使用OAuthClientRequest构建请求URI
  2. 重定向到URI,以便用户可以授予访问权限
  3. 通过OAuthAccessTokenResponse检索相应的代码并使用它进行身份验证

再次 - 我不能让应用程序提示用户;一切必须以编程方式发生。

我想我正在寻找像DotNetOpenAuthExchangeUserCredentialForToken()方法,但对于Java。

我倾向于使用Apache Oltu,但我对任何框架/解决方案持开放态度。谢谢!

java oauth oauth-2.0
1个回答
4
投票

这取决于授权服务器(将为您提供access_tokens的实体)实现的身份验证方法。

在协议级别,您正在寻找资源所有者密码凭据授予:http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.3

并非所有授权服务器都实现了这一点,因此您需要检查他们的文档。 (例如Facebook,Twitter,谷歌不提供这个,作为一个例子)。

这是一个非常简单的交互,所以通常你不需要(客户端)框架。以下是HTTP请求的示例:https://docs.auth0.com/protocols#9

© www.soinside.com 2019 - 2024. All rights reserved.