我到目前为止所做的是:
我从这里下载了Spring示例,它运行良好。我在源代码中添加了两个REST服务( services和services),它们也可以很好地使用SAML。当用户访问SP上的受保护资源(服务A或服务B)时,他被转发到IDP上的受保护资源。因此,由于用户尚未登录,因此将其重定向到登录页面。登录后,回放原始请求,完成authNRequest/响应,并将用户重定向到原始安全资源(服务A或B)。
我所做的是:
我在两个不同的端口(8080和9000,两个不同的Tomcat)和端口8080中的服务A (Tomcat-1)中同时运行源代码两次,调用端口9000 (Tomcat-2)中的服务B(Tomcat-2)。它将请求重定向到IdP选择。
我想做的是:
当端口8080中的服务A (Tomcat-1)调用端口9000 (Tomcat-2)中的服务B时,我希望检查用户是否已经在IdP中进行身份验证(在服务B中,端口9000中),然后如果他通过了身份验证,就让他离开。
在服务B(端口9000)中,如何检查调用是否由经过身份验证的人进行?
发布于 2017-11-23 08:16:08
恐怕这不能通过标准的SAML手段来实现。SAML不是为了保护服务/API而设计的,而是为了在不使用cookie的情况下实现Web单点登录。我也怀疑ECP配置文件是否可以在这种情况下使用,并且ECP配置文件没有得到广泛的实现。但是,有https://www.rfc-editor.org/rfc/rfc7522,它允许从SAML断言中检索OAuth2授权代码。
https://stackoverflow.com/questions/47433711
复制相似问题