我创建了一个带有 GSUITE 身份验证的 PHP 登录页面。在 GSuite 身份验证之后(因为我无法对组的用户进行身份验证),我检查用户是否是特定 OPENLDAP 组的成员,如果不是,我强制重定向到登录页面。现在我需要对所有用户进行身份验证并且是特定 OPENLDAP 组的成员,以允许使用 Apache 反向代理身份验证访问后端服务器,但我需要两步身份验证:
- 用户必须经过 GSUITE 认证;
- 用户必须是特定 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
感谢您的支持。马可