ova*_*ris 5 spring-security jwt spring-security-oauth2
我想使用Spring Security设置一个中央身份验证/授权服务器,我可以从中获取JWT令牌,然后我可以使用它来访问另一个Spring Security备份的REST服务器上的受限资源.
这是我的流程:
1)HTML JS/Mobile等客户端在auth服务器上进行身份验证以获取JWT令牌2)客户端将此标头在HTTP头中发送到REST服务器以获取对安全资源的访问权限
我认为JWT最适合这种情况,因为它可以包含所有相关数据,REST服务器可以完全无状态,只需解码令牌以获取REST服务器上的所有必要数据(角色,clientid,电子邮件......).
Oauth2是否是正确的选择,如果是这样,有人可以指出我正确的方向吗?如果JWT不是正确的选择,我会接受其他解决方案:)我应该提一下,在我的情况下,也可以在REST服务器上加载来自数据库的客户端信息,但它不应该负责验证用户(意思是没有用户名/密码检查,只是令牌解码/验证...)
Cloudfoundry UAA是一个开源 OAuth2 身份管理解决方案 (Apache 2),它颁发 JWT 令牌。您可以查看它的实现方式,或者自己使用它,无论是作为服务器还是仅作为 JAR。它在 Spring OAuth 中实现了一系列现有策略。它还可以选择拥有自己的用户数据库,或者您也可以实现自己的数据库。有很多选项和扩展点,很多人以各种方式使用它(并非全部使用 Cloudfoundry),因为它被设计为通用的。
Spring OAuth 2.0 也支持 JWT 令牌,但尚未发布(大部分实现来自 UAA)。
但是,既然您说您不介意不透明令牌(和数据库查找),您可能更喜欢使用Spring OAuth 1.0 中的JDBC 支持。在我们迁移到 JWT 之前,它已经在 Cloudfoundry 中使用了相当长的一段时间,所以我可以在生产中保证它。
至于 OAuth2 是否适合您的用例:您最有能力做出决定。到目前为止你所说的一切都没有让我认为这是一个坏主意。这是我做的一个演示,如果它有帮助的话(如果你喜欢这种东西,你可以在 YouTube 上的 SpringSource 频道中找到它)。
| 归档时间: |
|
| 查看次数: |
7638 次 |
| 最近记录: |