Oauth의 등장 배경과 작동 원리

정체는 김태현·2022년 10월 11일
0

항해99

목록 보기
14/38

OAuth란?

별도의 회원가입 없이 로그인을 제공하는 플랫폼의 아이디만 있으면 서비스를 이용 할 수 있다. 외부 서비스에서도 인증을 가능하게 하고 그 서비스의 API를 이용하게 해주는 것, 이것을 바로 OAuth라고 한다.

OAuth의 등장배경은 써드 파티 어플리케이션에 아이디와 비밀번호를 제공하고 싶지 않다는 요구가 첫번째이다. 개인정보를 여러곳에 입력하면 피싱에 둔감해지고 무엇보다 어플리케이션의 보안을 100% 신뢰할수 있다는 보장이 없기때문이다.

OAuth이 등장하기 전에 A 사이트에서 B 사이트의 리소스를 가져오기 위해서는 다른 사이트의 ID와 Password를 직접 입력 받아 저장하여 필요할 때마다 불러와서 사용을 해야했다. 이 문제를 해결 하기 위해 OAuth가 등장 하게 되었다.

작동원리

  1. 첫 번째 웹사이트가 사용자를 대신해 두 번째 웹사이트에 접속한다. 오쓰를 사용하고, 사용자의 확인된 ID를 제공한다

  2. 두 번째 사이트는 해당 트랜젝션 및 관여 당사자에 고유한 1회성 암호와 1회성 토큰을 생성한다.

  3. 첫 번째 사이트는 이 토큰과 암호를 사용자의 클라이언트 소프트웨어에 제공한다.

  4. 클라이언트 소프트웨어는 요청 토큰과 암호를 인증(인가) 공급업체에 제시한다(두 번째 사이트 또는 다른 사이트나 서비스).

  5. 인증(인가) 공급업체에 인증이 되어 있지 않다면, 클라이언트가 인증을 요청할 것이다. 인증 후, 클라이언트는 두 번째 웹사이트에 인증 트랜젝션 승인을 요청한다.

  6. 사용자 또는 소프트웨어는 첫 번째 웹사이트에서 특정 트랜젝션을 승인한다.

  7. 그리고 사용자에게 승인된 액세스 토큰이 제공된다(요청 토큰이 아님).

  8. 사용자는 첫 번째 웹사이트에 승인된 액세스 토큰을 제공한다.

  9. 첫 번째 웹사이트는 사용자를 대신, 인증에 대한 증명인 액세스 토큰을 두 번째 웹사이트에 제공한다.

  10. 두 번째 웹사이트는 사용자를 대신, 첫 번째 웹사이트가 사이트에 엑세스 할 수 있도록 허락한다.

  11. 사용자는 트랜젝션이 성공적으로 완료된 것을 확인한다.

즉 사용자의 아이디와 비밀번호를 인증과정을 거친 후 사용권한을 토큰으로 발행함으로써 ID와 비밀번호를 대체 하고 사용권한을 제한하여 사용할 수 있게 하는 것이다.

profile
하나부터 열가지 다

2개의 댓글

comment-user-thumbnail
2022년 10월 13일

OAuth와 OAuth2는 다릅니다 ^^;
원리에 대해서 역할(인증 서버와 리소스 서버)를 구분해서 학습하는 것이 도움이 되실 것 같아요.
힘내세요!

https://itnext.io/an-oauth-2-0-introduction-for-beginners-6e386b19f7a9

1개의 답글

관련 채용 정보