본문 바로가기
기타/정보처리기사

정보처리기사 정처기 | OAuth (Open Authorization) | 필기&실기 개념

by YUNI Heo 2024. 1. 8.
반응형

 

⭕ OAuth (Open Authorization)

OAuth는 오픈 인증(Open Authorization)을 의미하며, 주로 웹 및 모바일 애플리케이션에서 사용자의 인증 및 권한 부여를 위한 프로토콜입니다. 간단히 말하면, 어떤 애플리케이션이 사용자의 다른 서비스나 리소스에 대한 접근 권한을 얻기 위해 사용되는 표준입니다.


사용자가 자신의 계정 정보(비밀번호 등)를 직접 제공하지 않고도, 다른 서비스나 애플리케이션에게 자신의 정보를 공유할 수 있도록 하는 것입니다. 이는 사용자의 보안을 강화하고, 다른 서비스 간에 상호 운용성을 향상합니다.


OAuth는 다른 서비스에 대한 접근 권한을 얻기 위해 사용자가 직접 계정 정보를 제공하지 않고, 대신 인증 서버를 통해 안전하게 접근 권한을 부여할 수 있도록 하는 프로토콜입니다. 이를 통해 다양한 애플리케이션이 사용자의 데이터에 접근할 수 있게 하면서도 보안을 유지할 수 있습니다.

 

➡️ OAuth 프로세스

OAuth는 크게 3가지 단계로 나눌 수 있습니다. 이러한 3단계를 통해 OAuth는 사용자의 인증 및 권한 부여를 안전하게 처리하고, 클라이언트가 사용자 대신 보호된 리소스에 접근할 수 있게 합니다.


  1. 인증 요청 (Authorization Request)
    • 클라이언트 애플리케이션이 사용자에게 인증을 받기 위해 인증 서버에 요청을 보냅니다.
    • 사용자는 자신의 인증 정보를 입력하고 클라이언트가 원하는 권한을 승인합니다.
  2. 인가 부여 (Authorization Grant)
    • 사용자가 성공적으로 인증되면 인증 서버는 클라이언트에게 인가 부여를 제공합니다.
    • 이는 클라이언트가 액세스 토큰을 받을 수 있는 권한을 나타냅니다.
  3. 액세스 토큰 발급 (Access Token Grant)
    • 클라이언트는 인증 서버에게 인가 부여 코드 또는 다른 자격 증명을 제공하고, 이를 통해 액세스 토큰을 요청합니다.
    • 인증 서버는 클라이언트에게 액세스 토큰을 제공하고, 이를 사용하여 보호된 리소스에 접근할 수 있습니다.

 

➡️ OAuth 용어 정리

  • Resource Owner (리소스 소유자): 보호받아야 할 리소스(일반적으로 사용자)를 소유한 개체입니다.
  • Client (클라이언트): OAuth 프로토콜을 사용하여 사용자의 리소스에 접근하려는 애플리케이션이나 서비스입니다.
  • Authorization Server (인가 서버): 사용자의 인증 및 권한 부여를 처리하는 서버입니다. 주로 액세스 토큰을 발급하고 리소스에 대한 권한을 부여합니다.
  • Resource Server (리소스 서버): 실제로 보호되는 리소스가 저장되어 있는 서버입니다. 클라이언트는 이 서버에서 보호받은 리소스에 액세스 하기 위해 OAuth를 사용합니다.
  • Authorization Grant (인가 부여): 클라이언트가 사용자의 리소스에 접근할 수 있도록 허용하는 권한 부여 유형입니다. 예를 들면, Authorization Code, Implicit, Resource Owner Password Credentials, Client Credentials 등이 있습니다.
  • Access Token (액세스 토큰): 클라이언트가 리소스에 액세스 할 수 있도록 하는 토큰입니다. 보통 일시적인 권한을 나타냅니다.
  • Refresh Token (리프레시 토큰): 액세스 토큰의 만료 후 새로운 액세스 토큰을 얻기 위해 사용되는 토큰입니다.
  • Redirect URI (리다이렉트 URI): 사용자가 인증 후 클라이언트로 다시 전송되는 URI입니다. Authorization Code 방식에서 사용됩니다.
  • Scope (범위): 클라이언트가 얻을 수 있는 특정 리소스에 대한 권한의 범위를 정의합니다.
  • Implicit Grant (암시적 부여): 액세스 토큰을 바로 부여하는 방식으로, Authorization Code를 거치지 않습니다. 주로 웹 브라우저를 통한 클라이언트에서 사용됩니다.
  • Authorization Code Grant (인가 코드 부여): Authorization Code를 얻어서 이를 교환하여 액세스 토큰을 얻는 방식입니다. 주로 서버 측에서 사용됩니다.

 

➡️ 참고 문서

https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

⭕ [예시] 

➡️ 2023년도 3회 실기 기출 - 1. [용어] 다음 설명에 대한 프로토콜을 작성하시오.

- 웹 및 애플리케이션에서 사용자 인증 및 권한 부여를 위한 개방형 표준 프로토콜
- 주로 로그인 및 인증을 위한 API를 구현하는 데 사용됨

정답

OAuth
Open Authorization

[정보처리기사/[최신] 실기 기출] - [2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

 

[2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

⭕ [2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리 ➡️ 1. [JAVA 코드] 알맞은 출력 값을 작성하시오. public class Main { public static void main(String[] args) { Parent p = new Child(); p.paint(); p.draw();

sugoring-it.tistory.com

 

반응형