Phiên bản máy chủ: Apache/2.4.37 (Red Hat Enterprise Linux)
Apache được khởi chạy dưới dạng vùng chứa trong cụm Openshift.
Tôi đang sử dụng Apache làm proxy chuyển tiếp và đảo ngược cho Kibana.
Yêu cầu bắt buộc là sử dụng Kerberos và cần một mô hình vai trò để phân biệt quyền truy cập.
Tôi đã tạo trong quản trị viên elaticsearch và người dùng xem.
Tùy thuộc vào nhóm LDAP, Apache phải truyền tiêu đề có thông tin đăng nhập và mật khẩu của quản trị viên hoặc trình xem.
Nhưng không có cách nào tôi có thể có được nó.
<AuthnProviderAlias ldap ldap-access>
AuthLDAPURL "ldap://ldap.example.com:389/dc=example,dc=com?cn?sub?(objectClass=user)"
AuthLDAPBindDN "CN=ServiceAccount,OU=Users,DC=example,DC=com"
AuthLDAPBindPassword "password"
</AuthnProviderAlias>
<AuthzProviderAlias ldap-group ldap-group-viewer CN=viewer,OU=Groups,DC=example,DC=com>
AuthLDAPURL "ldap://ldap.example.com:389/dc=example,dc=com?cn?sub?(objectClass=user)"
AuthLDAPBindDN "CN=ServiceAccount,OU=Users,DC=example,DC=com"
AuthLDAPBindPassword "password""
</AuthzProviderAlias>
<AuthzProviderAlias ldap-group ldap-group-admin CN=admin,OU=Groups,DC=example,DC=com>
AuthLDAPURL "ldap://ldap.example.com:389/dc=example,dc=com?cn?sub?(objectClass=user)"
AuthLDAPBindDN "CN=ServiceAccount,OU=Users,DC=example,DC=com"
AuthLDAPBindPassword "password""
</AuthzProviderAlias>
<LocationMatch "/kibana">
AuthType GSSAPI
AuthName "Kerberos Auth"
GssapiSSLonly Off
GssapiBasicAuth On
GssapiAllowedMech krb5
GssapiSessionKey file:/tmp/session.key
GssapiCredStore keytab:/etc/httpd/krb5.keytab
GssapiCredStore ccache:FILE:/var/run/httpd/krb5ccache
GssapiDelegCcacheDir /var/run/httpd/clientcaches
GssapiImpersonate On
GssapiLocalName On
GssapiUseSessions On
Session On
SessionExpiryUpdateInterval 300
SessionInclude /
SessionCookieName gssapi_session path=/;httponly;secure;
BrowserMatch Windows gssapi-no-negotiate
LogLevel debug
AuthBasicProvider ldap-access
<RequireAll>
Require ldap-group-viewer
Require ldap-group-admin
</RequireAll>
ProxyPass http://kibana:5601/kibana
ProxyPassReverse http://kibana:5601/kibana
RequestHeader set Authorization "Basic dmlld2VyOnZpZXdlcg=="
</LocationMatch>
Trong cấu hình này, tất cả người dùng trong nhóm đăng nhập bằng cùng một thông tin đăng nhập, nhưng tôi cần chia sẻ quyền.
- Đối với người xem - RequestHeader đặt Ủy quyền "Basic dmlld2VyOnZpZXdlcg=="
- Đối với quản trị viên - RequestHeader đặt Ủy quyền "Basic YWRtaW46YWRtaW4="
Tôi đã cố thêm thuộc tính vào url LDAP và sử dụng biến AUTHORIZATION_Viewer như tại đây Apache: Làm cách nào để biết máy chủ LDAP nào mà người dùng của tôi đã được xác thực:
AuthLDAPURL "ldap://ldap.example.com:389/dc=example,dc=com?cn,Viewer?sub?(objectClass=user)"
Và sau đó:
RequestHeader đặt Ủy quyền "Cơ bản dmlld2VyOnZpZXdlcg==" env=AUTHENTICATE_Viewer
Nhưng trong nhật ký Apache, một biến như vậy hoàn toàn không xuất hiện.
Cũng đã thử tùy chọn với khối, nhưng không thành công.
Có cách nào để tạo ra một hình mẫu vai trò trong Apache không?