Công ty của tôi phát triển và bán một ứng dụng SaaS có hàng trăm khách hàng. Một số khách hàng của chúng tôi đã yêu cầu chúng tôi hỗ trợ tích hợp LDAP để xác thực tài khoản người dùng dựa trên hệ thống hiện có của họ thay vì phải tạo một tài khoản đăng nhập khác cho từng nhân viên của họ. Có vẻ như điều này được gọi là Đăng nhập một lần (SSO) ở nhiều nơi? Đương nhiên hệ thống của chúng tôi đã có một cơ chế để duy trì hồ sơ tài khoản người dùng và xác thực các tài khoản người dùng đó từ trang đăng nhập của chúng tôi.Làm cách nào để tích hợp LDAP cho ứng dụng web của tôi?
Chúng tôi có chút không biết gì về LDAP và bị nhầm lẫn về một vài điều. Vui lòng giải thích việc sử dụng sai thuật ngữ có thể xảy ra (hãy nhớ, chúng tôi có chút không biết gì về điều này).
Chúng tôi nghĩ rằng chúng tôi hiểu những điều cơ bản về cách thức này có thể làm việc:
- khách hàng của chúng tôi cấu hình tài khoản của họ để "bật" các "xác thực từ xa" tính năng cho tài khoản của họ. Họ cung cấp URL từ xa sẽ xác thực người dùng của họ.
- Người dùng truy cập trang đăng nhập của chúng tôi và thử đăng nhập bằng tên người dùng và mật khẩu được cung cấp bởi hệ thống LDAP của công ty họ.
- Trang đăng nhập của chúng tôi sẽ chuyển tiếp an toàn thông tin xác thực đăng nhập (có thể được mã hóa và được băm nhỏ theo một số định dạng đã thỏa thuận) thành URL "xác thực từ xa" do khách hàng của chúng tôi cung cấp.
- Tập lệnh của khách hàng sẽ xác thực người dùng và sau đó chuyển hướng họ trở lại trang web của chúng tôi với "trạng thái xác thực".
- Trang của chúng tôi sẽ phân tích "trạng thái xác thực" và chấp nhận người dùng đã đăng nhập hay không.
Giả sử thông tin trên thậm chí còn bán chính xác, chúng tôi vẫn sẽ cần mỗi người dùng có tài khoản trong hệ thống của chúng tôi. Chúng ta sẽ không cần một số cách để đồng bộ hóa hồ sơ tài khoản người dùng của chúng tôi với các hồ sơ người dùng trong thư mục LDAP? Đây có phải chỉ đơn giản là "ID bên ngoài" tham chiếu ID của người dùng trong hệ thống LDAP không? Sau đó, có yêu cầu rằng tập lệnh "xác thực từ xa" của khách hàng phải cung cấp ID đó cho hệ thống của chúng tôi để chúng tôi biết tài khoản người dùng nào trong hệ thống của chúng tôi liên kết thông tin đăng nhập với?
Chúng ta đang thiếu gì?
BTW, nền tảng của chúng tôi là IIS, ASP.Net 2.0, và SQL Server 2005.