Openid-connect 或 SAML 2.0

Openid-connect or SAML 2.0

我们目前的申请

后端在 Spring Boot 2(RestAPI's) 中,Angular 在 front-end 中。 身份验证完成后,它目前使用 JWT(Bearer)通过为 RestAPI 传递授权 headers 来执行创建、更新和删除资源。对于读取操作,无需任何授权即可访问。

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

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

SAML 2.0 如果实施,在使用 SAML 进行 SSO 之后,我如何 create/Update/Delete 响应我的 REST 端点?如我所见,SAML 提供了断言,我需要一个持有者令牌来创建资源。 如何对我的 REST 端点的 create/Update/Delete 响应使用断言?

我尝试使用 Spring-Saml 扩展来实现它。但是,我无法实现上述 objective.

OIDC-OAuth 如果实施,我如何过滤 read-only 端点以确保所有 URL 无需授权即可使用? OIDC 的 Keycloak 默认实现是 out-of-the-box。

我已经使用 Keycloaks 适配器在 oidc 中实现了这个 spring 休息。

谢谢!!

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

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

如果可能,我会完全避免使用 SAML。