2014-04-06 21 views
7

Tôi hiện đang điều tra việc di chuyển hệ thống theo dõi tài sản từ LDAP sang SAML. Có hai khu vực chính mà phần mềm của chúng tôi hiện đang sử dụng LDAP. Đầu tiên là xác thực. Để truy cập vào hệ thống ngày hôm nay, bạn cần xác thực thành công với LDAP và là thành viên của nhóm LDAP được chỉ định. Phần đó khá đơn giản để chuyển sang SAML. Chúng tôi đã sử dụng một thư viện để xử lý hầu hết các công việc bẩn thỉu. Và trên IDP, chúng tôi có thể thêm xác nhận quyền sở hữu để ủy quyền cho người dùng. Nhưng việc sử dụng LDAP thứ hai của chúng tôi là ném cho tôi một vòng lặp.LDAP và Ủy quyền SAML

Hôm nay, mỗi nội dung mà chúng tôi duy trì đều có khả năng được liên kết với tên người dùng. Ví dụ, một máy in cụ thể có thể thuộc về 'someuser'. Một trong các tùy chọn mà phần mềm của chúng tôi cung cấp cho quản trị viên là xem/tương tác với nội dung dựa trên nhóm người dùng LDAP. Vì vậy, với tư cách là quản trị viên, tôi có thể muốn cập nhật tất cả các máy in được sở hữu bởi những người trong một bộ phận cụ thể. Để thực hiện điều này, quản trị viên sẽ tạo một quy tắc được dàn xếp cho nhóm LDAP 'departmentInQuestion'. Sau đó, phần mềm của chúng tôi sẽ sử dụng tài khoản dịch vụ để kết nối với LDAP, tạo truy vấn để xem người dùng nào từ hệ thống của chúng tôi đang ở trong 'departmentInQuestion', thực thi và sử dụng kết quả để xác định nội dung nào sẽ nhận được bản cập nhật.

Cho đến khi tìm kiếm của tôi, tôi không thể tìm thấy luồng công việc SAML tương tự như vậy. Nó xuất hiện cơ hội duy nhất chúng ta phải lừa 'someuser' là khi họ xác thực và chúng tôi có quyền truy cập vào yêu sách của họ. Nhưng trong công việc của chúng tôi 'người dùng' có thể không bao giờ xác thực với chúng tôi. Nó gần như là chúng tôi đang sử dụng ủy quyền cho người dùng thay mặt cho tài khoản dịch vụ. Có một quy trình làm việc hiện tại mà tôi đã bỏ qua trong quá trình thăm dò của tôi không? Có bất kỳ công nghệ nào khác hỗ trợ ủy quyền theo cách này không?

Cảm ơn mọi đầu vào!

Trả lời

10

SAML giống như hộ chiếu hoặc visa. Thông tin có (tin cậy) về bạn có thể được sử dụng để biết về bạn (ví dụ: tên của bạn, DOB) và phỏng đoán những gì bạn có thể truy cập (ví dụ: lối vào một quốc gia). Bạn có thể sử dụng các thuộc tính trong mã thông báo để truy vấn các hệ thống khác về thông tin bổ sung mà bạn có thể được liên kết với (ví dụ: bảng sao kê ngân hàng của bạn).

Vì vậy, Tương tự, SAML thường được sử dụng để xác thực người dùng một hệ thống (một khi bạn tin tưởng đó là nguồn gốc), nhưng có là không có quy định để quản lý hồ sơ người dùng, hoặc 'tài nguyên'.

Quyết định cấp phép, nếu có, thường được thực hiện dựa trên các thuộc tính được liên kết với người dùng (ví dụ: nhóm anh ấy thuộc về) và được chuyển tải trong xác nhận quyền sở hữu trong mã thông báo bảo mật.

Có lẽ câu hỏi thứ nhất để trả lời là lý do bạn muốn chuyển khỏi LDAP và suy nghĩ về SAML. Có phải vì bạn muốn chấp nhận người dùng đăng nhập bằng thông tin đăng nhập của riêng họ không? Có phải vì bạn muốn loại bỏ hoàn toàn máy chủ LDAP

Bạn hoàn toàn có thể giữ máy chủ LDAP của mình để quản lý resources associated with users và xác thực người dùng ở một nơi khác. Đây là những gì bạn có bây giờ. Bạn sẽ tương quan người dùng "bên ngoài" và "bên trong" thông qua thuộc tính chung (ví dụ: tên người dùng hoặc một số ID).

Nếu bạn muốn loại bỏ tất cả LDAP, bạn cần một nơi khác để lưu trữ thông tin đó (ví dụ: cơ sở dữ liệu ứng dụng của bạn).

4

Xây dựng ứng phó Eugenio Pace 's, và đặc biệt là sau đoạn này:

Vì vậy, Tương tự, SAML thường được sử dụng để xác thực người dùng một hệ thống (một khi bạn tin tưởng đó là nguồn gốc), nhưng cũng có khá không có quy định nào để quản lý hồ sơ người dùng hoặc 'tài nguyên'.

Quyết định cấp phép, nếu có, thường được thực hiện dựa trên các thuộc tính được liên kết với người dùng (ví dụ: nhóm anh ấy thuộc về) và được chuyển tải trong xác nhận quyền sở hữu trong mã thông báo bảo mật.

Điều Eugenio đề cập đến ở đây là ABAC - kiểm soát truy cập dựa trên thuộc tính. SAML không làm điều đó. Để đạt được ABAC, bạn cần XACML. Cả SAML và XACML là các tiêu chuẩn được OASIS xác định và tương thích với nhau. Với XACML bạn có thể xác định các quy tắc dựa trên thuộc tính. Ví dụ chúng ta có thể xem lại ví dụ của bạn và viết một quy tắc như sau:

  • Một người sử dụng với vai trò == quản trị có thể thực hiện hành động == cập nhật trên một nguồn tài nguyên của loại == máy in nếu và chỉ khi bộ phận của người dùng == bộ phận máy in.

Bạn có thể đọc thêm về XACML trên ABAC tại các trang web tham khảo:

+1

SAML cũng cho phép một lớp trừu tượng để lưu trữ dữ liệu back-end có thể thay đổi mà không ảnh hưởng quá trình cấp phép. (tức là thay đổi từ nguồn LDAP này sang nguồn khác hoặc sử dụng cơ sở dữ liệu) -jim – jwilleke

Các vấn đề liên quan