在使用密钥斗篷保护我的应用程序时,我需要一些帮助:
我有几个使用Spring Security的grails应用程序(App1和App2)。但是,当前,我正在使用keycloak REST API通过传递用户名和密码来验证用户身份,并接收令牌,而无需将这些应用程序注册为keycloak中的客户端。但是,当我们想要支持SSO,社交登录,Kerberos和Keycloak提供的其他许多强大功能时,这种方法似乎效率低下。 因此,我想出了以下方法来支持SSO / kerberos,但想知道Keycloak是否可以解决我们的问题。
“创建一个新的spring boot master应用程序(App3)并在Keycloak中注册,并将登录页面重定向到Keycloak。登录成功后,使用keycloak提供的令牌并将其传递给App1和App2并调整我现有的代码流程来解决这个问题。这是可能的,因为我不是在此处为keycloak创建app1和app2的任何客户端,而是仅为主应用程序app3创建的?是否必须在Keycloak中注册/创建所有客户端以支持SSO?”
答案 0 :(得分:0)
据我了解,如果您注册此主应用程序并使用它获取令牌以授权app1和app2,则它将使访问令牌无效。由于客户端ID和密码属于主应用,因此访问令牌将作为令牌中的访问者返回。如果您在通过app1或app2访问资源时验证令牌中的声明,则会返回错误,因为未满足预期的受众。如果您忽略此事实,则拥有令牌的任何人都将能够访问导致安全漏洞的任何资源。
希望这会有所帮助。