CS 지식

OAuth

이제하네 2024. 7. 10. 23:04

OAuth란

  OAuth(Open Authorization): 외부 애플리케이션이 사용자 비밀번호를 노출하지 않고도 사용자 정보를 접근할 수 있도록 하는 인증 표준

  • OAuth의 주요 목적
    • 안정성: 사용자 비밀번호를 외부 에플리케이션에 제공하지 않고 사용자 데이터에 접근할수 있도록 설정
    • 권한 분리: 애플리케이션이 특정한 데이터나 기능에 대한 접근만 허용
    • 유연성: 다양한 서비스와 쉽게 통합
  • OAuth의 구성요소
    • 자원 소유자(Resource Owner): 보호된 자원에 대한 접근 권한을 가진 사용자로 자신의 인증 정보를 사용하여 클라이언트 애플리케이션이 자원 서버에 접근할 수 있도록 허용
    • 클라이언트(Client): 자원 소유자를 대신항 자원에 접근하는 애플리케이션으로 자원 소유자로부터 권한을 부여받아 자원서버에 접근
    • 자원 서버(Resource Server): 보호된 자원을 호스팅하는 서버로 클라이언트가 제공한 엑세스 토큰을 확인하고 유효한 경우 자원에 접근할 수 있도록 허용
    • 인증 서버(Authorization Server): 자원 소유자의 자격 증명을 확인하고, 클라이언트에게 액세스 토큰을 발급하는 서버로 인증 서버는 자원 소유자의 신뢰할 수 있는 인증을 통해 클라이언트가 자원 서버에 접근할 수 있도록 합니다.

  • OAuth의 작동 원리
    1. 사용자 인증 요청: 클라이언트 애플리케이션은 사용자를 인증 서버로 리디렉션하여 인증을 요청합니다
    2. 사용자 승인: 사용자는 인증 서버에서 자신의 자격 증명을 입력하고, 클라이언트 애플리케이션에 접근을 허용합니다.
    3. 권한 부여 코드 발급: 인증 서버는 사용자를 인증한 후, 클라이언트 애플리케이션에 권한 부여 코드를 발급합니다.
    4. 액세스 토큰 요청: 클라이언트 애플리케이션은 인증 서버에 권한 부여 코드를 보내고, 액세스 토큰을 요청합니다.
    5. 액세스 토큰 발급: 인증 서버는 권한 부여 코드를 확인한 후, 클라이언트 애플리케이션에 액세스 토큰을 발급합니다.
    6. 자원 접근: 클라이언트 애플리케이션은 발급받은 액세스 토큰을 사용하여 자원 서버에 보호된 자원에 접근합니다.

  • OAuth의 보안 고려사항
    • HTTPS 사용: 모든 통신은 HTTPS를 통해 이루어져야 합니다.
    • 액세스 토큰 보안: 액세스 토큰은 유출되지 않도록 안전하게 저장되어야 합니다.
    • 짧은 토큰 수명: 액세스 토큰의 수명을 짧게 설정하고, 필요 시 갱신 토큰을 사용합니다.
    • 범위 제한: 클라이언트 애플리케이션이 최소한의 권한만 요청하도록 제한합니다.

 

 

'CS 지식' 카테고리의 다른 글

HTTP 메서드 와 상태 코드  (0) 2024.07.24
세션 ,토큰 , 쿠키  (0) 2024.07.15
RESTful API: 개념과 구현  (0) 2024.07.04
API (Application Programming Interface)  (0) 2024.07.04
디자인 패턴(Design Patterns)  (0) 2024.06.20