나나나
[네트워크]Authentication과 Authorization 본문
Authentication(인증)
사용자를 식별하고 누구인지 확인하는 프로세스이다.
Authorization(인가/승인)
해당 사용자에게 리소스에 대한 엑세스 권한을 부여하는 것이다. (사용자의 신원이 성공적으로 인증된 후에 발생)
Authentication
자신이 주장하는 사용자가 누구인지 확인하는 행위로 모든 보안 프로세스의 첫 번째 단계이다.
- 암호 : 사용자 이름과 암호는 가장 일반적인 인증 요소이다. 사용자가 올바른 데이터를 입력하면 시스템은 신분이 유효한 것으로 간주하고 액세스 권한을 부여한다.
- 일회성 핀(One-time pins) : 하나의 세션 또든 트랜잭션에만 액세스 권한을 부여한다.
- 인증 앱 : 액세스를 담당하는 외부 기관을 통해 보안 코드를 생성한다.
- 생체 인식 : 사용자는 시스템에 엑세스 하기 위해 지문/홍채 등을 사용한다.
주요 기술
- 암호 기반
- password-less : OTP 또는 등록된 이메일/전화번호로 전달되는 링크를 통해 사용자를 확인한다.
- 2FA / MFA(Multi-Factor Authentication) : 사용자를 식별하고 시스템에 대한 액세스 권한을 부여하기 위해 추가 PIN 또는 보안 질문과 같은 둘 이상의 보안 레벨이 필요하다.
- SSO(Single sign-on) : 사용자가 단일 자격 증명 집합으로 여러 응용 프로그램에 액세스할 수 있다.
- 소셜 인증 : SNS 플랫폼의 기존 자격 증명으로 사용자를 확인하고 인증한다.
Authorization
시스템 보안에서 권한 부여는 사용자에게 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 프로세스이다. 이 용어는 종종 액세스 제어 또는 클라이언트 권한과 같은 의미로 사용된다.
특정 파일의 다운로드 / 특정 애플리케이션에 대한 관리 권한을 가진 사용자 등이 그 예시이다.
승인은 언제나 인증을 뒤따라야 하며 사용자는 리소스에 대한 액세스 권한을 부여받기 전에 먼저 자신이 진짜임을 증명해야 한다.
주요 기술
- RBAC(Role-based access controls) : 기업 내 개별 사용자의 역할을 기반으로 컴퓨터나 네트워크 리소스에 대한 접근을 규제하는 방식이다.
- JWT(JSON web token) : 데이터를 안전하게 전송하기 위한 오픈소스로 사용자는 공개키, 개인키 쌍을 사용하여 권한을 부여 받는다.
- SAML(Security Assertion Markup Language) : 디지털 서명이 있는 XML 문서를 통해 인증 정보가 교환되는 표준 SSO 형식이다.
- OpenID : 인증 서버의 인증을 기반으로 사용자 ID를 확인한다.
- OAuth : API가 요청된 시스템 또는 리소스를 인증하고 액세스 할 수 있다.
Authentication | Authorization | |
하는 일 | 신분 확인 | 권한 허가/거부 |
작동 방식 | 비밀번호, biometrics, 원타임핀, 앱 | 보안 팀에 의해 관리되는 설정에 따라 |
사용자에게 보여지는가 | O | X |
사용자에 의해 바뀔 수 있는가 | 부분적으로 가능 | X |
데이터 전송 | ID token | access token |
https://www.okta.com/identity-101/authentication-vs-authorization/
'CS' 카테고리의 다른 글
[네트워크] 토큰 기반 인증과 JWT (1) | 2021.06.27 |
---|---|
[CS] 동기와 비동기 / 블로킹과 논블로킹 (0) | 2021.06.17 |
[네트워크]포워드 프록시(forward proxy)와 리버스 프록시(reverse proxy) (0) | 2021.06.01 |
[네트워크]웹서버와 WAS (0) | 2021.05.31 |
[네트워크]CORS (0) | 2021.05.26 |