ringa_lee2017-04-18 10:07:43
CAS 요즘 대부분의 SSO는 CAS 솔루션을 채택하고 있습니다.
SSO 흐름도
SSO는 cookie
을 사용하여 구현됩니다. 쉽게 말하면 로그인 후 cookie
에 인증정보가 저장됩니다. app
요청이 있을 경우 먼저 본인의 애플리케이션에 로그인되어 있는지 확인할 수 있습니다. 로그인되지 않은 경우 인증 시스템으로 점프합니다. 이때 인증 시스템은 로그인 정보가 있는 경우 cookie
정보를 감지하여 요청한 시스템으로 점프합니다.
天蓬老师2017-04-18 10:07:43
조언을 주신 @kevinz에게 감사드립니다. 저는 이제 다음 방법을 사용합니다.
각 APP는 인증(Authentication)을 위해 Tomcat JDBCRealm을 사용하지만 인증을 위해서는 Spring Security를 사용합니다. 둘 다 동일한 사용자 정보 데이터베이스를 기반으로 합니다.
Tomcat에서 SSO를 켜세요. 이는 매우 중요합니다. 그렇지 않으면 동일한 도메인의 다른 웹앱에 액세스할 때 쿠키가 가져오지 않으며 인증이 불가능합니다.
각 웹앱에서 인증에 Tomcat을 사용하도록 Web.xml을 구성합니다. 인증에 Spring을 사용하면 Tomcat의 SSO가 작동하지 않습니다.
각 웹앱에서 spring을 구성하고 권한 제어(Authorization)를 위해 J2eePreAuthenticatedProcessingFilter를 사용하세요.
spring.xml의 구성
으아아아