Цікаво, чи варто використовувати протокол CAS або OAuth + якийсь постачальник аутентифікації для єдиного входу.
Приклад сценарію:
- Користувач намагається отримати доступ до захищеного ресурсу, але не має автентифікації.
- Додаток перенаправляє користувача на сервер SSO.
- Якщо аутентифікація має місце, користувач отримує маркер від сервера SSO.
- SSO переспрямовує на оригінальну програму.
- Оригінальна програма перевіряє маркер на сервері SSO.
- Якщо ж маркер у порядку, доступ буде дозволений, і програма знає ідентифікатор користувача.
- Користувач здійснює вихід із системи та виходить із усіх підключених програм одночасно (одноразовий вихід).
Наскільки я розумію, саме це було винайдено CAS. Клієнти CAS повинні реалізувати протокол CAS, щоб використовувати послугу аутентифікації. Тепер мені цікаво використовувати CAS або OAuth на сайті клієнта (споживача). Чи замість OAuth тієї частини CAS? Чи слід віддати перевагу OAuth як новому стандарту де-факто? Чи є проста у використанні (не Sun OpenSSO!) Заміна для частини автентифікації CAS, що підтримує різні методи, такі як ім'я користувача / пароль, OpenID, сертифікати TLS ...?
Контекст:
- Різні програми повинні покладатися на автентифікацію сервера SSO і використовувати щось подібне до сеансу.
- Додатками можуть бути веб-програми GUI або (REST) серійні програми.
- Сервер SSO повинен надати ідентифікатор користувача, який необхідний для отримання додаткової інформації про користувача, наприклад ролі, електронну пошту тощо, з центрального магазину інформації про користувачів.
- Потрібно мати можливість одноразового виходу.
- Більшість клієнтів написані на Java або PHP.
Я щойно відкрив WRAP , який може стати наступником OAuth. Це новий протокол, визначений Microsoft, Google та Yahoo.
Додаток
Я дізнався, що OAuth не розроблений для аутентифікації, навіть він може використовуватися для реалізації SSO, але лише разом із службою SSO, як OpenID.
OpenID, мені здається, є "новим CAS". CAS має деякі функції пропусків OpenID (наприклад, одноразовий вихід), однак додавати відсутні частини в конкретний сценарій не слід. Я думаю, що OpenID має широке визнання, і краще інтегрувати OpenID в додатки або сервери додатків. Я знаю, що CAS також підтримує OpenID, але я вважаю, що CAS не потрібен OpenID.