Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 클라이언트
- 인스턴스
- 자바
- jcenter
- 멀티쓰레드
- 생성자
- Swing
- HTML모드
- 컬렉션프레임워크
- mavenCentral
- 코딩
- 메소드
- springDataJPA
- 템플릿엔진
- SwingCalendar
- 상속
- java
- 깃허브
- socket
- 클래스
- 서버
- 백준
- springboot
- 카카오코딩테스트
- JPA Auditing
- Spring
- 사용자관리프로그램
- 바인드변수
- Oracle
- JavaScript
Archives
- Today
- Total
프리 정보 컨텐츠
SSO 통합 인증 시스템 구축방식 정리 본문
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