spring-security 如何保护具有身份提供者的Sping Boot 微服务,以便以无状态方式进行身份验证?

w9apscun  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(172)

如何在与Angular UI集成的spring-boot微服务上实现安全性。我有一个外部身份提供者(Ping Federate)来支持SSO,所有用户角色/权限都在应用程序数据库中维护。
什么是保护API的最佳方法?如果推荐使用Oauth,如何实现它(无状态)。
是否应将授权服务器自定义为连接到身份提供程序授权服务器并从自定义授权服务器生成令牌?或者,如果Oauth2客户端通过在身份提供程序成功进行身份验证后从数据库加载用户详细信息来生成令牌,是否会更好?
我已经尝试实现自定义身份验证服务器,该服务器在内部连接到身份提供者身份验证服务器,并从https://github.com/spring-projects/spring-authorization-server/tree/main/samples/federated-identity-authorizationserver获取引用
但它是有状态的,我正在寻找一种无状态的方法,以及如何在成功验证后自定义以加载用户角色/权限和从应用程序数据库生成的令牌
任何代码样本沿着建议将不胜感激。
提前致谢

vsikbqxv

vsikbqxv1#

为什么不简单地设置OpenID呢?

  • Ping联盟:授权服务器,负责发布持有最终用户身份和角色的授权令牌
  • Angular UI:客户端
  • Spring 休息服务:具有基于授权令牌中的最终用户身份和角色的安全性的资源服务器

你可能不需要更多的东西。
看看我写的这个教程:https://github.com/ch4mpy/spring-addons/tree/master/samples/tutorials/resource-server_with_oauthentication
将其修改为ping federate应该只是设置几个属性的问题:

  • 颁发者URI
  • 要从中获取角色私有声明

(but我还没有试过ping联邦)。
如果您需要的不仅仅是资源服务器中的RBAC(RoleBasedAccessControl =〉基于用户权限的安全决策),那么您也可以看看这个教程:https://github.com/ch4mpy/spring-addons/tree/master/samples/tutorials/resource-server_with_specialized_oauthentication
编辑:从第一个教程开始,您可以添加以下内容:
第一个

相关问题