여기, 여기, 여기 참조


OAuth란

접근 위임을 위한 개방형 표준, HTTPS사용

resource owner, client, resource server, authorization server 이렇게 내가지 역할이 있는데,

마이데이터로 보면 정보주체, 마이데이터사업자, 정보제공자 자원서버/인증서버 이렇게 매칭된다고 볼 수 있음(마지막 2가지는 합쳐서 볼수도 있음)


정보주체의 권한을 마이데이터 사업자에게 위임 하는데 있어서, 비밀번호를 직접주면 위험하니, 접근토큰을 발급하는 방식을 사용 

 


Client Registration

실제 프로토콜이 진행되기전에 사전단계로, 정보제공자 인증서버에 마이데이터 사업자정보를 등록하고 client_id, secret을 발급받는 절차가 있음

OAuth 스펙에서는 구체적인 방법을 제한하지는 않는데, 보통 웹에서 수기로 등록하는 경우도 많음

(마이데이터는 종합포털에서 등록절차를 대행해주는 방식을 사용하며 역시나 OAuth스펙에 위반되지 않음)

client_id, client_secret

Client등록 과정에서 마이데이터 사업자가 정보제공자 서버에 로그인하기위한 id/pwd 개념이라고 보면 됨

또는 코인에서 api_key와 secret_key개념으로 봐도 좋다.

차이점은 일반 id/pwd는 모두 유저가 만들지만 여기서는 모두 정보제공자서버에서 만들어서 발급한다는 점


client_id: 정보제공자인증서버에서 발행하는 unique string. 공개되는 정보라 client인증에 사용되어서는 안됨



Grant types

OAuth2에서는 다음 4가지 grant type을 제공하는데, 

  • Authorization Code Grant
  • Implicit Grant
  • Resource Owner Password Credentials Grant
  • Client Credentials Grant
마이데이터에서는 Authorization Code Grant만 고정적으로 사용


Authorization Code Grant Flow




반응형

+ Recent posts