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

时间:2014-01-30 18:21:58

标签: java oauth oauth-2.0

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

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

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

  1. 使用OAuthClientRequest构建请求URI
  2. 重定向到URI,以便用户可以授予访问权限
  3. 通过OAuthAccessTokenResponse检索相应的代码并使用它进行身份验证
  4. 再次 - 我无法让应用程序提示用户;一切都必须以编程方式发生。

    我认为我正在寻找像DotNetOpenAuth的{​​{1}}方法,但是对于Java来说。

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

1 个答案:

答案 0 :(得分: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