스프링부트/OAuth
Oauth2
TacoRingo
2023. 10. 19. 10:22
<OAuth2 시스템의 네가지 주요 역할>
사용자 - Use case를 실행하려는 사람
Client - resource server에게 요청 및 응답 받음
Authorization Server - 사용자와 클라이언트 세부 정보를 관리하고 인증하도록 허용하며
권한 부여 수단으로 사용할 토큰을 제공
Resource Server - Authorization Server에게 Access Token을 부여 받은 Client가 요청을 하여
특정 Use case를 실행하거나 resource에 액세스 권한을 부여
OpenID Connect
: OAuth2를 사용 할 때 일부 제약을 적용하여 OAuth2 클라이언트를 구현하는 프로토콜이다.
Grant Type
: 클라이언트가 토큰을 얻는 과정이다.
password grant type과 implicit grant type은 권장하지 않고
현재 가장 많이 사용되는 GrantType은 "authorization code grant type"이다.
Authorized redirect URIs
: client에 권한 부여 과정에서 Authorized code를 전달하는 통로다.
client <ㅡ> Resource Server 유효성 검사에서
<OAuth2 취약점>
1. Client에서 CSRF 사용 - 사용자가 로그인한 상태에서, 애플리케이션이 CSRF를 적용하지 않으면 CSRF가 발생한다.
2. 자격증명을 보관하거나 보호하지 않은 상태에서 저장하거나 전송하면 공격자가 자격증명을 도용하여 사용 할 수 있다.
3. 토큰은 네트워크를 통해 보내며 때로는 누가 가로채서 재사용될 수 있다.