Tôi tự hỏi liệu tôi nên sử dụng giao thức CAS hoặc OAuth + một số nhà cung cấp xác thực cho đăng nhập một lần.
Kịch bản ví dụ:
- Người dùng cố gắng truy cập tài nguyên được bảo vệ nhưng không được xác thực.
- Ứng dụng chuyển hướng người dùng đến máy chủ SSO.
- Nếu xác thực ong, người dùng sẽ nhận được 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 ổn, quyền truy cập sẽ được cho phép và ứng dụng biết 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ả các ứng dụng được kết nối cùng một lúc (đăng xuất một lần).
Theo như tôi hiểu thì đó chính xác là những gì CAS đã phát minh ra. Các máy khách CAS phải thực hiện 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? Có nên ưu tiên OAuth như một tiêu chuẩn thực tế mới? Có một sự thay thế dễ sử dụng (không phải Sun OpenSSO!) 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, chứng chỉ OpenID, TLS ...?
Bối cảnh:
- Các ứ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ì đó giống như phiên.
- Các ứng dụng có thể là ứng dụng web GUI hoặc serivces (REST).
- Máy chủ SSO phải được 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ừ kho lưu trữ thông tin người dùng trung tâm.
- Đăng xuất một lần nên có thể.
- Hầu hết các máy khách được viết bằng Java hoặc PHP.
Tôi mới phát hiện ra WRAP , có thể trở thành người kế vị 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 để triển khai SSO, mà 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ỏ lỡ (như đăng xuất một lần), nhưng không khó để thêm các phần còn thiếu trong một kịch bản cụ thể. Tôi nghĩ OpenID có sự 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ĩ CAS có thể phân phối được với OpenID.