Điểm:1

Proxy ngược Apache với xác thực Kerberos và ủy quyền LDAP

lá cờ to

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ó.

  • cấu hình của tôi:
<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?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.