我正在尝试使用 OpenID 为 Centreon Web 应用程序设置 SSO。这是架构: Apache 2.4 (windows) with mod_auth_openidc 2.3.9 Centreon 2.8.17
我只希望一个虚拟主机通过 SSO 进行身份验证,因此我将所有 openidc conf 添加到 vhost.conf 文件中:
<VirtualHost *:80>
ServerName myserver.com
<Location />
AuthType openid-connect
Require valid-user
</Location>
OIDCProviderMetadataURL https://openid.com/fss/.well-known/openid-configuration
OIDCClientID MY-Centreon
OIDCClientSecret abcdefghijklmnop
OIDCProviderTokenEndpointAuth client_secret_post
OIDCRedirectURI https://myserver.com/ssoredirect
OIDCScope "openid profile"
OIDCCryptoPassphrase mypassphrase
OIDCAuthNHeader MY_HEADER
OIDCRemoteUserClaim sub
OIDCClaimPrefix myprefix_
ProxyPreserveHost on
ProxyPass / http://10.10.10.10/
ProxyPassReverse / http://10.10.10.10/
</VirtualHost>
在 Centreon 上,我们唯一要做的就是提供包含用户登录名的 HTTP 标头的名称(请参阅文档): CENTREON SSO CONF
当我转到https://myserver.com时,它会将我重定向到 SSO 登录页面。从这里我能够识别并且我被重定向到 Centreon 但未登录,因此它将我重定向到 Centreon 登录页面。在 centeron login.log我有:
[WEB] No contact found with this login : ''
它表明 Centreon 在“MY_HEADER”标头中没有收到任何内容,因此 SSO 身份验证不起作用。
附加信息:(不知道它是否有用):我的 Apache 反向代理正在侦听负载均衡器后面的 http(80),该负载均衡器侦听 HTTPS(443)并将其传输到 HTTP(80)上的服务器
我的问题:我不确定包含用户名的标题名称。在上面的配置中,有人可以确认 Centreon 应该收到一个包含用户名的标题“MY_HEADER”吗?谢谢