Saya ingin tahu apakah saya harus menggunakan protokol CAS atau OAuth + beberapa penyedia otentikasi untuk sistem masuk tunggal.
Skenario Contoh:
- Pengguna mencoba mengakses sumber daya yang dilindungi, tetapi tidak diautentikasi.
- Aplikasi mengalihkan pengguna ke server SSO.
- Jika tidak dikonfirmasi, pengguna mendapat token dari server SSO.
- SSO mengalihkan ke aplikasi asli.
- Aplikasi asli memeriksa token terhadap server SSO.
- Jika tokennya ok, akses akan diizinkan dan aplikasi mengetahui id pengguna.
- Pengguna melakukan log-out dan keluar dari semua aplikasi yang terhubung secara bersamaan (single sign-out).
Sejauh yang saya mengerti itulah yang diciptakan CAS. Klien CAS harus mengimplementasikan protokol CAS untuk menggunakan layanan otentikasi. Sekarang saya ingin menggunakan CAS atau OAuth di situs klien (konsumen). Apakah OAuth pengganti untuk bagian CAS itu? Haruskah OAuth sebagai standar de-facto baru lebih disukai? Apakah ada pengganti yang mudah digunakan (bukan Sun OpenSSO!) Untuk bagian otentikasi CAS yang mendukung berbagai metode seperti nama pengguna / kata sandi, OpenID, sertifikat TLS ...?
Konteks:
- Aplikasi yang berbeda harus bergantung pada otentikasi server SSO dan harus menggunakan sesuatu seperti sesi.
- Aplikasi dapat berupa aplikasi web GUI atau layanan (REST).
- Server SSO harus memberikan ID pengguna, yang diperlukan untuk mendapatkan informasi lebih lanjut tentang peran seperti pengguna, email dan sebagainya dari toko informasi pengguna pusat.
- Keluar tunggal harus dimungkinkan.
- Sebagian besar klien ditulis dalam Java atau PHP.
Saya baru saja menemukan WRAP , yang bisa menjadi penerus OAuth. Ini adalah protokol baru yang ditentukan oleh Microsoft, Google dan Yahoo.
Tambahan
Saya telah belajar bahwa OAuth tidak dirancang untuk otentikasi bahkan dapat digunakan untuk mengimplementasikan SSO, tetapi hanya bersama dengan layanan SSO seperti OpenID.
Menurut saya OpenID adalah "CAS baru". CAS memiliki beberapa fitur yang terlewatkan oleh OpenID (seperti single sign-out), tetapi seharusnya tidak sulit untuk menambahkan bagian yang hilang dalam skenario tertentu. Saya pikir OpenID memiliki penerimaan luas dan lebih baik untuk mengintegrasikan OpenID ke dalam aplikasi atau server aplikasi. Saya tahu bahwa CAS juga mendukung OpenID, tetapi saya pikir CAS tidak dapat digunakan dengan OpenID.