OAuth 2.0 개념
이 주제에서는 OAuth 2.0의 기본 개념을 소개합니다.
OAuth 2.0에서는 일반적으로 다음 개념이 사용됩니다.
- 자원 소유자
- 보호 자원에 대한 액세스 권한을 부여할 수 있는 엔티티입니다. 자원 소유자가 개인인 경우에는 사용자라고 합니다.
- OAuth 클라이언트
- 자원 소유자의 개인용 자원에 액세스하려는 써드파티 애플리케이션입니다. OAuth 클라이언트는 자원 소유자로부터 권한을 부여받은 후에는 자원 소유자 대신 보호 자원 요청을 작성할 수 있습니다. OAuth 2.0에서는 두 가지 유형의 클라이언트, 즉 기밀 및 공용 클라이언트를 소개합니다. 기밀 클라이언트는 클라이언트 본인확인정보를 사용하여 등록하는 반면 공용 클라이언트는 그렇지 않습니다.
- OAuth 서버
- OAuth 2.0에서는 권한 서버라고 합니다. 이 서버는 자원 소유자를 대신하여
OAuth 클라이언트에 보호 자원에 대한 범위 지정된 액세스 권한을 부여합니다. 이 서버는
다음 조치를 수행한 후 OAuth 클라이언트에 액세스 토큰을 발행합니다.
- 자원 소유자를 인증합니다.
- 요청 또는 권한 부여를 유효성 검증합니다.
- 자원 소유자 권한을 얻습니다.
- 범위
- 액세스 요청 범위를 지정하기 위해
OAuth 클라이언트가 요청하는 특성입니다. 범위는 호출자가 의도된 토큰 사용에
태그를 지정하는 데 사용됩니다. 권한 서버는 범위 응답 매개변수를 사용하여
발행된 액세스 토큰 범위를 클라이언트에게 알립니다. 사용자가 클라이언트의
의도된 토큰 사용을 파악할 수 있도록 범위가 대개 동의 페이지에
표시됩니다. 공통 범위에는
profile
과email
이 포함됩니다. - 액세스 토큰
- 자원 소유자가 OAuth 클라이언트에 부여한 권한을 나타내는 문자열입니다. 이 문자열은 액세스 권한의 특정 범위 및 지속 기간을 나타냅니다. 자원 소유자에 의해 부여되고 OAuth 서버에 의해 적용됩니다.
- Bearer 토큰
- 토큰 엔드포인트에서 발행된 토큰입니다. 여기에는 액세스 토큰과 잠재적으로 새로 고치기 토큰이 포함됩니다. Bearer 토큰에 대한 자세한 정보는 http://tools.ietf.org/html/rfc6750을 참조하십시오.
- 보호 자원
- 인증된 요청을 사용하여 OAuth 서버에서 액세스할 수 있는 제한된 자원입니다.
- 자원 서버
- 보호 자원을 호스팅하는 서버입니다. 액세스 토큰을 사용하여 보호 자원 요청을 승인하고 응답할 수 있습니다. 자원 서버는 권한 서버와 같은 서버일 수도 있습니다.
- 권한 부여
- 자원 소유자의 보호 자원에 액세스하기 위한 자원 소유자 권한 부여를 나타내는 권한 부여입니다. OAuth 클라이언트는 권한 부여를 사용하여 액세스 토큰을 획득합니다. 네 가지 권한 부여 유형, 즉 권한 코드, 내재적, 자원 소유자 비밀번호 신임 정보 및 클라이언트 신임 정보 권한 부여 유형이 있습니다.
- 권한 코드
- 자원 소유자가 요청에 권한을 부여할 때 권한 서버가 생성하는 코드입니다.
- 새로 고치기 토큰
- 새 액세스 토큰을 획득하는데 사용되는 문자열입니다.