분류 전체보기 1341

Authorization Code Grant Type - 권한 부여 코드 승인 방식

흐름 및 특징 사용자가 애플리케이션을 승인하면 인가서버는 Redirect URI로 임시 코드 담아서 애플리케이션으로 다시 리다이렉션 한다 애플리케이션은 해당 임시 코드를 인가서버로 전달하고 액세스 토큰으로 교환한다 애플리케이션이 액세스 토큰을 요청할 때 해당 요청을 클라이언트 암호로 인증할 수 있으므로 공격자가 인증 코드를 가로채서 스스로 사용할 위험이 줄어듬 액세스 토큰이 사용자 또는 브라우저에 표시되지 않고 애플리케이션에 다시 전달하는 가장 안전한 방법이므로 토큰이 다른 사람에게 누출될 위험이 줄어듦 권한부여코드 요청 시 매개변수(Code 받는 API 호출) response_type=code (필수) client_id (필수) redirect_uri (선택사항) -> 선택사항이지만, 보통 필수적으로 ..

OAuth 2.0 Grant Type 개요

권한 부여 유형 권한부여란 클라이언트가 사용자를 대신해서 사용자의 승인하에 인가서버로부터 권한을 부여받는 것을 의미한다 OAuth 2.0 메커니즘은 아래와 같은 권한 부여 유형들을 지원하고 있으며 일부는 Depreacted 되었다 Authorization Code Grant Type 권한 코드 부여 타입, 서버 사이드 애플리케이션(웹( 애플리케이션),), 보안에 가장 안전한 유형 인증을 완료 후, 코드를 발급받은 뒤(role1) 이를 매개변수로 토큰을 생성할 매개변수로 전달하는 방식이다. Implicit Grant Type (Deprecated) 암시적 부여 타입, 공개 클라이언트 어플리케이션 (SPA 기반 자바스크립트 앱, 모바일 앱), 보안에 취약 스크립트 자체가 노출이 될 수 있으며, 전달받은 Ac..

Oauth 2.0 Token Types 이해

Access Token 클라이언트에서 사용자의 보호된 리소스에 접근하기 위해 사용하는 일종의 자격 증명으로서 역할을 하며 리소스 소유자가 클라이언트에게 부여한 권한 부여의 표현이다 일반적으로 JWT(JSON Web Tokens) 형식을 취하지만 사양에 따라 그럴 필요는 없다. 토큰에는 해당 액세스 기간, 범위 및 서버에 필요한 기타 정보가 있다. 타입에는 식별자 타입 (Identifier Type)과 자체 포함타입 (Self-contained Type) 이 있다 Refresh Token 액세스 토큰이 만료된 후 새 액세스 토큰을 얻기 위해 클라이언트 응용 프로그램에서 사용하는 자격 증명 액세스 토큰이 만료되는 경우 클라이언트는 권한 부여 서버로 인증하고 Refresh Token을 전달한다. 인증 서버는 ..

OAuth 2.0 Client Types 이해

개요 RFC 6749 - https://datatracker.ietf.org/doc/html/rfc6749#section-2.1 인증 서버에 클라이언트를 등록할 때 클라이언트 자격 증명인 클라이언트 아이디와 클라이언트 암호를 받는다. 클라이언트 암호는 비밀이고 그대로 유지되어야 하는 반면 클라이언트 아이디는 공개이다. 이 자격 증명은 인증 서버에 대한 클라이언트 ID를 증명한다 RFC ft-ietf-oauth-v2: The OAuth 2.0 Authorization Framework The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either o..

OAuth 2.0 Roles 이해

Resource Owner (자원 소유자) 보호된 자원에 대한 접근 권한을 부여할 수 있는 주체, 사용자로서 계정의 일부에 대한 접근 권한을 부여하는 사람 사용자를 대신하여 작동하려는 모든 클라이언트는 먼저 사용자의 허가를 받아야 한다 Resource Server (보호자원서버) 타사 애플리케이션에서 접근하는 사용자의 자원이 포함된 서버를 의미한다 액세스 토큰을 수락 및 검증할 수 있어야 하며 권한 체계에 따라 요청을 승인할 수 있어야 한다. Authorization Server (인가서버) 클라이언트가 사용자 계정에 대한 동의 및 접근을 요청할 때 상호 작용하는 서버로서 클라이언트의 권한 부여 요청을 승인하거나 거부하는 서버 사용자가 클라이언트에게 권한 부여 요청을 승인한 후 access token 을..

Coroutine과 RXJava/RxKotlin 비교

https://www.baeldung.com/kotlin/coroutines-vs-rxkotlin Coroutine과 RXJava/RxKotlin 의 비교 하는 논문이 있어 정리하고자 한다. Introduce https://www.reactivemanifesto.org/ The Reactive Manifesto Responsive: The system responds in a timely manner if at all possible. Responsiveness is the cornerstone of usability and utility, but more than that, responsiveness means that problems may be detected quickly and dealt wit..

keycloak 설치 및 설정

Keycloak 소개 ID 및 접근 관리를 지원하는 인가 서버 오픈소스로 사용자 연합, 강력한 인증, 사용자 관리, 세부화된 권한 부여 등을 제공한다. https://www.keycloak.org/downloads downloads - Keycloak Downloads 20.0.2 For a list of community maintained extensions check out the Extensions page. Server Quickstarts Client Adapters WildFly [DEPRECATED] CreateClient 클릭 3) Client ID 입력 후, Client 생성 4) Config 설정 5) 생성된 Client에서, Settings로 들어가 Valid redirect URI..

CORS

CORS HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다. 웹 애플리케이션이 리소스가 자신의 출처와 다를 때 브라우저는 요청 헤더에 Origin 필드에 요청 출처를 함께 담아 교차 출처 HTTP 요청을 실행한다. 출처를 비교하는 로직은 서버에 구현된 스펙이 아닌 브라우저에 구현된 스펙 기준으로 처리되며 브라우저는 클라이언트의 요청 헤더와 서버의 응답 헤더를 비교해서 최종 응답을 결정한다. 두 개의 출처를 비교하는 방법은 URL의 구성요소 중 Protocol, Host, Port 이 세 가지가 동일한지 확인하면 되고 나머지는 틀려도 상관없다. https://domain-a.com의 프론트 엔드 Ja..

HttpBasic 인증

HttpBasic 인증 Http는 엑세스 제어와 인증을 위한 프레임워크를 제공하며, 가장 일반적인 인증 방식은 "Basic" 인증방식이다. RFC7235 표준이며, 인증 프로토콜은 Http 인증 헤더에 기술되어 있다. 클라이언트는 인증정보 없이 서버로 접속을 시도한다 서버가 클라이언트에게 인증요구를 보낼 때 401 Unauthorized 응답과 함께 WWW-Authenticate 헤더를 기술해서 realm(보안영역) 과 Basic 인증방법을 보냄 클라이언트가 서버로 접속할 때 Base64 로 username 과 password 를 인코딩하고 Authorization 헤더에 담아서 요청함 성공적으로 완료되면 정상적인 상태 코드를 반환한다. HttpBasicConfigurer HttpBasic 인증에 대한 ..