오늘의 키워드
- OAuth 2.0
오늘의 내용
OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹 사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 접근 위임을 위한 개방형 표준이다. 사용자가 애플리케이션에게 모든 권한을 넘기지 않고 사용자 대신 서비스를 이용할 수 있게 해주는 HTTP 기반의 보안 프로토콜이다.
- Resource Owner: 자원 소유자를 말하며 일반적으로 사용자를 의미한다.
- Client: 자원 소유자를 대신해 서버에 접근하는 애플리케이션이다.
- Authorization Server: 자원 소유자의 권한을 검증하고 액세스 토큰을 발급하는 서버이다.
- Resource Server: 보호된 자원에 대한 요청을 처리하고 클라이언트의 요청을 수락하기 위해 액세스 토큰을 검증하는 서버이다.
- Access Token: 클라이언트가 자원 서버에 접근할 때 사용하는 자격 증명으로 제한된 시간에만 유효하다.
- Refresh Token: 액세스 토큰이 만료된 후 새로운 액세스 토큰을 얻기 위해 사용하는 자격 증명이다.
현재는 OAuth 2.0을 주로 사용하며 주요 흐름은 다음과 같다:
- Authorization Code Grant (권한 부여 코드 플로우): 가장 일반적인 흐름으로, 클라이언트가 인증 서버로부터 권한 부여 코드를 받고 이를 사용해 액세스 토큰을 요청한다.
- Implicit Grant (암시적 플로우): 클라이언트 측 애플리케이션에 주로 사용되며, 권한 부여 코드 없이 액세스 토큰이 직접 발급된다.
- Resource Owner Password Credentials Grant (자원 소유자 비밀번호 자격 증명 플로우): 사용자가 자신의 자격 증명을 직접 클라이언트에 제공할 때 사용되며, 보안이 상대적으로 낮아 신뢰할 수 있는 클라이언트에서만 사용해야 한다.
- Client Credentials Grant (클라이언트 자격 증명 플로우): 클라이언트가 자원 소유자를 대신하지 않고 자신을 인증할 때 사용되며, 주로 서버 간 통신에 사용된다.
오늘의 회고
오늘은 OAuth 2.0에 대해 이해하는 시간을 가졌다. OAuth 2.0은 다양한 인증 및 권한 부여 시나리오를 지원하며, 이를 통해 사용자와 애플리케이션 간의 보안이 강화된다. 앞으로 OAuth 2.0을 활용한 프로젝트를 진행할 때 이 지식을 적극적으로 활용해보고 싶다. 또한 새로운 주차가 되면서 새로운 팀원들과 만났는데 아직 많이 어색해서 빨리 친해져서 편해졌으면 좋겠네 다들 I만 있어서 힘들다....
'TIL' 카테고리의 다른 글
내일배움캠프 10주차 Spring Mock Object (0) | 2024.06.17 |
---|---|
내일배움캠프 9주차 Spring JUnit5 (0) | 2024.06.13 |
내일배움캠프 9주차 KPT 회고 (0) | 2024.06.11 |
내일배움캠프 9주차 Spring Pagination (0) | 2024.06.10 |
내일배움캠프 8주차 Spring Global Exception Handler (0) | 2024.06.07 |