간단흐름(쿠팡기준으로 설명 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 |