0

我们目前的应用

后端位于 Spring Boot 2(RestAPI's)中,前端位于 Angular 中。身份验证完成后,它当前使用 JWT(Bearer) 通过传递 RestAPI 的授权标头来执行创建、更新和删除资源。对于读操作,任何人都可以访问,无需任何授权。

现在,由于应用程序的增加,我们正在使用KEYCLOAK转移到IDP

我想知道在给定案例中使用哪种类型的 SSO。

SAML 2.0 如果实施,在使用 SAML 进行 SSO 之后,我如何为我的 REST 端点创建/更新/删除响应?正如我所见,SAML 提供了断言,我需要一个不记名令牌来创建资源。如何使用断言为我的 REST 端点创建/更新/删除响应?

我尝试使用 Spring-Saml 扩展来实现这一点。但是,我无法实现上述目标。

OIDC-OAuth 如果实施,我如何过滤只读端点到所有特定 URL 以在未经授权的情况下可用?Keycloak 默认实现对于 OIDC 是开箱即用的。

我已经在 oidc 中使用 Keycloaks 适配器为 spring rest 实现了这一点。

谢谢!!

4

1 回答 1

1

SAML 2.0 是一种较旧的基于 XML 的协议,而 Open Id Connect 是基于 JSON 并且对浏览器/移动设备友好的。在任何现代架构中都使用 OIDC。另请参阅此摘要

通过使用授权服务器的联合功能,仍然可以将 SAML 身份提供者集成到 OIDC 架构中。但是,您的实际应用程序代码应该对 SAML 一无所知 - 它应该只在登录后使用 OAuth 2.0 令牌。

如果可能的话,我会完全避免 SAML。

于 2020-05-16T08:54:02.550 回答