"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > SAML 대 OAuth 대 OpenID Connect

SAML 대 OAuth 대 OpenID Connect

2024-11-06에 게시됨
검색:965

이 게시물은 처음에 내 블로그에 게시되었습니다. 아래 링크를 사용하여 원본 소스를 확인하세요:

SAML vs. OAuth vs. OpenID Connect

SAML 대 OAuth 대 OpenID Connect

이 문서에서는 SAML, OAuth 및 OpenID Connect, 해당 사용 사례, 서로 상호 작용하는 방법을 살펴봅니다.

SAML vs. OAuth vs. OpenID Connect rahulvijayvergiya.hashnode.dev

인증 및 승인은 애플리케이션과 데이터의 보안을 보장하는 데 중요합니다. 이러한 프로세스를 관리하기 위해 널리 사용되는 세 가지 프로토콜은 OAuth, SAML 및 OpenID입니다.

Facebook, Google, LinkedIn과 같은 앱을 사용하여 다른 웹사이트에 로그인할 때 OAuth, SAMLOpenID Connect와 같은 몇 가지 중요한 프로토콜을 접하게 됩니다. . 이러한 프로토콜은 귀하가 다양한 서비스에 액세스할 수 있도록 허용하면서 귀하의 정보를 안전하게 유지하는 데 도움이 됩니다.

1. SAML(보안 주장 마크업 언어)

SAML은 당사자 간, 특히 ID 공급자(IdP)와 서비스 공급자(SP) 간에 인증 및 권한 부여 데이터를 교환하기 위한 개방형 표준입니다. 주로 SSO(Single Sign-On) 시나리오에 사용되며 사용자가 한 번 인증하면 여러 애플리케이션에 액세스할 수 있습니다.

SAML 작동 방식

역할/배우:

  • 사용자: 애플리케이션에 액세스하는 개인입니다.

  • ID 제공자(IdP): 사용자를 인증하고 ID 어설션을 제공하는 서비스입니다.

  • 서비스 제공업체(SP): 사용자가 액세스하려는 애플리케이션 또는 서비스입니다.

요청 흐름도:

SAML vs. OAuth vs. OpenID Connect

SAML의 주요 기능

  • SSO(Single Sign-On): 사용자는 여러 서비스에 대해 한 번 인증합니다.

  • XML 기반: 메시지에 XML을 사용하여 강력하게 만듭니다.

  • 보안 어설션: 사용자 ID와 속성을 안전하게 전송합니다.


2. OAuth(공개 승인)

OAuth는 토큰 기반 인증 및 권한 부여에 일반적으로 사용되는 액세스 위임을 위한 개방형 표준입니다. 이를 통해 타사 애플리케이션이 자격 증명을 노출하지 않고도 사용자 데이터에 액세스할 수 있습니다. OAuth는 주로 인증에 사용되며, 이를 통해 사용자는 한 사이트에서 호스팅되는 리소스에 대한 제한된 액세스 권한을 다른 사이트에 부여할 수 있습니다.

OAuth 작동 방식

역할/배우:

  • 리소스 소유자: 데이터를 소유하고 이에 대한 액세스 권한을 부여하는 사용자입니다.

  • 리소스 서버: 사용자 데이터를 호스팅하는 서버(예: Google, Facebook).

  • 클라이언트: 사용자 데이터에 대한 액세스를 요청하는 타사 애플리케이션.

  • 인증 서버: 리소스 소유자를 인증한 후 클라이언트에 액세스 토큰을 발급하는 역할을 담당하는 서버입니다.

요청 흐름도:

SAML vs. OAuth vs. OpenID Connect

OAuth의 주요 기능

  • 위임된 액세스: 사용자는 자격 증명을 공유하지 않고도 액세스 권한을 부여할 수 있습니다.

  • 액세스 토큰: 액세스 기간을 제한하는 단기 토큰입니다.

  • 범위: 클라이언트에게 부여된 액세스 범위를 정의합니다.


3. 오픈아이디 커넥트

OpenID Connect는 OAuth 2.0을 기반으로 구축된 인증 레이어입니다. 신원 확인을 추가하고 클라이언트가 권한 부여 서버에서 수행한 인증을 기반으로 사용자의 신원을 확인할 수 있는 방법을 제공합니다.

OpenID Connect 작동 방식

역할/배우:

  • 최종 사용자: 인증하려는 사용자입니다.

  • 클라이언트: 사용자 인증을 요청하는 애플리케이션입니다.

  • 인증 서버: 사용자를 인증하고 토큰을 발급하는 서버입니다.

요청 흐름도:

SAML vs. OAuth vs. OpenID Connect

OpenID Connect의 주요 기능

  • ID 토큰: 사용자 정보 및 클레임을 제공하는 JWT입니다.

  • OAuth와의 원활한 통합: 인증과 승인을 결합합니다.

  • 사용자 정보 끝점: 추가 사용자 정보를 가져오는 것을 허용합니다.

OpenID ConnectOAuth

비슷해 보이지만 둘 다 서로 다르지만 보완적인 목적으로 사용됩니다.

  • OAuth: 인증에 사용됩니다. 이를 통해 앱은 비밀번호 없이도 다른 서비스(예: Facebook 또는 Google)의 리소스(예: 프로필, 사진)에 액세스할 수 있습니다. 데이터에 제한적인 액세스 권한을 부여하려면 OAuth를 사용하세요(예: 캘린더에 액세스하는 타사 앱).

  • OpenID Connect(OIDC): OAuth를 기반으로 구축되었으며 인증에 사용됩니다. 이는 귀하의 신원을 확인하고 앱이 귀하가 누구인지 알 수 있도록 합니다. Google과 같은 서비스를 사용하여 웹사이트나 앱에 로그인하고 자신이 누구인지 증명해야 할 때 OpenID Connect를 사용하세요.

사용 시기:

  • OAuth 사용:

    • 앱이 사용자를 대신하여 데이터나 리소스에 액세스하도록 하려는 경우(예: Twitter에 앱 게시).
    • "이 앱이 내 데이터에 액세스할 수 있나요?" (권한 부여)
  • OpenID Connect 사용:

    • 사용자의 신원을 확인해야 하는 경우(예: Google 계정을 사용하여 웹사이트에 로그인).
    • "이 사용자는 누구입니까?" (입증)

OAuth, SAML 및 OpenID Connect의 빠른 비교

특징 OAuth SAML 오픈아이디 커넥트
목적 권한 부여 입증 인증 및 승인
체재 JSON, 토큰 XML JSON
사용 사례 API 액세스, 모바일 앱 웹 애플리케이션, SSO 웹 및 모바일 애플리케이션
복잡성 보통의 높은 보통의
사용자 경험 IdP로 리디렉션 IdP로 리디렉션 인증 서버로 리디렉션

결론

사용자 인증 및 권한 부여를 효과적으로 처리하는 보안 애플리케이션을 구축하려면 OAuth, SAML 및 OpenID Connect를 이해하는 것이 필수적입니다. 각 프로토콜에는 데이터를 안전하게 유지하면서 필요한 것에 액세스할 수 있도록 하는 목적이 있습니다.

참고자료

  1. OAuth 2.0을 간단하게 설명합니다.

  2. SAML이란 무엇입니까?

  3. OpenID Connect 개요

  4. 차이점 이해: OAuth, SAML 및 OpenID Connect

릴리스 선언문 이 기사는 https://dev.to/rahulvijayvergiya/saml-vs-oauth-vs-openid-connect-29m4?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3