tech/보안&인증

[보안&인증] openID와 SSO 비교 정리

daniel_lab 2024. 6. 23. 14:22

OpenID

  • 정의: OpenID는 인터넷 사용자들이 여러 웹사이트에서 하나의 아이디로 로그인할 수 있게 하는 인증 프로토콜
  • 역할: OpenID는 인증 과정을 표준화하고, 사용자가 특정 OpenID 제공자(IdP)를 통해 여러 웹사이트(Relying Party, RP)에 인증할 수 있게 한다.
  • 구현 예: OpenID Connect는 OAuth 2.0을 기반으로 하는 인증 프로토콜로, 현재 널리 사용되는 OpenID 표준

SSO (Single Sign-On)

  • 정의: SSO는 사용자가 한 번 로그인하면 동일한 자격 증명으로 여러 애플리케이션이나 시스템에 접근할 수 있게 하는 기능이자 개념
  • 역할: SSO는 사용자 편의성을 높이고, 보안성을 강화하며, 관리 비용을 절감하는 것을 목표로 한다. SSO 자체는 특정 기술이나 프로토콜이 아니라 이러한 목적을 달성하기 위한 여러 기술을 포함하는 개념
  • 구현 예: SSO는 다양한 프로토콜(SAML, OAuth, OpenID Connect 등)을 사용하여 구현될 수 있다

SSO 구현에 사용되는 주요 프로토콜

  1. SAML (Security Assertion Markup Language)
    • 역할: XML 기반의 표준 프로토콜로, 주로 웹 브라우저 SSO에 사용됨. SAML은 IdP와 SP 간에 인증 정보를 교환한다
    • 사용 사례: 기업 내부의 여러 웹 애플리케이션 간 SSO 구현
  2. OAuth
    • 역할: 주로 권한 부여(Authorization)에 사용되는 프로토콜이지만, OpenID Connect와 결합되어 인증(Authentication)에도 사용
    • 사용 사례: 소셜 로그인, API 접근 권한 위임.
  3. OpenID Connect (OIDC)
    • 역할: OAuth 2.0을 기반으로 한 인증 프로토콜로, 사용자가 한 번 로그인하면 여러 애플리케이션에 접근할 수 있게 한다
    • 사용 사례: 구글 계정을 통한 다양한 서드파티 애플리케이션 로그인.

요약

  • OpenID: 특정한 인증 프로토콜로, 사용자가 여러 웹사이트에서 하나의 아이디로 로그인할 수 있게 한다
  • SSO: 사용자가 한 번 로그인하면 여러 애플리케이션이나 시스템에 접근할 수 있게 하는 기능 또는 개념. SSO는 특정 프로토콜이 아니며, SAML, OAuth, OpenID Connect 등의 프로토콜을 통해 구현될 수 있음

이러한 구분을 통해 SSO는 다양한 프로토콜을 활용하여 사용자 경험과 보안을 개선하는 개념이며, OpenID는 이러한 프로토콜 중 하나로 작동한다