Tôi có một sự hiểu biết cơ bản về security concept trong Symfony2. Bây giờ tôi đang cố triển khai tính năng đăng nhập một lần cho trang web đa miền.Thực hiện một Symfony2 đăng nhập một lần
Khái niệm SSO chính nó là khá đơn giản:
- miền A là miền cookie; mọi người có thể đăng nhập trên miền này
- Khi đăng nhập trên miền B, người dùng được chuyển hướng đến miền A, trong đó yêu cầu One-time password. Người dùng cần một phiên trên miền A để nhận mật khẩu này.
- Sau khi nhận được OTP, người dùng được trả về miền B, sẽ khớp với OTP cho phiên trên miền A.
- Nếu phù hợp, phiên sẽ được tạo cho miền B. Phiên sẽ được xác thực đối với phiên trên miền A cho mỗi yêu cầu tiếp theo từ thời điểm này trở đi.
Triển khai tường lửa/xác thực cho miền A có thể được thực hiện như bình thường. Trong sự hiểu biết của tôi, tôi cần phải:
- Thiết lập tường lửa cho miền B
- Tạo một người biết lắng nghe cho tường lửa này, mà bằng cách nào đó chuyển hướng người dùng đến tên miền A (cụ thể hơn: một uri mà yêu cầu một OTP)
- Tạo một authentication provider để xử lý một OTP và tạo ra một phiên cho miền B
- Tạo một người biết lắng nghe để kiểm tra tính hợp lệ phiên so với phiên trên tên miền một
Tuy nhiên tôi có thể thực sự sử dụng một số mẹo về cách thực hiện điều này trong một nhóm. Nếu ai đó có thể giúp tôi ở đây, điều đó thật tuyệt.
Ngoài ra, tôi chưa chắc chắn cách triển khai OTP hoặc cách so sánh hai phiên và đảm bảo cả hai phiên đều hợp lệ. Điều đó sẽ đến sau, tôi cần phải làm việc này trước tiên.
này nghe có vẻ giống như một bó tuyệt vời nếu bạn có thể làm cho nó đi :-) – richsage
@richsage xem câu trả lời của riêng tôi :) –