인가
- API 서비스가 제공하는 기능별로 사용자의 권한을 관리하는 것
: 유료사용자와 무료사용자의 차이를 두는 것과 같은 기능
API 인가 방식
RBAC (Role Based Acces Control)
- 사용자의 역할(Role)을 기반으로 권한을 부여하는 방식
: 정해진 Role에 권한을 연결하고 위임
: Rloe에 권한을 매핑하고 Object에 Role을 부여
ACL (Access Control List)
- 사용자에게 직접 권한을 부여하는 방식
※ 인가는 API Access Token을 이용하여 사용자 정보를 조회하고
사용자 정보에 연관된 권한 정보를 받아서 이 권한 정보를 기반으로
API 사용권한을 허가하는 방법으로 진행된다.
API 인가 처리 위치
클라이언트
- API를 호출하는 클라이언트 쪽에서 인가 처리하는 방식
: 세션 내의 사용자 ID와 요청하는 사용자 ID가 일치할 경우에만 API 호출
API Gateway
- 게이트웨이에서 인가를 처리하는 방식
1. 클라이언트로 부터 API Access Token을 받는다
2. API Access Token을 사용자 정보와 권한 정보로 API token Management 정보를 이용하여 변환
3. 변환 후 인가 처리를 거쳐 API 서버로 전송
=> 구현이 쉽지않아 주로 서버에서 처리로 구현
API서버
- 가장 일반적이고 보편적인 방법
1. 클라이언트에서 API Access Token을 전송
2. Gateway에서 Access Token을 궈한 인가에 필요한 사용자 ID, ROLE 등으로 변환하여 서버에 전달
기타 API 보안
네트워크 레벨 암호화
- 네트워크 프로토콜 단에서
: 사용자와 API 서비스 제공자 간 주고받는 데이터를 암호화하는 기능
: HTTPS와 같은 보안 프로토콜
메시지 보호
- 사용자와 API 서비스 제공자 간 주고받는 메시지 자체를 보호하는 것
: 해싱 함수 등을 이용하여 메시지의 무결성 보장
: 대칭키, 공개키 등을 이용한 암호화
Refference
'Devops > DevOps' 카테고리의 다른 글
서버 관리의 변천사 (0) | 2021.09.13 |
---|---|
[백엔드 개발자 로드맵 2020] 소프트웨어 개발 원칙 (SOLID + KISS, YAGNI, DRY) (0) | 2021.02.14 |
[데브옵스 개발자 로드맵 2020] API 보안기법 - 1. API 인증 (Authentication) (0) | 2021.02.08 |
[데브옵스 개발자 로드맵 2020] API (Application Programming Interface) (0) | 2021.02.07 |
[데브옵스 개발자 로드맵 2020] WAS (Web Applicatiob Server)의 종류 (0) | 2021.02.07 |