다섯 살도 알 수 있게 · 보안
OAuth가 뭐예요?
OAuth를 열쇠 대신 입장권을 주는 이야기로 풀어봤어요.
내 사진은 사진 성에 있어요.인쇄 가게가 그 사진을 가져와야 해요.
옛날엔 열쇠를 통째로 줬어요.가게가 사진만 보는 게 아니라 편지도, 돈도 다 열 수 있었어요.
OAuth는 열쇠 대신 입장권을 줘요.내가 성에 허락하면, 성이 가게에 표를 줘요. 열쇠는 내 주머니에 그대로.
나사진의 주인
사진 성사진을 보관하고 표를 찍어줘요
인쇄 가게표를 들고 심부름
표엔 방 이름과 시간이 적혀 있어요.사진 방, 보기만, 30일. 마음이 바뀌면 표만 찢어요 — 열쇠는 안 바꿔도 돼요.
표는 '누구'인지는 말 안 해요.표는 '들어가도 됨'이지 '이 사람이 나'가 아니에요. 그건 이름표(OpenID Connect)가 따로 해요. 그래서 표를 잃어버리면 주운 사람도 써요.
한 줄로
OAuth = 내 열쇠를 주지 않고, 다른 가게가 내 방 하나만 잠깐 들어가게 해주는 입장권.
OAuth 2.0 (2012, RFC 6749). 'Google로 계속하기' 버튼 뒤에서 일어나는 일이에요 — 입장권은 OAuth가, 이름표는 OpenID Connect가 맡아요.
어른들은 이렇게 불러요
- 자원 주인
Resource owner - 나. 사진의 주인. 허락하는 사람.
- 클라이언트
Client - 인쇄 가게. 내 대신 심부름하는 앱.
- 인가 서버
Authorization server - 표 발급소. 내 허락을 받고 표를 찍어주는 곳.
- 자원 서버
Resource server - 사진 창고. 표를 보고 사진을 내주는 곳. 발급소와 한 성 안에 있어요.
- 액세스 토큰
Access token - 입장권. 가게가 들고 다니는 표. 잃어버리면 남도 써요.
- 범위
Scope - 표에 적힌 방 이름. "사진 방 · 보기만". 적히지 않은 방은 못 들어가요.
- 리프레시 토큰
Refresh token - 표 재발급 쿠폰. 30일이 지나면 이걸로 새 표를 받아요. 나한테 다시 묻지 않고요.
- OpenID Connect
OpenID Connect - 이름표. OAuth 위에 얹어서 '이 사람이 나'까지 알려줘요. 로그인 버튼의 진짜 주인공.
다음 이야기
세 번 확인하는 문지기 →