我需要构建一个OAuth 2.0提供程序,并希望使用StormPath来保留身份并生成访问令牌和刷新令牌。但是,StormPath不支持授权代码授予。因此,我考虑在StormPath之上实施授权代码授权。这是推荐的吗?你会推荐一种更好的方法吗?
您建议使用什么Java库和NodeJS来实现OAuth 2提供程序?
我喜欢Stormpath关于使用JWT的想法,它不需要作为访问令牌持久化(我是否正确?),我想在我的系统中使用它。所以,我是否应该使用Stormpath的CustomData来存储授权代码,但是使用Stormpath API为我生成令牌?或者我是否必须生成自己的令牌,并使用Stormpath的CustomData来存储它们?
答案 0 :(得分:2)
我是Stormpath的Java Developer Evangelist。
Java SDK通过SAML提供商和社交提供商(如Facebook和Google)支持授权代码授予类型。
更高级别的集成,如Servlet,Spring和Spring Boot,目前通过Stormpath的ID站点服务支持外部提供程序auth流。
我们正在努力将对这些流程的支持直接集成到集成中。您可以跟踪here上的进度。
如果您想实现是授权代码授予类型提供程序的功能,我建议您使用Apache Oltu库。您仍然可以使用Stormpath Java SDK将Stormpath与Oltu集成。
答案 1 :(得分:1)
现在,您可能已经知道,我们仅支持密码授予和客户端凭据授予OAuth2流。我们将来会继续支持其他两个流程(授权代码和隐式),但它有点落后于管道。
如果您想成为您的OWN OAuth2提供商(我假设您应该做什么),并允许其他开发人员构建通过您的网络服务将用户登录到其网站的应用,那么是 - 您确实需要自己支持授权码和/或隐式授权类型。
过去,我和几个人一起实施过这类事情。
通常,我建议使用开源OAuth2服务器库,使用您用于处理授权码/隐式协商的任何语言,然后只需将用户及其令牌存储在Stormpath和用户& #39; s CustomData。
如果您想了解更多详细信息,请展开您的问题,并在下方发表评论,我会更新我的回答以反映更多细节。
<强>更新强>
关于Java库 - 我已经问过我的一个同事写了我们所有的Java库来评论和推荐ya =)我是Python / Node / Go的家伙,对不起!
现在,关于令牌:
我要做的是实现(高级别),这是:
当用户通过授权码/隐含登录您的应用时,您要做的是:
当用户使用授权码向您的服务器发送请求时,并希望获得访问令牌时,您需要:
当用户向您的服务器发送访问令牌以识别自己时,您需要:
希望这有意义!
这可能听起来像很多工作,但实际上,这应该很简单。您真的只需要OAuth2库来帮助您正确处理OAuth2 POST请求数据,并提供以下帮助: