OAuth2의 인증방식에는 크게 4가지가 있다.
각각의 장단점이 있고 많이 서비스별로 많이 사용되는 방식이 구분되어 있는데 이를 확인해보도록 하겠다.
권한 부여 코드 승인 타입
리소스 접근을 위한 사용자명, 비밀번호, 권한 서버가 준 AccessCode를 이용해서 리소스 서버로부터 AccessToken을 받아서 작동하게 된다.
대부분의 소셜미디어들이 웹서버 형태에서 사용한다.
사진을 정리하자면
1. 유저가 정보를 보낸다.
2. 리소스 서버가 이를 받아서 소셜서비스에 보내서 장기 접근 토큰을 얻어돈다.
3. 서버는 이를 클라이언트에게 반환한다.
Security가 기본으로 지원하는 방식도 이와 같다고 알려져있다.
최근에는 아예 Legacy 기술로 분류되는 듯 하다
링크
리소스 소유자가 아이디, 비밀번호를 통해 클라이언트에 요청한다.
클라이언트는 Authentication With Credential 기반으로 서버에 AccessToken을 요청한다. 동시에 Refresh Token을 반환해준다.
이를 기반으로 리소스서버와 통신을한다.
같이 프로젝트를 하던 팀원분이 말씀해주시기를
OAuth를 이용해서 로그인할 때, 민감한 개인정보를 사이트 DB에 보관하지 않고 전부 Social Service가 대신해주기 때문에, 자사서비스 서버가 공격당하더라도 민감한 개인정보는 빠져나가지 않는 보안적 장점이 있다고 한다.