我正在编写一个没有UI的服务,必须使用OAuth2连接到Web API。我拥有一切 - 客户端ID,客户端密钥,身份验证URL,回拨URL,用户名和密码。
我想知道更换OAuth2令牌的用户名,密码等的最简单方法,以便我可以使用网络API进行身份验证。
我一直在关注Apache Oltu,规范的工作流程似乎是:
OAuthClientRequest
构建请求URI OAuthAccessTokenResponse
检索相应的代码并使用它进行身份验证再次 - 我无法让应用程序提示用户;一切都必须以编程方式发生。
我认为我正在寻找像DotNetOpenAuth
的{{1}}方法,但是对于Java来说。
我倾向于使用Apache Oltu,但我对任何框架/解决方案持开放态度。 谢谢!
答案 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