반응형
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_OAuth,SCIM
OAuth와 SCIM은 각각 인증 및 권한 부여와 사용자 관리 자동화와 관련된 프로토콜로, 주로 클라우드 서비스와 애플리케이션에서 사용돼요. 이 두 가지는 조직의 보안 관리와 사용자 계정 관리를 보다 효율적으로 수행하는 데 도움을 줍니다.
1. OAuth란?
OAuth는 Open Authorization의 줄임말로, 서드파티 애플리케이션이 사용자 대신 리소스에 접근할 수 있도록 허용하는 인증 및 권한 부여 프로토콜이에요.
주요 개념
- 목적:
- OAuth의 목적은 사용자가 자신의 로그인 자격 증명을 공유하지 않고도 서드파티 애플리케이션이 특정 리소스에 접근할 수 있도록 허용하는 거예요.
- 예를 들어, 당신이 어떤 앱에 로그인할 때, 그 앱이 Google 계정을 통해 로그인하는 옵션을 제공하는 경우가 있죠? 이때 OAuth가 사용돼요.
- 작동 방식:
- 사용자가 리소스 소유자이고, 리소스 서버는 사용자 데이터를 보유하고 있는 서버예요. **클라이언트(서드파티 애플리케이션)**가 사용자 대신 리소스에 접근하려고 할 때 OAuth를 통해 인증을 받아요.
- 사용자는 클라이언트가 특정 권한을 얻을 수 있도록 **권한 부여 토큰(Access Token)**을 제공해요. 이 토큰을 사용하여 클라이언트는 리소스 서버에 접근할 수 있게 됩니다.
- OAuth 2.0:
- OAuth 2.0은 현재 가장 널리 사용되는 버전이에요. 이 버전에서는 인증 과정이 간소화되었고, 다양한 인증 플로우를 지원해 여러 상황에서 유연하게 사용할 수 있어요.
- OAuth 2.0의 주요 플로우는 Authorization Code Flow, Implicit Flow, Client Credentials Flow, Resource Owner Password Credentials Flow 등이 있어요. 각각의 플로우는 애플리케이션의 특성에 따라 적합한 방식으로 선택됩니다.
사용 사례
- SNS 로그인:
- 사용자들이 자신의 Google이나 Facebook 계정으로 타 사이트에 로그인할 때 사용해요. 이때, 사용자는 자신의 계정 비밀번호를 제공하지 않고도 인증을 완료할 수 있어요.
- API 접근 제어:
- 애플리케이션이 특정 사용자 데이터를 가지고 있는 **클라우드 서비스(API)**에 접근할 때, 해당 API의 데이터를 안전하게 공유할 수 있어요.
2. SCIM이란?
SCIM은 System for Cross-domain Identity Management의 줄임말로, 사용자 및 그룹 정보를 클라우드 서비스 간에 자동으로 교환할 수 있게 해주는 프로토콜이에요.
주요 개념
- 목적:
- SCIM의 목적은 사용자 계정 생성, 수정, 삭제 등의 작업을 자동화해서 ID 관리를 쉽게 할 수 있도록 하는 거예요.
- 특히 기업에서는 많은 사용자를 여러 애플리케이션에서 관리해야 하죠? 이때 SCIM을 사용하면 중앙 관리 시스템에서 사용자를 자동으로 추가하거나 제거할 수 있어요.
- 작동 방식:
- SCIM은 REST API 기반으로 동작해요. 이를 통해 사용자의 프로필 정보를 관리하는 시스템(예: ID 제공자)이 클라우드 서비스에 사용자 정보(이름, 이메일, 그룹 등)를 전달해요.
- SCIM API는 사용자 데이터를 JSON 형식으로 주고받으며, HTTP 요청을 통해 사용자의 추가, 수정, 삭제 작업을 자동으로 수행해요.
- SCIM 2.0:
- SCIM 2.0은 현재 사용되는 표준 버전으로, 사용자 관리에 필요한 스키마와 엔드포인트가 정의되어 있어요. 이를 통해 사용자와 그룹의 정보가 일관되게 전달될 수 있도록 해줘요.
사용 사례
- SSO(싱글 사인 온) 및 ID 관리 시스템과의 연동:
- Okta, Azure AD, Ping Identity와 같은 SSO 제공자와 클라우드 애플리케이션 간에 SCIM을 사용해서 사용자 프로비저닝을 자동화할 수 있어요.
- 예를 들어, 직원이 회사에 새로 입사하면, SCIM을 통해 해당 사용자의 계정이 여러 클라우드 애플리케이션에 자동으로 생성되고, 퇴사 시에는 자동으로 삭제되죠.
- 다양한 애플리케이션 간 사용자 정보 동기화:
- 조직의 HR 시스템에서 관리되는 사용자 정보가 클라우드 애플리케이션(예: Slack, GitHub, Google Workspace)과 자동으로 동기화될 수 있어요.
3. 비유로 이해하기
- OAuth:
- 마치 호텔 리셉션에서 방 열쇠를 받는 것 같아요. 호텔 직원은 고객에게 **방 열쇠(권한 부여 토큰)**를 줘서, 고객이 직접 방에 들어갈 수 있도록 해줘요. 호텔 직원(리소스 소유자)은 고객(클라이언트)에게 **모든 방의 마스터 키(비밀번호)**를 주지 않고, 필요한 특정 방에만 접근할 수 있도록 제한된 열쇠만 줍니다.
- SCIM:
- 회사 HR 시스템에서 직원 출입증을 자동으로 발급하고, 자동으로 만료 처리하는 것과 비슷해요. 새로운 직원이 입사하면 출입증이 자동으로 발급되고, 퇴사하면 출입증이 자동으로 비활성화돼요. 이를 통해 여러 사무실이나 시스템 간에 직원의 출입 권한을 효율적으로 관리할 수 있어요.
4. OAuth와 SCIM의 차이점
- OAuth는 리소스 접근에 대한 권한 부여를 다루는 반면, SCIM은 사용자와 그룹의 계정 정보 관리에 초점을 맞추고 있어요.
- OAuth는 앱이 데이터를 접근하는 방식에 대해 다루고, SCIM은 사용자 데이터를 애플리케이션 간에 어떻게 동기화할지를 다루죠.
- 쉽게 말해, OAuth는 사용자가 무엇에 접근할 수 있는지를 제어하고, SCIM은 누가 존재하는지를 관리해요.
5. 정리
- OAuth: 사용자가 자신의 비밀번호를 직접 제공하지 않고도, 서드파티 애플리케이션이 특정 리소스에 접근할 수 있도록 권한 부여하는 방식이에요.
- SCIM: 사용자 계정 관리를 자동화하고, 클라우드 애플리케이션 간에 사용자 정보 동기화를 간편하게 하는 프로토콜이에요.
이 두 기술은 기업의 보안 관리와 사용자 관리를 보다 쉽게 하고, 클라우드 환경에서 효율적인 데이터 보호와 사용자 정보 동기화를 가능하게 해줘요.
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_OAuth,SCIM
반응형