티스토리 뷰
인증
기본적으로 auth란 인증 (authentication) 과 인가 (authorization)을 얘기합니다.
인증은 사용자가 해당 애플리케이션에 허가된 사용자인지 확인하는 절차를 말하는데
흔히 아는 로그인이 인증이라고 생각하면 됩니다.
인가는 특정 리소스나 서비스에 접근할 수 있는 권한을 허용하는 것을 말합니다.
보통 관리자나 일반 사용자의 특정 서비스 접근 권한이 다르게 부여되는 것을 생각하면 됩니다.
OAUTH2
OAuth 는 Authrozation Framework 로 정확히는 인가를 대신 해주기 위한 프레임워크로 생각하면 됩니다.
우리는 OAUTH2 기준으로 공부를 해보겠습니다.
[OAuth2 4개 구성요소]
1. Resource Owner : 사용자 (ex : 인증이 필요한 사용자)
2. Client : 리소스 접근을 위한 서비스 (ex : 웹사이트)
3. Authorization Server : 인가의 주체, 토큰 발행 (ex : 페이스북, 구글)
4. Resource Server : 리소스 제공 역할 (ex : 페이스북, 구글)
OAuth1.0에서는 Authorization Server와 Resource Server를 Service Provider라고도 불렀던거 같슴니다
Client는 두개의 타입으로 정의합니다.
- Confidential : 사용자의 Secret 정보를 안전하게 보관할 수 있는 Client (서버 - API 연계)
- Public : 사용자의 정보를 안전하게 보관할 수 없는 Client (보통 웹앱 혹은 모바일)
[Grant Type]
기본적으로 OAUTH2는 다양한 인증 방식을 지원 합니다.
3rd party에게 인증을 해주기 위한 3-legged 모델 뿐만 아니라 client-server 간의 2-legged 모델을 위한 인증 방식도 지원합니다.
1. Authorization Code
- Client가 사용자 대신 특정 리소스 접근을 요청할 때 사용됩니다. Authorization Server에서 부여받은 권한 Code를 활 용해 리소스에 대한 액세스 토큰을 발급 받습니다.
2. Implicit
- 권한 Code를 따로 받지 않고 액세스 토큰을 즉시 발급받아 인증에 이용하는 방식입니다.
3. Resource Owner Password Credentials
- 매우 신뢰적인 Client가 사용자의 id/pw 를 알고 있는 경우 직접 액세스 토큰을 발급 받는 방식입니다.
4. Client Credentials
- 그냥 Client가 직접 client_id/client_secret을 가지고 인증하여 리소스를 사용하는 방식입니다.
TBD
'Architecture > Security' 카테고리의 다른 글
[블록체인] Proof of Stake (PoS) 란? (0) | 2021.06.23 |
---|---|
[암호학] 공개키 암호 방식과 전자서명 (0) | 2021.05.31 |
[암호화] Base64 (0) | 2020.03.19 |
[암호화] 양방향/단방향 암호화 (0) | 2019.12.02 |
- Total
- Today
- Yesterday
- 비트코인
- 스프링
- gRPC
- 사토시 나가모토
- 알고리즘
- k8s
- Nealford
- Java
- kubernetes
- architecture
- 백준
- vuejs
- SpringBoot
- Redis
- 스프링 시큐리티
- 동적계획법
- white paper
- excel parsing
- Bitcoin
- Blockchain
- 카르다노
- Vue.js
- DP
- 아키텍처
- Spring
- Bruteforce
- 블록체인
- CARDANO
- leetcode
- 암호화폐
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |