gpt4 book ai didi

使用 LDAP 授权的 Apache 客户端证书身份验证

转载 作者:行者123 更新时间:2023-12-04 15:55:39 24 4
gpt4 key购买 nike

对于 Apache,我尝试使用客户端证书对用户进行身份验证,并使用 LDAP 组授权他们。到目前为止我有这个:

# Apache 2.4.6

LoadModule ssl_module modules/mod_ssl.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

Listen 9999
<VirtualHost *:9999>
ServerName example
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/certs/server.key
SSLCACertificateFile /etc/ssl/certs/ca.crt
SSLVerifyClient require
SSLVerifyDepth 1
SSLOptions +FakeBasicAuth

<Location /test/>
# SSLUserName SSL_CLIENT_S_DN_CN
# AuthBasicFake "%{SSL_CLIENT_S_DN_CN}"
AuthType basic
AuthName "Cert"
AuthBasicProvider ldap

AuthLDAPURL "ldap://localhost/dc=example?uid"
AuthLDAPBindDN "cn=admin,dc=example"
AuthLDAPBindPassword "test123"
AuthLDAPGroupAttribute uniqueMember

Require ldap-group cn=admin,ou=groups,dc=example
</Location>
</VirtualHost>

它在大多数情况下都有效,但是用户名以 /C=XX/L=Default City/O=Default Company Ltd/CN=testuser 结尾(即来自 X 的完整 DN .509 主题字段),而我希望它只是 testuser(即只是 CN,SSL_CLIENT_S_DN_CN)。

我尝试使用 AuthBasicFake 指令,这似乎正是我所需要的,但是用户名字段始终为空。有什么建议吗?

最佳答案

我得到它以使用以下配置。只有拥有由 SSLCACertificateFile 中的证书签名的 key 对的用户才能进行身份验证。在我的 LDAP 中,所有用户都属于 cn=user,ou=groups,dc=example 组,默认情况下可以访问整个站点。但是,一些用户也属于 cn=admin,ou=groups,dc=example,这将使他们能够访问 /admin-panel

LoadModule ssl_module modules/mod_ssl.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

Listen 9999
<VirtualHost *:9999>
ServerName www.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/certs/server.key
SSLCACertificateFile /etc/ssl/certs/ca.crt
SSLVerifyClient require
SSLVerifyDepth 1
SSLUserName SSL_CLIENT_S_DN_CN

<Location />
AuthType basic
AuthName "Cert"
AuthBasicProvider ldap

AuthLDAPURL "ldap://localhost/dc=example?uid"
AuthLDAPBindDN "cn=admin,dc=example"
AuthLDAPBindPassword "test123"
AuthLDAPGroupAttribute uniqueMember

Require ldap-group cn=user,ou=groups,dc=example
</Location>

<Location "/admin-panel">
Require ldap-group cn=admin,ou=groups,dc=example
</Location>
</VirtualHost>

关于使用 LDAP 授权的 Apache 客户端证书身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51792762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com