프리 정보 컨텐츠

SSO 통합 인증 시스템 구축방식 정리 본문

코딩개념 정리

SSO 통합 인증 시스템 구축방식 정리

쏜스 2022. 1. 5. 10:54

SSO 정의를 한 줄로 간단하게 정리하자면

하나의 아이디와 패스워드로 여러 시스템에 접근할 수 있는 통합 로그인 솔루션입니다.

 

SSO 구성요소

1. 사용자 통합 로그인
2. 통합 Agent : 정보시스템에 대한 인증 정보 관리
3. 인증서버
4. LDAP : 인가된 사용자가 접근하는 네트워크 디렉토리 서비스

SSO 구축 유형

1. 인증 대행 모델 : Agent가 인증 작업 대행
2. 인증 정보 전달 모델 : 토큰(cookie)를 사용하여 자동으로 정보를 전달

※ 통합 인증 서버에 새로운 토큰 발급을 요청하는 메서드 구현

         /**
	 * SSO 통합 인증 서버에 인증이 된 경우 인증 서버의 토큰을 활용하여 로컬 로그인을 처리하는 메서드
	 * 
	 */
	public void ssoLoginByServer(ServletRequest request,
			ServletResponse response) throws Exception {
		SSORspData rspData = ssoService.ssoGetLoginData((HttpServletRequest)request);
 
		LoginVO loginVO = new LoginVO();
		loginVO.setUniqId(rspData.getUID());
		loginVO.setUserSe(rspData.getCN());
 
		//로컬 로그인 작성
		loginVO = loginService.actionLoginByEsntlId(loginVO);
 
 
		//((HttpServletRequest)request).getSession().setAttribute("uid", rspData.getUID());
 
		//스프링 시큐리티 로그인
		((HttpServletResponse)response).sendRedirect("/j_spring_security_check?j_username=" + loginVO.getUserSe() + loginVO.getId() + "&j_password=" + loginVO.getUniqId());
		//((HttpServletRequest)request).getRequestDispatcher("/j_spring_security_check?j_username=" + loginVO.getUserSe() + loginVO.getId() + "&j_password=" +                loginVO.getUniqId()).forward(request, response);
 
 
	}

통합 인증 서버의 토큰 정보를 바탕으로 LoginVO 객체를 생성하는 메서드 구현

        /**
	 * 토큰 정보를 바탕으로  loginVO 객체를 생성하는 메서드
	 * 
	 */
	public LoginVO getLoginVO(ServletRequest request, ServletResponse response){
		SSORspData rspData = ssoService.ssoGetLoginData((HttpServletRequest)request);
 
		LoginVO loginVO = new LoginVO();
		loginVO.setUniqId(rspData.getUID());
		loginVO.setUserSe(rspData.getCN());
 
		return  loginVO;
	}

 

Comments