0

问题:鉴于运行 OpenAM 的服务器 URL 没有完全限定的主机名,如何在 OpenAM 中创建 Web 策略代理?

初始情况: 对于概念验证 (POC),我使用 docker 模拟服务器结构。我有一个 apache 网络服务器作为资源服务器(docker 容器),一个用于访问管理的 OpenAM docker 容器,以及一个在第三个容器中作为客户端运行的烧瓶 Web 应用程序。我通过 GUI 配置了 OpenAM。到目前为止,我的烧瓶应用程序可以使用此处指定的简单请求进行身份验证、请求和检索访问令牌。但是现在我也想保护 apache 资源服务器。对于没有烧瓶的开始,只需在 apache 网络服务器上安装一个 OpenAM Web 策略代理,并按照这个官方 ForgeRock 指南在 OpenAM 中配置一个 Web 策略代理配置文件。

问题: 使用 GUI 在 OpenAM 中配置代理配置文件时,OpenAM 容器的域名http://openam:8080/openam不被接受为有效的服务器 URL。

主机名错误

如果我改用例如http://openam.local:8080/openam错误不会显示。

到目前为止我尝试了什么:

  1. 我添加了一个用作反向代理的 Nginx 容器,并使用它将容器的主机名更改为<container>.local. http://openam.local:8080/openam现在我可以通过和到达容器http://apache.local:8080。但是,当我现在使用 访问 OpenAM GUI 时http://openam.local:8080/openam,输入默认密码,然后按Create Configuration配置失败并显示以下消息:创建配置错误
  2. 无法从 (1) 解决问题,我想我记得 Nginx 设置,而是尝试使用命令行配置代理配置文件 - 希望上述错误Hostname of server URL is not fully qualified仅限于 GUI。对于通过命令行进行的设置,这里有简单的命令./ssoadm create-agent ...作为描述。但是被弃用了,我无法弄清楚如何使用.ssoadmAmsterAmster
4

2 回答 2

1

这是 OpenAM 控制台/服务验证中的一个错误,它被跟踪为OPENAM-16073

然而,这些时候有一些 OpenAM 分叉。我会鼓励那些人重命名他们的产品/项目,因为这很令人困惑。

于 2020-12-18T12:08:41.247 回答
0

当使用原始问题中描述的 docker 时,您可以简单地使用-h标志设置容器的主机名。

示例 OpeanAM:

docker run -h openam.example.com -p 8080:8080 --name openam openidentityplatform/openam

示例 Apache Web 服务器:

docker run -it --name apache_agent -p 80:80 -h example.com --shm-size 2G --link=openam  apache_agent

OpenAM 现在可以通过http://openam.example.com:8080/openam和 apache 服务器通过http://example.com.

OpenAM 配置在没有错误的情况下运行,并且在配置 Web 策略代理时,URL 是完全限定的。

开始使用 OpenAM 的参考和最佳资源是来自 OpenAM git repo 的 wiki 的快速入门指南。

于 2021-01-03T11:08:34.340 回答