Trace Id is missing
주 콘텐츠로 건너뛰기
Microsoft Security

OIDC란?

디지털 리소스에 액세스하기 위해 로그인할 때 사용자 ID를 확인하는 인증 프로토콜인 OIDC(OpenID Connect)에 대해 알아봅니다.

OIDC(OpenID Connect)가 정의됨

OIDC(OpenID Connect)는 디지털 서비스에 액세스하기 위해 로그인할 때 사용자를 인증하고 권한을 부여하는 프로세스를 표준화하기 위한 OAuth(Open Authorization) 2.0이 확장된 ID 인증 프로토콜입니다. OIDC는 인증을 제공합니다. 즉, 사용자가 본인임을 확인합니다. OAuth 2.0은 해당 사용자가 액세스할 수 있는 시스템에 권한을 부여합니다. OAuth 2.0은 일반적으로 관련 없는 두 애플리케이션이 사용자 데이터를 손상시키지 않고 정보를 공유할 수 있도록 하는 데 사용됩니다. 예를 들어 많은 사람들이 새 사용자 이름 및 암호를 만드는 대신 이메일 또는 소셜 미디어 계정을 사용하여 타사 사이트에 로그인합니다. OIDC는 Single Sign-On을 제공하는 데도 사용됩니다. 조직은 ID의 기본 인증자로 Microsoft Entra ID(이전의 Azure Active Directory)와 같은 보안 IAM(ID 및 액세스 관리) 시스템을 활용한 다음 OIDC를 사용하여 해당 인증을 다른 앱에 전달할 수 있습니다. 이렇게 하면 사용자가 여러 앱에 액세스하기 위해 하나의 사용자 이름 및 암호로 한 번만 로그인하면 됩니다.

 

 

OIDC의 주요 구성 요소

OIDC에는 다음과 같은 6가지 기본 구성 요소가 있습니다.

  • 인증은 사용자가 자신의 신원을 확인하는 프로세스입니다.

  • 클라이언트는 사용자를 인증하거나 리소스에 액세스하는 데 사용되는 토큰을 요청하는 웹 사이트 또는 애플리케이션과 같은 소프트웨어입니다.

  • 신뢰 당사자는 OpenID 공급자를 사용하여 사용자를 인증하는 애플리케이션입니다.  

  • ID 토큰은 인증 프로세스의 결과, 사용자 식별자 및 사용자 인증 방법 및 시기에 대한 정보 등과 같은 ID 데이터를 포함할 수 있습니다. 

  • OpenID 공급자는 사용자에게 이미 계정이 있는 애플리케이션입니다. OIDC에서 OpenID 공급자의 역할은 사용자를 인증하고 해당 정보를 신뢰 당사자에게 전달하는 것입니다.

  • 사용자는 새 계정을 만들거나 사용자 이름과 암호를 제공하지 않고 애플리케이션에 액세스하려는 사용자 또는 서비스입니다. 

 

OIDC 인증의 작동 방식

OIDC 인증은 사용자가 한 애플리케이션에 로그인하고 다른 애플리케이션에 대한 액세스 권한을 받을 수 있도록 허용하는 방식으로 작동합니다. 예를 들어 사용자가 뉴스 사이트에서 계정을 만들려는 경우 새 계정을 만드는 대신 Facebook을 사용하여 계정을 만드는 옵션이 있을 수 있습니다. Facebook을 선택하는 경우 OIDC 인증을 사용합니다. OpenID 공급자라고 하는 Facebook은 인증 프로세스를 처리하고 사용자 프로필과 같은 특정 정보를 신뢰 당사자인 뉴스 사이트에 제공하기 위해 사용자의 동의를 얻습니다. 

ID 토큰 

OpenID 공급자는 ID 토큰을 사용하여 인증 결과 및 관련 정보를 신뢰 당사자에게 전송합니다. 전송되는 데이터 형식의 예로는 ID, 이메일 주소 및 이름이 포함됩니다.

범위

범위는 사용자가 액세스 권한으로 수행할 수 있는 작업을 정의합니다. OIDC는 토큰이 생성된 신뢰 당사자, 토큰이 생성된 시기, 토큰이 만료되는 시기 및 사용자를 인증하는 데 사용되는 암호화 강도와 같은 항목을 정의하는 표준 범위를 제공합니다. 

일반적인 OIDC 인증 프로세스에는 다음 단계가 포함됩니다.

  1. 사용자가 액세스하려는 애플리케이션(신뢰 당사자)으로 이동합니다.
  2. 사용자가 사용자 이름 및 암호를 입력합니다.
  3. 신뢰 당사자가 OpenID 공급자에게 요청을 보냅니다.
  4. OpenID 공급자는 사용자의 자격 증명의 유효성을 검사하고 권한 부여를 얻습니다.
  5. OpenID 공급자는 ID 토큰과 종종 액세스 토큰을 신뢰 당사자에게 보냅니다.
  6. 신뢰 당사자는 사용자 디바이스에 액세스 토큰을 보냅니다.
  7. 액세스 토큰 및 신뢰 당사자에 제공된 정보에 따라 사용자에게 액세스 권한이 부여됩니다. 

OIDC 흐름이란?

OIDC 흐름은 토큰을 요청하고 신뢰 당사자에게 전달하는 방법을 정의합니다. 몇 가지 예는 다음과 같습니다.

  • OIDC 권한 부여 흐름: OpenID 공급자가 신뢰 당사자에게 고유한 코드를 보냅니다. 그런 다음 신뢰 당사자는 토큰을 대신하여 고유 코드를 OpenID 공급자에게 다시 보냅니다. 이 메서드는 OpenID 공급자가 토큰을 보내기 전에 신뢰 당사자를 확인할 수 있도록 사용됩니다. 브라우저는 이 메서드에서 토큰을 볼 수 없으므로 보안을 유지하는 데 도움이 됩니다.

  • PKCE 확장을 사용하여 OIDC 권한 부여 흐름: 이 흐름은 PKCE(코드 교환) 확장에 공개 키를 사용하여 통신을 해시로 전송한다는 점을 제외하고 OIDC 권한 부여 흐름과 동일합니다. 이렇게 하면 토큰을 가로챌 가능성이 줄어듭니다.

  • 클라이언트 자격 증명: 이 흐름은 애플리케이션 자체의 ID를 사용하여 웹 API에 대한 액세스를 제공합니다. 일반적으로 서버 간 통신 및 사용자 상호 작용이 필요하지 않은 자동화된 스크립트에 사용됩니다.

  • 디바이스 코드: 이 흐름을 통해 사용자는 브라우저가 없거나 스마트 TV와 같은 키보드 환경이 좋지 않은 인터넷에 연결된 디바이스에서 웹 기반 API에 로그인하고 액세스할 수 있습니다. 

브라우저 기반 애플리케이션용으로 설계된 OIDC 암시적 흐름과 같은 추가 흐름은 보안 위험이 있으므로 권장되지 않습니다.

OIDC 및 OAuth 2.0

OIDC는 인증을 추가하기 위해 OAuth 2.0을 기반으로 빌드되었습니다. OAuth 2.0 프로토콜이 먼저 개발된 후 기능을 개선하도록 OIDC가 추가되었습니다. 둘 간의 차이점은 OAuth 2.0은 권한 부여를 제공하는 반면 OIDC는 인증을 제공한다는 점입니다. OAuth 2.0은 사용자가 OpenID 공급자와 함께 자신의 계정을 사용하여 신뢰 당사자에 액세스할 수 있도록 하는 것이며, OIDC는 OpenID 공급자가 사용자 프로필을 신뢰 당사자에게 전달할 수 있게 해 줍니다. 또한 OIDC를 사용하면 조직에서 사용자에게 Single Sign-On을 제공할 수 있습니다.

 

 

OIDC 인증의 이점

OIDC는 사용자가 앱에 액세스하는 데 필요한 계정 수를 줄여 개인과 조직 모두에 다음과 같은 몇 가지 이점을 제공합니다.

  • 암호 도난의 위험을 줄입니다.

    여러 개의 암호를 사용하여 업무와 개인 생활을 위해 필요한 앱에 액세스해야 하는 경우 Password1234!와 같이 기억하기 쉬운 암호를 선택하고 여러 계정에서 동일한 암호를 사용하는 경우가 많습니다. 이렇게 하면 잘못된 행위자가 암호를 추측할 수 있는 위험이 높아집니다. 그리고 한 계정에 대한 암호를 알고 있으면 다른 계정에도 액세스할 수 있습니다. 다른 사용자가 기억해야 하는 암호 수를 줄이면 더 강력하고 안전한 암호를 사용할 가능성이 높아집니다.

  • 보안 제어 수준 향상

    조직에서는 한 앱에서 인증을 중앙 집중식으로 관리하여 강력한 액세스 제어를 사용하여 여러 앱에서 액세스를 보호할 수도 있습니다. OIDC 2단계 및 다단계 인증을 지원하며, 다음 중 두 개 이상을 사용하여 ID를 확인해야 합니다.

    • 사용자가 알고 있는 것(일반적으로 암호)

    • 쉽게 복제되지 않는 신뢰할 수 있는 디바이스 또는 토큰과 같이 사용자가 가지고 있는 것 

    • 지문이나 얼굴 스캔과 같이 사용자의 신체 일부

    다단계 인증은 계정 손상을 줄이기 위한 검증된 방법입니다. 또한 조직은 OIDC를 사용하여 여러 앱에서 권한 있는 액세스 관리, 암호 보호, 로그인 보안 또는 ID 보호와 같은 다른 보안 조치를 적용할 수 있습니다. 

  • 사용자 환경 간소화

    하루 종일 여러 계정에 로그인하면 시간이 오래 걸리고 사용자에게 불편을 초래할 수 있습니다. 또한 암호를 분실하거나 잊어버린 경우 암호를 다시 설정하면 생산성이 더 저하될 수 있습니다. OIDC를 사용하여 직원에게 Single Sign-On을 제공하는 기업은 직원이 앱에 액세스하는 대신 생산성 높은 작업에 더 많은 시간을 소비하도록 지원합니다. 또한 조직에서 개인이 Microsoft, Facebook 또는 Google 계정을 사용하여 로그인할 수 있도록 허용하는 경우 고객이 자신의 서비스에 등록하고 서비스를 사용할 가능성이 높아집니다. 

  • 인증 표준화

    OIDC를 작성한 OpenID Foundation에는 Microsoft 및 Google과 같은 주요 브랜드가 포함되어 있습니다. OIDC는 상호 운용 가능하도록 설계되었으며 iOS, Android, Microsoft Windows, 주요 클라우드 및 ID 공급자를 비롯한 여러 플랫폼 및 라이브러리를 지원합니다.

  • ID 관리 간소화

    OIDC를 사용하여 직원과 파트너에게 Single Sign-On을 제공하는 조직은 관리해야 하는 ID 관리 솔루션의 수를 줄일 수 있습니다. 이렇게 하면 권한 변경을 더 쉽게 추적할 수 있으며 관리자는 하나의 인터페이스를 사용하여 여러 앱에 액세스 정책 및 규칙을 적용할 수 있습니다. OIDC를 사용하여 사용자가 OpenID 공급자를 사용하여 앱에 로그인할 수 있도록 허용하는 회사는 관리해야 하는 ID 수가 줄어듭니다. 

OIDC 예제 및 사용 사례

많은 조직에서 OIDC를 사용하여 웹 및 모바일 앱에서 보안 인증을 사용하도록 설정합니다. 몇 가지 예는 다음과 같습니다.

  • 사용자가 Spotify 계정에 등록하면 다음 세 가지 선택 항목이 제공됩니다. Facebook에 등록하고, Google에 등록하고, 이메일 주소로 등록합니다. Facebook 또는 Google에 등록하기로 선택한 사용자는 OIDC를 사용하여 계정을 만듭니다. 선택한 OpenID 공급자(Google 또는 Facebook)로 리디렉션된 다음 로그인하면 OpenID 공급자가 Spotify 기본 프로필 세부 정보를 보냅니다. 사용자는 Spotify에 사용할 새 계정을 만들 필요가 없으며 암호는 보호된 상태로 유지됩니다.

  • LinkedIn은 사용자가 LinkedIn에 대해 별도의 계정을 만드는 대신 Google 계정을 사용하여 계정을 만들 수 있는 방법도 제공합니다. 

  • 회사는 Microsoft Office 365, Salesforce, Box 및 Workday에 액세스하여 작업을 수행해야 하는 직원에게 Single Sign-On을 제공하려고 합니다. 이 회사는 직원에게 각 앱에 대해 별도의 계정을 만들도록 요구하는 대신 OIDC를 사용하여 4개 모두에 대한 액세스를 제공합니다. 직원은 하나의 계정을 만들고 로그인할 때마다 업무에 필요한 모든 앱에 액세스할 수 있습니다.  

보안 인증을 위한 OIDC 구현

OIDC는 사용자를 위한 로그인 환경을 간소화하고 보안을 강화하기 위한 인증 프로토콜을 제공합니다. 고객이 계정을 관리하는 번거로움 없이 서비스에 등록하도록 장려하려는 비즈니스에 적합한 솔루션입니다. 또한 조직에서 직원과 다른 사용자에게 여러 앱에 대한 보안 Single Sign-On을 제공할 수 있습니다. 조직은 Microsoft Entra 같은 OIDC를 지원하는 ID 및 액세스 솔루션을 사용하여 모든 ID 및 인증 보안 정책을 한곳에서 관리할 수 있습니다.

   

 

Microsoft Security에 대한 자세한 정보

자주 하는 질문

  • OIDC는 디지털 서비스에 액세스하기 위해 로그인할 때 사용자를 인증하고 권한을 부여하는 프로세스를 표준화하기 위한 OAuth 2.0과 연동되는 ID 인증 프로토콜입니다. OIDC는 인증을 제공합니다. 즉, 사용자가 본인임을 확인합니다. OAuth 2.0은 해당 사용자가 액세스할 수 있는 시스템에 권한을 부여합니다. OIDC와 OAuth 2.0은 일반적으로 관련 없는 두 애플리케이션이 사용자 데이터를 손상시키지 않고 정보를 공유할 수 있도록 하는 데 사용됩니다. 

  • OIDC와 SAML(보안 어설션 태그 언어)은 모두 사용자가 안전하게 한 번 로그인한 후 여러 애플리케이션에 액세스할 수 있도록 하는 ID 인증 프로토콜입니다. SAML은 Single Sign-On에 널리 채택된 이전 버전의 프로토콜입니다. XML 형식을 사용하여 데이터를 전송합니다. OIDC는 JSON 형식을 사용하여 사용자 데이터를 전송하는 최신 프로토콜입니다. OIDC는 SAML보다 구현하기 쉽고 모바일 애플리케이션에서 더 잘 작동하기 때문에 널리 사용되고 있습니다.

  • OIDC는 관련이 없는 두 애플리케이션이 사용자 자격 증명을 손상시키지 않고 사용자 프로필 정보를 공유할 수 있도록 하는 데 사용되는 ID 인증 프로토콜인 OpenID Connect 프로토콜을 의미합니다.

  • OIDC는 인증을 추가하기 위해 OAuth 2.0을 기반으로 빌드되었습니다. OAuth 2.0 프로토콜이 먼저 개발된 후 기능을 개선하도록 OIDC가 추가되었습니다. 둘 간의 차이점은 OAuth 2.0은 권한 부여를 제공하는 반면 OIDC는 인증을 제공한다는 점입니다. OAuth 2.0은 사용자가 OpenID 공급자와 함께 자신의 계정을 사용하여 신뢰 당사자에 액세스할 수 있도록 하는 것이며, OIDC는 OpenID 공급자가 사용자 프로필을 신뢰 당사자에게 전달할 수 있게 해 줍니다. 또한 이 기능을 사용하면 조직에서 사용자에게 Single Sign-On을 제공할 수 있습니다. OAuth 2.0 및 OIDC 흐름은 약간 다른 용어를 사용한다는 점을 제외하고 유사합니다. 

    일반적인 OAuth 2.0 흐름에는 다음 단계가 있습니다.

    1. 사용자가 액세스하려는 애플리케이션(리소스 서버)으로 이동합니다.
    2. 리소스 서버는 사용자를 계정(클라이언트)이 있는 애플리케이션으로 리디렉션합니다.
    3. 사용자가 클라이언트에 대한 자격 증명을 사용하여 로그인합니다.
    4. 클라이언트는 사용자 액세스의 유효성을 검사합니다.
    5. 클라이언트는 리소스 서버에 액세스 토큰을 보냅니다.
    6. 리소스 서버가 사용자에게 액세스 권한을 부여합니다.

    일반적인 OIDC 흐름에는 다음 단계가 있습니다.

    1. 사용자가 액세스하려는 애플리케이션(신뢰 당사자)으로 이동합니다.
    2. 사용자가 사용자 이름 및 암호를 입력합니다.
    3. 신뢰 당사자가 OpenID 공급자에게 요청을 보냅니다.
    4. OpenID 공급자는 사용자의 자격 증명의 유효성을 검사하고 권한 부여를 얻습니다.
    5. OpenID 공급자는 ID 토큰과 종종 액세스 토큰을 신뢰 당사자에게 보냅니다.
    6. 신뢰 당사자는 사용자 디바이스에 액세스 토큰을 보냅니다.
    7. 액세스 토큰 및 신뢰 당사자에 제공된 정보에 따라 사용자에게 액세스 권한이 부여됩니다. 
  • OpenID 공급자는 ID 토큰을 사용하여 인증 결과 및 관련 정보를 신뢰 당사자 애플리케이션에 전송합니다. 전송되는 데이터 형식의 예로는 ID, 이메일 주소 및 이름이 포함됩니다.

Microsoft 365 팔로우