带有Apache2.4反向代理的mod_auth_openidc

时间:2018-12-04 16:28:32

标签: apache2.4 mod-auth-openidc

我正在尝试使用OpenID为Centreon Web应用设置SSO。 这是架构: Apache 2.4 (Windows)和 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标头的名称(请参见documentation): CENTREON SSO CONF

当我转到https://myserver.com时,它会将我重定向到SSO登录页面。从这里我可以识别,我被重定向到Centreon,但没有登录,因此它将我重定向到Centreon登录页面。 在 login.log 的中心,我有:

[WEB] No contact found with this login : ''

它表明Centreon在“ MY_HEADER”标头中没有收到任何内容,因此SSO身份验证不起作用。

其他信息: (不知道它是否有用): 我的Apache反向代理正在侦听负载平衡器后面的http(80),该负载平衡器侦听HTTPS(443)并将其传输到HTTP(80)上的服务器

我的问题: 我不确定包含用户名的标题名称。在上面的配置中,有人可以确认Centreon应该收到包含用户名的标头“ MY_HEADER”吗? 谢谢

1 个答案:

答案 0 :(得分:1)

如果收到此消息,则表明该用户可能不存在于“配置>用户>联系人/用户”中。

也许您需要连接LDAP服务器并启用“自动导入”用户以自动导入丢失的用户。

很久以前,存在一个错误,您必须在提交的“ SSO黑名单客户地址”中填写任何电子邮件地址,否则它将发送此错误[WEB]与此登录名找不到联系:”,您可以尝试这个。