Tôi đã thiết lập Gravitee APIM 3x (cổng, rest-api, bảng điều khiển và cổng thông tin).
Điều này làm việc tốt. Khi cố gắng thay thế xác thực bộ nhớ bằng xác thực LDAP (FreeIPA), tôi có thể yêu cầu dịch vụ đăng nhập người dùng nhưng họ không được giao vai trò.
Lý do cho điều này là nó đang sử dụng DN đầy đủ của người dùng trong trường memberUid, trường này chỉ có tên người dùng trong đó.
Một nhận xét từ @abbra khiến tôi nhận ra rằng tôi đã quên cách tổ chức các nhóm của mình. Chúng ta có một tập hợp các nhóm cơ sở, gọi chúng là các vai trò, các vai trò này là thành viên của các nhóm khác nhau. Vì vậy, khi tra cứu trường thành viên trong cn=groups,cn=accounts,dc=somedomain,dc=com
đối với các nhóm Gravitee, nó sẽ đề cập đến một nhóm khác có chứa hội viên
các trường với người dùng hoàn chỉnh dn
.
Vì vậy, câu hỏi bây giờ trở thành, làm cách nào tôi có thể tra cứu nhóm theo cách đệ quy trong Gravitee? Có thể không, hay tôi phải thêm từng thành viên vào nhóm một cách rõ ràng?
Làm thế nào tôi có thể giải quyết điều này? Tôi bỏ qua câu hỏi ban đầu.
Ngày 04 tháng 2 16:27:46 somehost.somedomain.com gravitee[22030]: 16:27:46.646 [gravitee-listener-44] GỠ LỖI o.s.s.l.u.DefaultLdapAuthoritiesPopulator - Tìm kiếm vai trò cho người dùng 'my_user', DN = 'uid=my_user,cn =users,cn=accounts,dc=somedomain,dc=com', với bộ lọc (&(objectClass=posixGroup)(memberUid={0})) trong cơ sở tìm kiếm 'cn=groups,cn=compat'
Ngày 04 tháng 2 16:27:46 somehost.somedomain.com gravitee[22030]: 16:27:46.647 [gravitee-listener-44] GỠ LỖI o.s.s.l.SpringSecurityLdapTemplate - Sử dụng bộ lọc: (&(objectClass=posixGroup)(memberUid=uid=my_user, cn=users,cn=accounts,dc=somedomain,dc=com))
Ngày 04 tháng 2 16:27:46 somehost.somedomain.com gravitee[22030]: 16:27:46.713 [gravitee-listener-44] GỠ LỖI o.s.s.l.u.DefaultLdapAuthoritiesPopulator - Vai trò từ tìm kiếm: []