본문 바로가기

전체 글375

OAuth2.0 OAuth2.0 란?OAuth2.0OAuth 2.0은 인증에 대한 산업 표준 프로토콜로, '제 3자 애플리케이션'이 사용자를 대신해 HTTP 서비스를 이용할 수 있는 권한을 부여하는 메커니즘을 제공한다.이 프로토콜은 사용자의 로그인 정보를 제 3자 앱이나 웹사이트와 공유하지 않고도, 해당 앱이나 웹사이트가 사용자의 대신에 특정 작업을 수행하도록 허용한다.예를 들어, 한 사용자가 사진 공유 애플리케이션을 사용하고 있다고 가정해 보자. 이 사용자가 원한다면 이 애플리케이션에 Facebook 또는 Google 계정 정보를 제공함으로써, 애플리케이션은 사용자의 소셜 미디어 사진을 가져오거나, 소셜 미디어 계정에 새 사진을 게시하는 등의 작업을 수행할 수 있다.이 과정에서 사용자는 사진 공유 애플리케이션에 직접 .. 2024. 12. 19.
인트로스펙션(Introspection) (+ 불투명 토큰 ) 인트로스펙션(Introspection)은 OAuth 2.0에서 사용되는 토큰 검증 방식 중 하나로, 불투명 토큰(opaque token)의 상태 및 세부 정보를 확인하기 위해 리소스 서버가 권한 서버(Authorization Server)에 요청을 보내는 과정을 의미합니다.불투명 토큰(Opaque Token)은 토큰 자체에 사용자 정보나 권한 등의 데이터를 담지 않고, 단순한 무작위 문자열로 이루어진 토큰입니다. 토큰 자체는 해석할 수 없기 때문에 "불투명"하다고 불립니다.이러한 불투명 토큰의 유효성을 확인하려면 리소스 서버가 권한 서버(Authorization Server)에 요청을 보내어 검증해야 합니다. 이를 토큰 인트로스펙션(Token Introspection)이라고 합니다.불투명 토큰의 특징토큰.. 2024. 12. 18.
OpenID Connect (OIDC) OpenID Connect (OIDC)는 OAuth 2.0을 기반으로 한 인증(Authentication) 프로토콜입니다. OIDC는 사용자를 인증하고 그 결과를 애플리케이션(클라이언트)과 공유하기 위한 표준 프로토콜입니다. OAuth 2.0이 권한 부여(Authorization)를 처리하는 반면, OIDC는 인증(Authentication)에 초점을 맞춥니다.1. OIDC란?OpenID Connect는 OAuth 2.0의 확장으로, 사용자 인증을 위한 ID 토큰을 제공합니다.인증 후 사용자 정보를 애플리케이션에 전달하여 사용자를 식별하고 세션을 생성합니다.주로 싱글 사인온(SSO) 시스템을 구현할 때 사용됩니다.2. OIDC의 주요 구성 요소ID Token: 사용자의 인증 정보를 포함하는 JWT(JS.. 2024. 12. 18.
액세스 토큰 받는 법 bill, password 로 로그인 그 후 Verifier code 생성 후 그 코드를 사용해 Challenge code 생성   그 후 XXX에 생성한 챌린지 코드 넣고 로그인한 페이지 URL에 입력후 엔터http://localhost:8080/oauth2/authorize?response_type=code&client_id=client&scope=openid&redirect_uri=https://www.manning.com/authorized&code_challenge=XXX&code_challenge_method=S256 그리고 생성된 authorized 코드를 복사 한 후 https://www.manning.com/authorized?code=XXX  포스트맨에서 아래처럼 Verify code .. 2024. 12. 17.
UserDetails, UserDetailService Spring Security에서 JPA와 데이터베이스 연계를 통해 사용자 정보를 조회하는 방식은 UserDetailsService를 구현하고 JPA Repository를 활용하는 방법입니다. 인메모리 방식(InMemoryUserDetailsManager) 대신 데이터베이스에 저장된 사용자 정보를 사용하도록 설정해야 합니다.1. 데이터베이스 테이블 준비우선, 사용자 정보를 저장할 테이블이 필요합니다. 기본적으로 아이디, 비밀번호, 권한을 포함해야 합니다.SQL 예제: users 테이블과 roles 테이블CREATE TABLE users ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password .. 2024. 12. 17.
Client Credentials Grant Client Credentials Grant는 OAuth 2.0에서 사용자가 개입하지 않고 클라이언트 애플리케이션이 자신의 자격 증명(Client ID와 Client Secret)을 사용해 액세스 토큰을 발급받는 인증 방식입니다. 주요 목적: 서버 간 통신(Server-to-Server)이나 사용자가 필요 없는 작업에서 사용됩니다.1. Client Credentials Grant 개요사용자 인증이 필요하지 않습니다. 클라이언트 애플리케이션 자체가 인증 서버에 자신의 자격 증명을 사용해 토큰을 발급받습니다. 주로 백엔드 서비스 또는 마이크로서비스 간 통신에서 사용됩니다.2. Client Credentials Grant 흐름단계별 흐름클라이언트가 토큰 요청 클라이언트는 인증 서버에 Client ID와.. 2024. 12. 17.