2016-05-05 103 views
2

我们正在考虑使用keycloak作为我们的SSO框架。SSO与keycloak

  1. 根据多租户的keycloak文件支持的应用程序服务器应该持有的所有keycloak.json认证文件,以获得这些文件的方式是从keycloak管理,有没有办法让他们动态通过API?或者至少得到领域公钥?我们希望避免为每个领域手动添加此文件到应用程序服务器(以避免停机等)。

  2. 另一个多租户相关问题 - 根据文档,应该为每个领域创建相同的客户端,所以如果我有100个领域和10个客户端,我应该定义相同的10个客户端100次?有没有其他选择?

  3. 我们的流程之一是后端微服务,应该根据应用程序进行身份验证(定义为keycloak客户端),我们希望避免为了安全原因保持用户/ psw在服务器上,是否有方法admin可以获取令牌并将其手动放置在该微服务的服务器文件系统上?有没有在keycloak UI中生成这个令牌的选项?

在此先感谢。

回答

2
  1. 所有Keycloak功能都可以通过admin REST API获得,因此您可以自动执行此操作。领域的公钥可通过http://localhost:8080/auth/realms/{realm}/

  2. 每个租户的领域将给出特定于租户的登录页面。因此,这是要走的路 - 10个客户注册100次。请参阅Keycloak文档的章节Client Registration。如果你不需要特定的主题,你可以选择把所有东西放在一个领域,但是在这条路上你会失去很多灵活性。

  3. 如果您的后端微服务应该显示为一个(技术)用户,您可以发出一个不会过期的脱机令牌。 This is the online documentation for offline tokens。目前,管理员没有管理功能来为用户检索离线标记。你需要自己构建它。管理员稍后可以使用给定的管理API撤消脱机令牌。