首页 > 解决方案 > 无法在服务器中访问 Keycloak 身份验证

问题描述

我正在构建一个使用 keycloak 10.0.2 保护的角度应用程序,我已经将它部署在服务器中,当我尝试访问它时,我无法访问 Keycloak 登录页面,这是我的配置

keycloak: {
    keycloakUrl: 'http://servername:8085/auth',
    realm: 'app',
    clientId: 'myapp',
    redirectUri: 'http://servername:8083/myapp'
  }

我应该输入http://localhost:8085/author http://servername:8085/auth,还是应该将 keycloak 中的 localhost 更改为服务器名称,因为 keycloak 已预先配置为 localhost。

我发现我必须启用远程访问并更改standalone.xml,我更改它但我仍然收到错误:

<interface name="management">
        <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
</interface>
<interface name="public">
        <inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>

在此处输入图像描述

在启动 Keycloak 时的日志下方:

在此处输入图像描述

标签: angularserverkeycloak

解决方案


这应该是一条评论,但我还没有这样做的“特权”。

首先,如果您可以提供 keycloak 服务器的日志,将会很有帮助,当您启动 keycloak 时,它应该告诉您它正在侦听的地址,确保它确实是http://0.0.0.0:8085/,特别是因为 8085 不是 keycloak 的默认端口。
如果它真的在监听,http://0.0.0.0:8085/那么我们需要有关您的网络设置的更多信息,例如:keycloak 和您的 Angular 应用程序是否都在同一台服务器上运行?您可以在 keycloak 服务器上使用 netstat 来确认它正在侦听指定端口吗?

这是显示它的 IP 和端口的 Keycloak 示例,请查找此行 在此处输入图像描述


推荐阅读