当前位置: 首页 > 知识库问答 >
问题:

使用Keycloak SSO保持2个应用程序之间的身份验证

金嘉
2023-03-14
  1. Angular应用程序向KeyCloak发送/验证带有凭据的请求
  2. 如果响应成功,则返回身份验证cookie
  3. POST请求被发送到生成JSessionID cookie的Jhipster后端应用程序
  4. jsessionid然后用于对支持的应用程序的每个请求。

如果用户已经登录了域(*.domain.tld)中的一个应用程序,自动登录(不询问用户名和密码)的最佳方式是什么?

我试图将JSessionID用作全局令牌,然后才明白它只适用于生成它的应用程序...

从我在测试时看到的情况来看,在第一个应用程序上经过身份验证后,当我进入第二个应用程序时,Angular 401 HTTP拦截器重定向到带有会话令牌的keycloak登录页面。因此,此时Keycloak应该会看到我已经登录,并将我重定向到我的第二个应用程序的主页。

我说的对吗?

共有1个答案

应和光
2023-03-14

javascript适配器通过创建从身份验证服务器加载的iframe来解决这个问题。

来自keycloak文档:

会话状态iframe

<script src="keycloak.js"></script>
<script>
    var keycloak = Keycloak();
    keycloak.init().success(function(authenticated) {
        alert(authenticated ? 'authenticated' : 'not authenticated');
    }).error(function() {
        alert('failed to initialize');
    });
</script>
 类似资料:
  • 问题内容: 我想在我的Java应用程序中使用Windows NTLM认证来透明地认证Intranet用户。如果使用浏览器(单点登录),用户将不会注意到任何身份验证。 我发现了一些具有NTLM支持的库,但是不知道要使用哪个库: http://spnego.sourceforge.net/ http://sourceforge.net/projects/ntlmv2auth/ http://jcifs

  • 问题内容: 我有一个旧版应用程序,该应用程序通过网络异步接收用户名/密码请求。由于我已经将用户名和密码存储为变量,因此在Linux(Debian 6)上通过PAM进行身份验证的最佳方法是什么? 我尝试编写自己的对话功能,但不确定将密码输入其中的最佳方法。我已经考虑过将其存储在appdata中,并从pam_conv结构中引用它,但是几乎没有关于该操作的文档。 有没有一种简单的方法来对用户进行身份验证

  • 我有一个使用Kafka Streams API的应用程序。我在当地工作时没有问题。我想连接到远程Kafka代理进行阶段测试。远程Kafka代理设置为使用GSSAPI sasl机制并使用Kerberos。我运行用java编写的Streams应用程序时出错。在我查找错误消息后,我找到了答案,但仍然有问题。 错误消息;获取相关id为3的元数据时出错:{[APPID]-KTABLE-AGGREGATE-S

  • 我需要在我们的Web应用程序中使用LDAP/AD服务器实现SSO身份验证和验证用户。Web应用程序是使用Spring(Java)/Hibernate制作的,应用程序服务器是UAT中的Jboss和生产中的Webphere。 我正在寻找一些好的简单的解决方案,可以帮助我实现它,从几个朋友那里听说华夫饼是一个很好的解决方案,但是在网上搜索并尝试了几天之后,我不确定我是否朝着正确的方向前进。我在这方面很幼

  • 我的应用/构建。格雷德尔: 在调试模式下,我成功地完成了auth。由Firebase授权。 输入电话号码 好的。工作正常。 但当我想在发布模式下执行此操作时,我会遇到下一个错误:

  • 我在决定如何为一个RESTful API实现身份验证时遇到了一些麻烦,该API既可供web应用程序使用,也可供移动应用程序使用。 首先,我想研究HTTPS上的HTTP基本身份验证作为一种选择。对于移动应用程序来说,用户名和密码可以安全地存储在操作系统钥匙链中,并且在传输过程中无法被拦截,因为请求是通过HTTPS发出的。对于API来说,它也很优雅,因为它将是完全无状态的。问题在于web应用程序。将无