Tôi tự hỏi mình có nên sử dụng giao thức CAS hoặc OAuth + một số nhà cung cấp xác thực để đăng nhập một lần hay không.SSO với CAS hoặc OAuth?
Ví dụ Kịch bản:
- người dùng cố gắng truy cập vào một tài nguyên được bảo vệ, nhưng không được chứng thực.
- Ứng dụng chuyển hướng người dùng đến máy chủ SSO.
- Nếu beeing xác thực người dùng nhận được một mã thông báo từ máy chủ SSO.
- SSO chuyển hướng đến ứng dụng gốc.
- Ứng dụng gốc kiểm tra mã thông báo đối với máy chủ SSO.
- Nếu mã thông báo là ok, quyền truy cập sẽ được cho phép và ứng dụng biết về id người dùng.
- Người dùng thực hiện đăng xuất và đăng xuất khỏi tất cả ứng dụng được kết nối cùng một lúc (đăng xuất một lần).
Theo tôi hiểu đó chính xác là những gì CAS được phát minh. Khách hàng CAS phải triển khai giao thức CAS để sử dụng dịch vụ xác thực. Bây giờ tôi đang tự hỏi về việc sử dụng CAS hoặc OAuth tại trang web của khách hàng (người tiêu dùng). OAuth có phải là sự thay thế cho phần đó của CAS không? OAuth có nên là tiêu chuẩn de-facto mới được ưa thích không? Có một cách dễ dàng để sử dụng (không phải Sun OpenSSO!) Thay thế cho phần xác thực của CAS hỗ trợ các phương thức khác nhau như tên người dùng/mật khẩu, OpenID, chứng chỉ TLS ...?
Bối cảnh:
- ứng dụng khác nhau nên dựa vào xác thực của máy chủ SSO và nên sử dụng một cái gì đó phiên như thế nào.
- Các ứng dụng có thể là các ứng dụng web GUI hoặc (REST) serivces.
- Máy chủ SSO phải cung cấp id người dùng, cần thiết để có thêm thông tin về người dùng như vai trò, email, v.v ... từ cửa hàng thông tin người dùng trung tâm.
- Đăng xuất một lần có thể thực hiện được.
- Hầu hết khách hàng được viết bằng Java hoặc PHP.
Tôi vừa mới discovered WRAP, có thể trở thành người kế thừa OAuth. Nó là một giao thức mới được chỉ định bởi Microsoft, Google và Yahoo.
Phụ Lục
Tôi đã học được rằng OAuth không được thiết kế để xác thực thậm chí nó có thể được sử dụng để thực hiện SSO, nhưng chỉ cùng với một dịch vụ SSO như OpenID.
OpenID dường như là "CAS mới". CAS có một số tính năng OpenID bỏ sót (như đăng xuất một lần), nhưng không khó để thêm các phần bị thiếu trong một kịch bản cụ thể. Tôi nghĩ OpenID đã chấp nhận rộng rãi và tốt hơn là tích hợp OpenID vào các ứng dụng hoặc máy chủ ứng dụng. Tôi biết rằng CAS cũng hỗ trợ OpenID, nhưng tôi nghĩ rằng CAS là không thể phân phối với OpenID.
Đăng xuất một lần là một tính năng chống. Tất cả các nghiên cứu người dùng tôi nhận thức được rằng đã bao phủ nó đã chỉ ra rằng đó là bất cứ nơi nào từ nhẹ đến cực kỳ khó hiểu cho người mới và người sử dụng điện như nhau. Cá nhân tôi phải sử dụng một hệ thống sử dụng đăng xuất một lần trên cơ sở hàng ngày và tôi thấy nó vô cùng khó chịu. Nó gần như không bao giờ là hành vi tôi muốn. –
Không đồng ý rằng đăng xuất một lần là một sự phản đối. Tất cả phụ thuộc vào các ứng dụng được đề cập. Đối với các ứng dụng web bằng cách nào đó liên quan đến nhau, tức là google mail và lịch google, điều đó có nghĩa là nếu bạn đăng xuất một cách rõ ràng, bạn sẽ đăng xuất khỏi tài khoản kia. Trong trường hợp với các ứng dụng không có "mối quan hệ" rõ ràng, tôi đồng ý với Bob. – ashwoods
Lưu ý rằng câu hỏi này ban đầu được yêu cầu trước khi OAuth 2.0 được giới thiệu, vì vậy thông tin liên quan đến OAuth có thể không còn chính xác nữa. – Andrew