我们目前使用Angular6前端编写应用程序,并在后端使用forgerock(opendj,openam)的Spring Boot Rest编写应用程序。 当前当前登录的工作方式是客户端进入我们的网站,输入他/她的凭据,然后将有角的前端请求路由到spring boot后端rest api,然后该API调用forgerock并验证用户身份,并使用已设置为cookie的加密令牌响应在向Spring Boot后端api发出请求时,前端以及来自前端的每个后续调用都将包含此cookie。
所以,现在这是我们需要实现的方案
我们已经决定使用身份提供者(而非OKTA)放弃Forgerock,我们需要使用redirecturl以及其他几个参数将登录名重定向到这个新的Identityprovider,他们进行身份验证并使用授权令牌重定向回到我们这边( id_token)以及声明用户信息。如果我们使用OKTA,我就知道我们不需要重定向,并且可以使用登录页面刷新DOM,但是不幸的是,我们不允许使用okta,而必须重定向到此新的Identity provider。我知道我们必须使用隐式流,因为前端有角度。
有人可以帮忙实现此方案吗?这是我对实现此方法的猜测,如果我错了,请纠正我。
身份提供者对用户进行身份验证之后,我们将其发送到我们的spring boot rest api,然后对身份提供者执行另一个HTTP POST以将授权令牌交换为访问令牌,然后将该令牌加密回我们的前端并将其设置为cookie并且随后对后端的每次调用都将使用此Cookie。
我真的很感谢有人能对此有所启示。谢谢!