[ASAC 3기 개발일지] 클라우드와 웹 - (1)

배규리·2023년 11월 2일
0
post-thumbnail

🔠 키워드

  • Authentication 인증
  • Authorization 인가
  • SSO(Single Sign-On)
  • SAML(Security Assertion Markup Language)
  • OIDC(Open ID Connect)
  • SSO, SAML, OIDC 정리 ⭐

Authentication 인증

Credential (아이디 비밀번호) 입력 후 존재하는 계정인지를 확인

인증 = 기가입자 여부 확인

MFA(Multi-Factor Authentication): 핸드폰 추가 인증

→ Credectial 탈취 방지를 위한 강화책

내가 누구인지 밝히기

Authorization 인가

가능한 작업/접근 권한 및 역할 부여

내가 무엇을 할 수 있는지 허가증 받아내기

SSO(Single Sign-On)

Authentiation(인증)의 일종

왜, SSO가 필요한가?

  • 기존: 서비스당 계정 필요
    • a계정 → A서비스
    • b계정 → B서비스
    • c계정 → C서비스
  • SSO: 하나의 계정으로 다른 서비스 다 쓰기
    • x계정 → A서비스
    • x계정 → B서비스
    • x계정 → C서비스

💡 용어 정리

  • Service Provider(SP) = 서비스(A, B, C)
  • Identity Provider(IdP) = 인증서 제공하는 서버
    ⇒ IdP를 인증하기 위한 방법 2가지(SAML, OpenID)

SAML(Security Assertion Markup Language)

SAR(SAML Authentication Request): 인증서 요청서

“ 연회장에 들어오려면(SP) 왕족(IdP)에게 인증서 받아오시기 바랍니다 ”

SAML(Security Assertion Markup Language): 인증서

“ 왕족(IdP)님, 연회장(SP)에 가려면 인증서(x계정) 받아오랍니다. ”

  • 서비스 간에 ID 정보를 교환하기 위한 XML 기반 개방형 표준

SAML 검증: SAML을 Public Key로 복호화 및 검증

“ 문지기 왈 ‘솜씨가 대단하군(???) 들어가거라 “

요청 흐름 ⏳

  1. gmail 계정으로 로그인
    gmail서버는 사용자가 직장 도메인에 있음을 감지
  2. SAML 인증 요청을 브라우저로 반환
  3. 브라우저는 사용자를 SAML 인증 요청에 지정된 회사의 ID 공급 업체로 리디렉션
    공급 업체 예시: Okta, Auth0, OneLogin. …
  4. ID 공급 업체는 사용자가 로그인 사용자 인증 정보를 입력하는 로그인 페이지를 표시
  5. 인증되면 ID 공급 업체는 SAML 응답을 생성하고 이를 브라우저에 반환

여기서의 반환 값 = SAML Assertion

→ XML 문서

→ 사용자가 서비스 제공 업체를 통해 액세스할 수 있는 정보

  1. 브라우저는 서명된 SAML Assertion을 서비스 제공 업체에 전달
  2. 서비스 제공 업체는 Assertion이 ID 제공 업체에 의해 서명되었는지 확인
    -> 공개 키 암호화를 통해 수행되는 과정
  3. SAML Assertion에 지정된 대로 사용자에게 접근이 허용된 항목에 따라 보호된 Resource를 브라우저에 return

💡 만약 같은 계정으로 다른 서비스에 접근하려고 하는 경우, 로그인 프로세스는 건너뛰고 해당 서비스에 대한 SAML Assertion을 생성하여 사용자가 거기에서 접근할 수 있는 항목을 새로 자세히 작성한다.

OIDC(Open ID Connect)

OIDC

  • JWT를 사용하여 서비스 간에 ID정보를 공유
  • 소셜 로그인(google, kakao, …)
  • SAML과 유사하지만 XML 문서가 아닌 JWT를 전달한다는 차이점

SSO와 OAuth의 관계성?

  • OAuth는 인증 후 인가를 통해 유저 데이터를 선택적으로 가져온다.
    • 인증 시 Authorization(인가) Token 발행
      ⇒ Payload가 단순
    • 구식의 프로토콜
  • OIDC는 인증과 함께 유저 데이터를 한 번에 다 가져오게 된다.
    • 인증 시 Authorization Token+Resources 반환
      ⇒ Payload가 고도화
    • 진보된 프로토콜

SSO, SAML, OIDC 정리 ⭐

Authentication 인증 방식: SSO

SSO의 상세 방법

  • SAML(Security Assertion Markup Language
  • OIDC(Open ID Connect)
    • 새로운 웹 애플리케이션을 작성하는 경우 안전

마무리

이렇게 첫 게시물 작성이 끝났다 ㅎㅎ...
노션에 정리만 하다가 처음 옮겨적어봤는데 적으면서 또 정리되는거같고 좋다!
지금 진행 중인 수업까지 들었던 내용 다 따라가야지 ㅎㅎ!
화이팅😊

profile
백엔드 개발은 취미인 AI 개발자🥹

0개의 댓글