首页 文章

SSO与keycloak

提问于
浏览
4

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

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

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

  • 我们的一个流程是后端微服务,应该针对应用程序(定义为keycloak客户端)进行身份验证,我们希望避免出于安全原因在服务器上保留user / psw,管理员是否可以获取令牌并将其手动放置在该微服务的服务器文件系统上?有没有在keycloak UI中生成此令牌的选项?

提前致谢 .

1 回答

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

    • 每个租户的领域将提供特定于租户的登录页面 . 因此,这是要走的路 - 10个客户注册100次 . 请参阅Keycloak文档的Client Registration章节中的更多内容 . 如果您不需要特定的主题,您可以选择将所有内容放在一个领域,但是您将在该路径上失去很多灵活性 .

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

相关问题