싱글 사인온에 CAS 프로토콜 또는 OAuth + 일부 인증 공급자를 사용해야하는지 궁금합니다 .
시나리오 예 :
- 사용자가 보호 된 리소스에 액세스하려고하지만 인증되지 않았습니다.
- 응용 프로그램은 사용자를 SSO 서버로 리디렉션합니다.
- 꿀벌이 인증되면 사용자는 SSO 서버에서 토큰을받습니다.
- SSO는 원래 응용 프로그램으로 리디렉션됩니다.
- 원래 응용 프로그램은 SSO 서버와 비교하여 토큰을 확인합니다.
- 토큰에 문제가 없으면 액세스가 허용되며 응용 프로그램은 사용자 ID를 알고 있습니다.
- 사용자는 로그 아웃을 수행하고 연결된 모든 응용 프로그램에서 동시에 로그 아웃합니다 (싱글 사인 아웃).
내가 이해하는 한 정확히 CAS가 발명 된 것입니다. CAS 클라이언트는 인증 서비스를 사용하기 위해 CAS 프로토콜을 구현해야합니다. 이제 클라이언트 (소비자) 사이트에서 CAS 또는 OAuth를 사용하려고합니다. OAuth가 CAS의 해당 부분을 대체합니까? 새로운 사실상의 표준으로서 OAuth를 선호해야합니까? 사용자 이름 / 암호, OpenID, TLS 인증서 등의 다른 방법을 지원하는 CAS의 인증 부분을 쉽게 사용할 수있는 (Sun OpenSSO가 아님) 대체품이 있습니까?
문맥:
- 다른 응용 프로그램은 SSO 서버의 인증에 의존해야하며 세션과 유사한 것을 사용해야합니다.
- 애플리케이션은 GUI 웹 애플리케이션 또는 (REST) 서비스 일 수 있습니다.
- SSO 서버는 중앙 사용자 정보 저장소에서 역할, 전자 메일 등과 같은 사용자에 대한 추가 정보를 얻는 데 필요한 사용자 ID를 제공해야합니다.
- 싱글 사인 아웃이 가능해야합니다.
- 대부분의 클라이언트는 Java 또는 PHP로 작성되었습니다.
방금 WRAP을 발견 했는데 OAuth 후속 작업이 될 수 있습니다. Microsoft, Google 및 Yahoo에서 지정한 새로운 프로토콜입니다.
추가
나는 OAuth가 SSO를 구현하는 데 사용될 수 있지만 인증을 위해 설계되지 않았지만 OpenID와 같은 SSO 서비스와 함께 사용된다는 것을 알게되었습니다.
OpenID는 "새로운 CAS"인 것 같습니다. CAS에는 싱글 사인 아웃과 같은 OpenID 누락 기능이 있지만 특정 시나리오에서 누락 된 부분을 추가하는 것은 어렵지 않습니다. OpenID는 광범위하게 수용되고 있으며 OpenID를 응용 프로그램이나 응용 프로그램 서버에 통합하는 것이 좋습니다. CAS도 OpenID를 지원한다는 것을 알고 있지만 CAS는 OpenID와 함께 없어야합니다.