본문 바로가기

Project/SSO4

OAuth Annotation 분석 OAuth 2.0 의 개발을 진행하던중 처음 해보는 생소한 코드가 너무 많아서 분석이 안되는 부분이 많아 Annotation 부터 분석을 해보자 라는 생각을 하게되었다. @EnableAuthorizationSever - @Target, @Retention , @Documented Annotation을 포함하고 있고 인터페이스이다. 현재 애플리케이션 컨텍스트에서 Authorization Sever(AuthorizationEndpoint)를 활성화하기 위한 Annotation 이다. @Configuration - Annotation 이 달린 클래스는 Bean설정을 담당하는 클래스가 된다. 선언된 해당 클래스 안에서 @Bean Annotation 이 동봉된 메소드를 선언하면, 그 메소드를 통해 스프링 Bean.. 2022. 7. 8.
SSO 아키텍처 현재 구현하고자 하는 프로젝트에 OAuth 를 이용한 SSO 아키텍처를 먼저 설계했다. 0. 로그인을 하지 않은 사용자는 Resoure Server를 통해 최초 로그인을 진행하게 된다. 1. 사용자는 웹을 이요해 Client 웹에 접속을 하게된다. 2. Client는 현재 사용자를 Resource Server에게 인증을 요청하게 된다. 3-1. Resource Server 에서 인증이 완료가 된다면 Client에게 인증이 완료되었다고 Redirect 해준다. ↑ 정상적인 인증 로직 ↓ 토큰 발급을 통한 재 인증 로직 3-2. Resource Server 에서 인증이 완료이 완료되지 않았다면 Authorization Sever에게 토큰에 대한 발급을 요청한다. 4. Authorization Sever는 토.. 2022. 7. 6.
SSO/OAuth R&D Single Sign - On - 한번의 로그인 인증으로 여러 개의 서비스를 추가적인 인증없이 사용할 수 있는 기술 SSO 사용의 장점 로그인 기능 로직을 한번만 수행함으로써 사용자에게 편리함 제공 인증 기능을 모든 서비스마다 구현하지 않아도 된다. SSO 사용의 단점 한번의 인증으로 많은 정보를 제공하여, 해킹의 피해시 규모가 크다. 아이디의 접속 권한을 잃어버리면 모든 서비스를 사용할 수 없다. 각각의 서비스마다 보안 수준이 다르면 보안에 문제가 생길 수 있다. OAuth (Open Standard for Authorization) - 한번의 인증절차로 다른 웹서비스를 이용할 때 아이디/패스워드의 개인정보를 전송하지 않고도 자신의 접근 또는 기타권한을 부여할 수 있도록 하는 인증방식 OAuth 의 장.. 2022. 7. 6.
SSO JWT Token (JWT 가 어떤건지 파악하기) 1.JSON Web Token 전자서명 된 URL-safe(URL로 이용할 수 있는 문자 만 구성된)의 JSON 데이터 구조로 표현한 토큰 2.구성 Header : 토큰의 타입과 해시 암호화 알고리즘 토큰의 유형 JWT 를 나타냄 HMAC, SHA256 또는 RSA 와 같은 해시 알고리즘 Payload(페이로드) : 토큰에 담을 클레임 정보를 포함 name/value 로 구성 등록(registered) 클레임, 공개(public) 클레임, 비공개(private)클레임 세종류 Sinature(서명) : secret key를 포함하여 암호화 Header JWT 웹 토큰의 헤더 정보 { "alg" : "HS256", "typ" : "JWT" } typ : 토큰의 타입, JWT 만 존재 alg : 해싱 알고리즘.. 2022. 6. 21.