1

我创建了一个带有 GSUITE 身份验证的 PHP 登录页面。在 GSuite 身份验证之后(因为我无法对组的用户进行身份验证),我检查用户是否是特定 OPENLDAP 组的成员,如果不是,我强制重定向到登录页面。现在我需要对所有用户进行身份验证并且是特定 OPENLDAP 组的成员,以允许使用 Apache 反向代理身份验证访问后端服务器,但我需要两步身份验证:

  1. 用户必须经过 GSUITE 认证;
  2. 用户必须是特定 OPENLDAP 组的成员。

现在,我以这种方式解决了第一步:

<VirtualHost backend.mydomain.local:8443>
        ServerName backend.mydomain.local

        SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
        SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
        SSLHonorCipherOrder On
        SSLCompression off

        SSLEngine on
        SSLCertificateFile /etc/httpd/ssl/mySSL.crt
        SSLCertificateKeyFile /etc/httpd/ssl/mySSL.key
        SSLCACertificateFile /etc/httpd/ssl/gd_bundle-g2-g1.crt

        ErrorLog /var/log/httpd/backend_8443_error.log
        CustomLog /var/log/httpd/backend_8443_access.log combined

        OIDCProviderMetadataURL https://accounts.google.com/.well-known/openid-configuration
        OIDCClientID xxxxx.apps.googleusercontent.com
        OIDCClientSecret xxxxx
        OIDCRedirectURI https://backend.mydomain.local:8443/index.php
        OIDCScope "profile openid"
        OIDCCryptoPassphrase example@3003
        OIDCCookiePath /
        OIDCAuthNHeader X-Forwarded-User
        OIDCRemoteUserClaim sub
        OIDCClaimPrefix example_
        OIDCSessionInactivityTimeout 1800

        <Location />
                AuthType openid-connect
                Require valid-user
        </Location>

        ProxyPreserveHost On
        ProxyPass / http://192.168.0.20:5563/ connectiontimeout=1800 timeout=1800
        ProxyPassReverse / http://192.168.0.20:5563/
</VirtualHost> 

但是,当用户直接在浏览器中输入网址时,如何检查用户是否是特定 OPENLDAP 组的成员:backend.mydomain.local:8443

感谢您的支持。马可

4

0 回答 0