반응형
Open Authorization (OAuth)
OAuth 2.0
- OAuth는 다른 앱(예: Google, Facebook, Twitter 등)의 Authoraization을 위한 프로토콜이다.
- OAuth는 주로 사용자가 소셜 로그인(예: Google, Facebook, Twitter 등)의 계정을 사용해 특정 애플리케이션에 로그인할 때 사용된다.
- 그 외에도 Google, Facebook 등이 제공하는 특정 기능에 대한 사용 권한을 OAuth를 통해 얻을 수 있다.
- 사용자는 애플리케이션에 ID와 비밀번호를 제공하지 않고도 접근할 수 있게 해준다.
- 현재 대부분의 애플리케이션에서 OAuth 2.0을 사용하고 있다. (OAuth 1.0는 오래된 버전)
- 액세스 토큰(access token)을 사용하여 리소스에 접근하는 방식이다
OAuth 2.0 작동 방식
Google 로그인을 통해 Google Drive에 접근 권한을 얻기
- 애플리케이션에서 사용자가 Google 로그인을 선택
- Google 로그인 페이지로 이동하여 로그인 후 Google Drive에 필요한 권한을 요청된다. 여기서 사용자는 권한을 승인한다.
- Google이 애플리케이션에 Authorization Code를 보낸다.
- 애플리케이션이 Authorization Code를 사용해 Google 서버에 Access Token을 요청한다.
- Google이 애플리케이션에 Access Token을 반환한다.
- 애플리케이션이 받은 Access Token을 사용해 Google Drive API에 요청하여 필요한 정보(예: 사용자의 파일 목록)를 가져온다.
OpenID Connect (OIDC)
OpenID Connect
- OpenID Connect는 OAuth 2.0을 기반으로 한 인증 프로토콜이다.
- 인증(Authentication)을 위해 설계되었으며, 사용자에 대한 신원을 확인하는 데 초점을 맞추고 있다.
- OpenID Connect는 ID 토큰(id token)을 사용자 정보를 전달한다. 이를 통해 애플리케이션은 사용자가 누구인지 확인할 수 있다.
OpenID Connect 와 OAuth 차이점
OAuth 2.0 | OpenID Connect | |
주요 토큰 | Access Token | ID Token 및 Access Token |
목적 | 권한 부여 (자원 접근) | 사용자 인증 (신원 확인) |
신원 정보 | 신원 정보 제공하지 않음 | 사용자 신원 정보 제공 (이메일, 이름 등) |
사용 사례 | API 접근 권한 부여 (예: Google Drive) | 사용자 로그인 (예: 웹사이트 로그인) |
JSON 기반 | JSON 기반 | |
개발 연도 (대략) | 2012년 | 2014년 |
SAML (Security Assertion Markup Language)
SAML
- OAuth와 OpenID Connect보다 오래된 XML 기반의 프로토콜이다.
- 인증(Authentication) 및 권한 부여(Authorization)를 한다.
- 주로 기업(Enterprise)의 SSO(Single Sign-On) 구축에서 사용된다.
- 사내 여러 애플리케이션(예: 이메일, 클라우드)에 SSO로 한 번의 로그인으로 접근 가능.
SAML의 구성 요소
- Identity Provider(IdP) - 예시: Google, Microsoft Azure AD, Okta
- Service Provider(SP) - 사용자가 실제로 접근하려는 애플리케이션이나 서비스이다. SP는 IdP에서 받은 인증 정보를 이용해 사용자가 접근할 수 있도록 허용
- SAML Assertion - IdP가 사용자에 대해 인증한 정보를 포함한 메시지이다.
728x90
반응형
'네트워크' 카테고리의 다른 글
Webhook(웹훅)이란? 아주 쉽게 정리 (0) | 2024.11.22 |
---|---|
IT 분야에서 "Throttling"란? 쉽게 정리 하기 (스로틀링) (3) | 2024.09.26 |
IT 분야에서 "Exponential backoff" 란? 쉽게 정리 하기 (1) | 2024.09.25 |
[AWS] DNS 서버 종류 (Authoritative DNS 와 Caching DNS) 권한 서버와 캐싱 서버 (0) | 2024.08.27 |
RDP 프로토콜이란? 쉽게 정리: 원격 데스크톱 프로토콜(Remote Desktop Protocol) (0) | 2024.08.13 |