Open yoon-chaejin opened 1 year ago
Role (역할)
규모에 따라 Resource Server 와 Authorization Server 를 한 곳에서 처리하는 경우가 있을 수 있음
인가 방식 (Authorization Grant Type)
Authorization Code 방식으로 Web Server Apps 에서 사용 시 작업 순서
Client
를 Authorization Server
에 등록
Resource Owner
가 Client
에서 어떤 작업을 하던 중, Client
가 Resource Server
의 Resource 를 필요로 하는 상황이 발생Client
는 Resource Owner
를 Authorization Server
쪽으로 Redirect 시키고, Authorization Server
는 Resource Owner
에게 승인할지 여부를 물어봄 (Authorization Prompt)
Resource Owner
가 승인하면, Authorization Server
는 1단계에서 등록한 Callback URL 에 인증 방식에 맞춰 필요한 정보를 전달
Client
는 Resource Owner
를 통해 Authorization Server
으로부터 전달받은 정보를 가지고 Authorization Server
으로부터 Access Token 을 발급받음
Client
는 발급받은 Access Token 을 가지고 Resource Server
로 데이터 요청cf. 만약 발급받은 Access Token 이 만료된 경우, Client
는 Refresh Token 을 가지고 Authorization Server
로부터 다시 Access Token 을 발급받을 수 있음 (5단계를 다시 진행한 것)
Authorization Code 방식으로 Single-Page Apps 에서 사용 시 작업 순서 cf. Single-Page App 은 브라우저에서만 동작하는 어플리케이션으로, 정보 탈취의 위험이 있기 때문에 기존 프로세스와 동일하나 client secret 을 사용하지 않고, 인가코드와 추가적으로 PKCE 등을 사용함
Client
를 Authorization Server
에 등록
Resource Owner
가 Client
에서 어떤 작업을 하던 중, Client
가 Resource Server
의 Resource 를 필요로 하는 상황이 발생Client
는 Resource Owner
를 Authorization Server
쪽으로 Redirect 시키고, Authorization Server
는 Resource Owner
에게 승인할지 여부를 물어봄 (Authorization Prompt)
Resource Owner
가 승인하면, Authorization Server
는 1단계에서 등록한 Callback URL 에 인증 방식에 맞춰 필요한 정보를 전달
Client
는 Resource Owner
를 통해 Authorization Server
으로부터 전달받은 정보를 가지고 Authorization Server
으로부터 Access Token 을 발급받음
Client
는 발급받은 Access Token 을 가지고 Resource Server
로 데이터 요청cf. 인가코드를 탈취하더라도 code_verifier 가 없이는 access_token을 발급받지 못함
Authorization Code 방식으로 Mobile App 에서 사용 시 작업 순서
Client
를 Authorization Server
에 등록
Resource Owner
가 Client
에서 어떤 작업을 하던 중, Client
가 Resource Server
의 Resource 를 필요로 하는 상황이 발생Client
는 Resource Owner
를 Authorization Server
쪽으로 Redirect 시키고, Authorization Server
는 Resource Owner
에게 승인할지 여부를 물어봄 (Authorization Prompt)
Resource Owner
가 승인하면, Authorization Server
는 1단계에서 등록한 Callback URL 에 인증 방식에 맞춰 필요한 정보를 전달
Client
는 Resource Owner
를 통해 Authorization Server
으로부터 전달받은 정보를 가지고 Authorization Server
으로부터 Access Token 을 발급받음
Client
는 발급받은 Access Token 을 가지고 Resource Server
로 데이터 요청cf. 인가 서버가 웹만 지원하는 경우, 내장 웹뷰가 아닌 별도의 브라우저를 사용해서 해당 페이지를 호출해야 함. 내장 웹뷰는 사용자가 실제 인가 서비스를 사용하는지, 피싱 사이트를 사용하는지에 대해 보장할 수 없음
Q. 위 검증은 앱 등록 시에 앱 스토어에서 진행하나?
Resource Owner Password Credentials 방식
Client
는 Authorization Server
에 다음과 같이 token 발급을 요청함
Client Credentials 방식
Client
는 Authorization Server
에 다음과 같이 token 발급을 요청함