我有以下三层架构
如您所见,有一个业务层提供所有平台底层功能并通过一些 REST API 公开。 基于 Spring 的 Web UI 组件调用 BL API 并充当用户界面。用户可以通过 SAML IdP 向平台进行身份验证。 目前,Web UI 通过专用的“webui”用户访问 BL API。
现在我需要为外部客户端用户保护 BL API 的安全,这些用户可以出于其目的访问 BL 服务。 我想做的是让外部 REST 客户端通过 IdP 通过在路径(例如)调用平台的服务来对平台进行身份验证
POST http://myPlatform:8080/authenticate
传递 IdP 参考和该 IdP 上的凭据;这样,平台将“代表”用户向 IdP 进行身份验证,并向 REST 客户端返回用于访问 BL REST API 的访问令牌。
补充:我需要执行的只是身份验证。 IdP 应仅声明用户是否可在 IdP 上进行身份验证。如果是可验证的用户,BL 将执行所有授权机制。
您对这个场景有何看法?是否有任何方法可以自动对具有所有所需数据的 IdP 进行身份验证,或者对于让用户手动(通过 IdP GUI)对 IdP 进行身份验证是必不可少的?
这个话题有办法解决吗?
我面临着一个非常相似的问题,并且很难完全理解如何执行此任务。