Spring Security 설정간소화 서비스를 사용한 SSO 로그인 사용관련 문의
- 작성자 :
- 한*호
- 작성일 :
- 2022-10-11 11:23:24
- 조회수 :
- 1,569
- 구분 :
- 공통컴포넌트 / 3.6
- 진행상태 :
- 완료
Q
안녕하세요.
Spring Security 설정 간소화 서비스를 사용한 SSO 로그인 사용 관련 및 기타 문의 드립니다.
첨부 이미지와 같이 EgovWebApplicationInitializer.java 에서 사용 중입니다.
1. SSO 로그인을 사용하려면 아래와 같이 적용하면 되는지 문의 드립니다.
-> 로그인 필터
FilterRegistration.Dynamic egovSpringSecurityLoginFilter = servletContext.addFilter("egovSpringSecurityLoginFilter", new EgovSpringSecurityLoginFilter());
EgovWebApplicationInitializer.java 에서 EgovSpringSecurityLoginFilter 등록 이전에 egovframework.com.uat.sso.filter.EgovSSOLoginFilter 를 등록 해주면 될까요?
-> 로그아웃 필터
FilterRegistration.Dynamic egovSpringSecurityLogoutFilter = servletContext.addFilter("egovSpringSecurityLogoutFilter", new EgovSpringSecurityLogoutFilter());
EgovWebApplicationInitializer.java 에서 EgovSpringSecurityLogoutFilter 등록 이전에 egovframework.com.uat.sso.filter.EgovSSOLogoutFilter를 등록 해주면 될까요?
2. context-security.xml 에서
<egov-security:config id="securityConfig" csrf="true"/>
csrf 를 true 로 설정 시에
egovframework.com.sec.security.filter.EgovSpringSecurityLogoutFilter 에서
((HttpServletResponse) response).sendRedirect(((HttpServletRequest) request).getContextPath() + "/egov_security_logout");
/egov_security_logout <<==== url 이 404 처리됩니다.
csrf 를 false 로 설정 시에는 정상 처리 됩니다.
위의 호출 url 은 전자정부 내부 패키지에서 처리 되고있는 url 인가요??
감사합니다.
Spring Security 설정 간소화 서비스를 사용한 SSO 로그인 사용 관련 및 기타 문의 드립니다.
첨부 이미지와 같이 EgovWebApplicationInitializer.java 에서 사용 중입니다.
1. SSO 로그인을 사용하려면 아래와 같이 적용하면 되는지 문의 드립니다.
-> 로그인 필터
FilterRegistration.Dynamic egovSpringSecurityLoginFilter = servletContext.addFilter("egovSpringSecurityLoginFilter", new EgovSpringSecurityLoginFilter());
EgovWebApplicationInitializer.java 에서 EgovSpringSecurityLoginFilter 등록 이전에 egovframework.com.uat.sso.filter.EgovSSOLoginFilter 를 등록 해주면 될까요?
-> 로그아웃 필터
FilterRegistration.Dynamic egovSpringSecurityLogoutFilter = servletContext.addFilter("egovSpringSecurityLogoutFilter", new EgovSpringSecurityLogoutFilter());
EgovWebApplicationInitializer.java 에서 EgovSpringSecurityLogoutFilter 등록 이전에 egovframework.com.uat.sso.filter.EgovSSOLogoutFilter를 등록 해주면 될까요?
2. context-security.xml 에서
<egov-security:config id="securityConfig" csrf="true"/>
csrf 를 true 로 설정 시에
egovframework.com.sec.security.filter.EgovSpringSecurityLogoutFilter 에서
((HttpServletResponse) response).sendRedirect(((HttpServletRequest) request).getContextPath() + "/egov_security_logout");
/egov_security_logout <<==== url 이 404 처리됩니다.
csrf 를 false 로 설정 시에는 정상 처리 됩니다.
위의 호출 url 은 전자정부 내부 패키지에서 처리 되고있는 url 인가요??
감사합니다.
환경정보
-
- OS 정보 : windows11
- 표준프레임워크 버전 : 3.10.0
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat 8.5
- DB 정보 : mariadb
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
1. 표준프레임워크의 SSO 연계 서비스는 3rd party SSO 솔루션을 활용하여 인증 서비스를 구축할 때 인터페이스 형태의 예시만을 제공합니다.
또한, 시큐리티 설정간소화의 경우 단일 서비스에서 로그인 정보(아이디, 패스워드) 를 이용한 인증인가 기능을 제공합니다.
따라서, 구현하는 내용이 SSO 인증처리에 대한 부분이라면 시큐리티 간소화를 이용하여 인증인가처리를 진행한 다음
세션 공유나 인증토큰 발급 프로세스가 필요하며 이 부분은 직접 구현하셔야 합니다.
2. csrf를 구성하려면 먼저
로그인이나 로그아웃 혹은 작업화면 요청 시 CSRF 토큰을 생성하여 세션에 저장하고
요청 페이지에 CSRF 토큰을 셋팅하여 전송해야 합니다.
즉 요청페이지에서
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
와 같이 토큰을 넘겨줘야 정상적으로 처리할 수 있습니다.
감사합니다.
표준프레임워크센터입니다.
1. 표준프레임워크의 SSO 연계 서비스는 3rd party SSO 솔루션을 활용하여 인증 서비스를 구축할 때 인터페이스 형태의 예시만을 제공합니다.
또한, 시큐리티 설정간소화의 경우 단일 서비스에서 로그인 정보(아이디, 패스워드) 를 이용한 인증인가 기능을 제공합니다.
따라서, 구현하는 내용이 SSO 인증처리에 대한 부분이라면 시큐리티 간소화를 이용하여 인증인가처리를 진행한 다음
세션 공유나 인증토큰 발급 프로세스가 필요하며 이 부분은 직접 구현하셔야 합니다.
2. csrf를 구성하려면 먼저
로그인이나 로그아웃 혹은 작업화면 요청 시 CSRF 토큰을 생성하여 세션에 저장하고
요청 페이지에 CSRF 토큰을 셋팅하여 전송해야 합니다.
즉 요청페이지에서
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
와 같이 토큰을 넘겨줘야 정상적으로 처리할 수 있습니다.
감사합니다.