🔠 키워드
- 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로 복호화 및 검증
→ “ 문지기 왈 ‘솜씨가 대단하군(???) 들어가거라 “
요청 흐름 ⏳
- gmail 계정으로 로그인
gmail서버는 사용자가 직장 도메인에 있음을 감지
- SAML 인증 요청을 브라우저로 반환
- 브라우저는 사용자를 SAML 인증 요청에 지정된 회사의 ID 공급 업체로 리디렉션
공급 업체 예시: Okta, Auth0, OneLogin. …
- ID 공급 업체는 사용자가 로그인 사용자 인증 정보를 입력하는 로그인 페이지를 표시
- 인증되면 ID 공급 업체는 SAML 응답을 생성하고 이를 브라우저에 반환
여기서의 반환 값 = SAML Assertion
→ XML 문서
→ 사용자가 서비스 제공 업체를 통해 액세스할 수 있는 정보

- 브라우저는 서명된 SAML Assertion을 서비스 제공 업체에 전달
- 서비스 제공 업체는 Assertion이 ID 제공 업체에 의해 서명되었는지 확인
-> 공개 키 암호화를 통해 수행되는 과정
- 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)
마무리
이렇게 첫 게시물 작성이 끝났다 ㅎㅎ...
노션에 정리만 하다가 처음 옮겨적어봤는데 적으면서 또 정리되는거같고 좋다!
지금 진행 중인 수업까지 들었던 내용 다 따라가야지 ㅎㅎ!
화이팅😊