간단흐름(쿠팡기준으로 설명 grant_type = password기준)

  • 고객, 앱, 앱개발자, 인증서버, 자원서버(api서버) 이렇게 5가지 주체가 있다.
  • 앱개발자는 인증서버에 admin페이지에서 client_id/secret_id를 발급받는다. (고객이 발급받는게 아님에 주의)
  • 앱에서 고객이 id/pwd를 넣고 로그인하면(인증서버에 api를 보내면) 인증서버에는 고객id/고객pwd, (앱개발자가앱에넣은) client_id/secret_id 이렇게 4가지 정보를 받는다. 모두 이상 없는경우 앱에게 access token을 넘겨준다. 
  • 그럼 앱은 고객에게 권한을 위임받는 것이고, 이 이후로는 특정시간동안 자원서버에 access token을 보내서 api호출이 가능하다.
  • 하지만 이 방식은 앱이 고객의 비밀번호를 직접 다루게 되므로 보안상 위험이 커서, 요즘은 거의 사용되지 않는다.

grant_type = authorization_code

  • 앱에서 고객 id/pwd를 받고 인증서버에 api로 전달하는게 위험하니..
  • 앱이 아닌 인증서버쪽 로그인 화면으로 url redirect를 시키는게 authrization_code방식이다.
  • 로그인후에 앱에 다시 인증코드가 담긴 url을 불러주면
  • 앱은 짧은 생명주기를 가진 이 인증코드로 서버에 api호출을 해서 access token을 받아온다.
  • (딥링크 방식에서도 이 인증코드 → access token 교환 구조가 유사하게 사용된다.)

 

반응형

'System Architect' 카테고리의 다른 글

업스트림(upstream)/다운스트림(downstream)  (0) 2025.05.30
딥링크  (0) 2025.05.23
시스템설계 Q&A 3  (0) 2025.04.06
위임(delegate) 패턴  (0) 2024.02.17
Application  (0) 2023.10.28

+ Recent posts