Microsoft Entra ID의 애플리케이션 및 서비스 주체 개체

이 문서에서는 Microsoft Entra ID의 애플리케이션 등록, 애플리케이션 개체 및 서비스 주체, 정의, 사용 방법 및 서로 관련되는 방식에 대해 설명합니다. 다중 테넌트 예제 시나리오는 애플리케이션의 애플리케이션 개체와 해당 서비스 사용자 개체 간의 관계를 설명하기 위해 제공됩니다.

애플리케이션 등록

ID 및 액세스 관리 함수를 Microsoft Entra ID에 위임하려면 애플리케이션이 Microsoft Entra 테넌트에 등록되어 있어야 합니다. Microsoft Entra ID로 애플리케이션을 등록하면 Microsoft Entra ID와 통합할 수 있는 애플리케이션에 대한 ID 구성이 만들어집니다. 앱을 등록할 때 단일 테넌트인지 다중 테넌트인지 선택하고 선택적으로 리디렉션 URI를 설정할 수 있습니다. 앱 등록에 대한 단계별 지침은 앱 등록 빠른 시작을 참조하세요.

앱 등록을 완료하면 홈 테넌트 또는 디렉터리 내에 상주하는 앱의 전역적으로 고유한 인스턴스(애플리케이션 개체)가 확보됩니다. 또한 앱에 대해 전역적으로 고유한 ID(앱/클라이언트 ID)가 있습니다. 포털에서 비밀 또는 인증서 및 범위를 추가하여 앱이 작동하도록 하고, 로그인 대화 상자에서 앱의 브랜딩을 사용자 지정하는 등의 작업을 수행할 수 있습니다.

애플리케이션을 등록하면 홈 테넌트에 애플리케이션 개체와 서비스 주체 개체가 자동으로 만들어집니다. Microsoft Graph API를 사용하여 애플리케이션을 등록/생성할 경우 별도의 단계를 통해 서비스 사용자 개체를 만들 수 있습니다.

애플리케이션 개체

Microsoft Entra 애플리케이션은 애플리케이션이 등록된 Microsoft Entra 테넌트(애플리케이션의 "홈" 테넌트라고 함)에 상주하는 유일한 애플리케이션 개체로 정의됩니다. 애플리케이션 개체는 템플릿 또는 청사진으로 사용되어 하나 이상의 서비스 주체 개체를 만듭니다. 애플리케이션이 사용되는 모든 테넌트에 서비스 사용자가 생성됩니다. 개체 지향 프로그래밍의 클래스와 유사하게 애플리케이션 개체에는 생성된 모든 서비스 사용자(또는 애플리케이션 인스턴스)에 적용되는 일부 정적 속성이 있습니다.

애플리케이션 개체는 애플리케이션의 세 가지 측면을 설명합니다.

  • 서비스에서 애플리케이션에 액세스하기 위해 토큰을 발급하는 방법
  • 애플리케이션에서 액세스해야 할 수 있는 리소스
  • 애플리케이션에서 수행할 수 있는 작업

Microsoft Entra 관리 센터앱 등록 페이지를 사용하여 홈 테넌트의 애플리케이션 개체를 나열하고 관리할 수 있습니다.

App registrations blade

Microsoft Graph 애플리케이션 엔터티는 애플리케이션 개체의 속성에 대한 스키마를 정의합니다.

서비스 주체 개체

Microsoft Entra 테넌트로 보호되는 리소스에 액세스하려면 액세스가 필요한 엔터티가 보안 주체로 표시되어야 합니다. 이 요구 사항은 사용자(사용자 주체) 및 애플리케이션(서비스 사용자) 둘 다 마찬가지입니다. 보안 주체는 Microsoft Entra 테넌트의 사용자/애플리케이션에 대한 액세스 정책 및 권한을 정의합니다. 이를 통해 로그인 동안의 사용자/애플리케이션의 인증 및 리소스 액세스 동안의 권한 부여 같은 핵심 기능이 허용됩니다.

서비스 사용자 유형은 다음 3가지입니다.

  • 애플리케이션 - 이 서비스 사용자 유형은 단일 테넌트 또는 디렉터리에 있는 전역 애플리케이션 개체의 로컬 표현 또는 애플리케이션 인스턴스입니다. 이 경우 서비스 사용자는 애플리케이션 개체에서 만든 구체적인 인스턴스이고 해당 애플리케이션 개체의 특정 속성을 상속합니다. 서비스 주체는 애플리케이션이 사용되는 각 테넌트에 만들어지고 전역적으로 고유한 앱 개체를 참조합니다. 서비스 사용자 개체는 앱이 특정 테넌트에서 실제로 수행할 수 있는 작업, 앱에 액세스할 수 있는 사용자 및 앱이 액세스할 수 있는 리소스를 정의합니다.

    애플리케이션이 테넌트의 리소스에 액세스하기 위한 권한을 받으면(등록 또는 동의 시) 서비스 주체 개체가 만들어집니다. 애플리케이션을 등록하면 서비스 주체가 자동으로 만들어집니다. Azure PowerShell, Azure CLI, Microsoft Graph, 기타 도구를 사용하여 테넌트에서 서비스 사용자 개체를 생성할 수도 있습니다.

  • 관리 ID - 이 서비스 사용자 유형은 관리 ID를 나타내는 데 사용합니다. 관리 ID를 통해 개발자는 자격 증명을 관리할 필요가 없습니다. 관리 ID는 Microsoft Entra 인증을 지원하는 리소스에 연결할 때 사용할 애플리케이션의 ID를 제공합니다. 관리 ID를 사용할 경우 해당 관리 ID를 나타내는 서비스 사용자가 테넌트에 만들어집니다. 관리 ID를 나타내는 서비스 사용자에게 액세스 및 사용 권한을 부여할 수는 있으나 직접 업데이트하거나 수정할 수는 없습니다.

  • 레거시 - 이 서비스 사용자 유형은 레거시 앱(앱 등록 도입 전에, 또는 레거시 환경을 통해 만들어진 앱)을 나타냅니다. 레거시 서비스 사용자는 자격 증명, 서비스 사용자 이름, 회신 URL 및 기타 권한 있는 사용자가 편집할 수 있는 속성을 가질 수 있으나 연결된 앱 등록은 없습니다. 서비스 사용자는 해당 서비스 사용자를 만든 테넌트에서만 사용할 수 있습니다.

Microsoft Graph 서비스 사용자 엔터티는 서비스 사용자 개체의 속성에 대한 스키마를 정의합니다.

Microsoft Entra 관리 센터의 엔터프라이즈 애플리케이션 페이지를 사용하여 테넌트의 서비스 주체를 나열하고 관리할 수 있습니다. 서비스 사용자의 권한, 사용자가 동의한 권한, 해당 동의를 수행한 사용자, 로그인 정보 등을 볼 수 있습니다.

Enterprise apps blade

애플리케이션 개체와 서비스 사용자 간의 관계

애플리케이션 개체는 모든 테넌트에서 사용하기 위한 애플리케이션에 대한 글로벌 대표로 간주되고, 서비스 사용자는 특정 테넌트에서 사용하기 위한 로컬 대표로 간주됩니다. 애플리케이션 개체는 해당 서비스 주체 개체 만들기에 사용하기 위해 공통의 기본 속성이 파생되는 템플릿으로 제공됩니다.

애플리케이션 개체는 다음과 같은 속성을 갖습니다.

  • 소프트웨어 애플리케이션과의 일대일 관계 및
  • 해당 서비스 개체와의 일대다 관계

애플리케이션이 사용될 각 테넌트에 서비스 주체를 만들어서 테넌트가 보호하는 리소스에 대한 로그인 및/또는 액세스를 위한 ID를 설정할 수 있어야 합니다. 단일 테넌트 애플리케이션에는 해당 홈 테넌트에 하나의 서비스 사용자만 있으며 애플리케이션 등록 중에 생성하고 동의합니다. 다중 테넌트 애플리케이션에도 해당 테넌트의 사용자가 사용을 동의한 각 테넌트에 생성된 하나의 서비스 사용자가 있습니다.

앱과 연결된 서비스 주체 나열

애플리케이션 개체와 연결된 서비스 주체를 찾을 수 있습니다.

Microsoft Entra 관리 센터에서 애플리케이션 등록 개요로 이동합니다. 로컬 디렉터리의 관리되는 애플리케이션을 선택합니다.

Screen shot that shows the Managed application in local directory option in the overview.

애플리케이션 수정 및 삭제 결과

애플리케이션 개체에 대해 이뤄진 모든 변경은 또한 애플리케이션의 홈 테넌트(그것이 등록된 테넌트)에만 있는 해당 서비스 사용자 개체에도 반영됩니다. 즉, 애플리케이션 개체를 삭제하면 홈 테넌트 서비스 사용자 개체도 삭제됩니다. 그러나 앱 등록 UI를 통해 해당 애플리케이션 개체를 복원해도 해당 서비스 주체는 복원되지 않습니다. 애플리케이션 및 해당 서비스 주체 개체의 삭제 및 복구에 대한 자세한 내용은 애플리케이션 및 서비스 주체 개체 삭제 및 복구를 참조하세요.

예시

다음 다이어그램은 HR 앱이라는 샘플 다중 테넌트 애플리케이션의 컨텍스트에서 애플리케이션의 애플리케이션 개체와 해당 서비스 주체 개체를 보여줍니다. 이 시나리오 예에는 세 개의 Microsoft Entra 테넌트가 있습니다.

  • Adatum - HR 앱을 개발한 회사에서 사용하는 테넌트
  • Contoso - HR 앱의 소비자인 Contoso 조직에서 사용하는 테넌트
  • Fabrikam - HR 앱의 또 다른 소비자인 Fabrikam 조직에서 사용하는 테넌트

Relationship between app object and service principal object

이 예제 시나리오는 다음과 같이 이루어져 있습니다.

단계 Description
1 애플리케이션의 홈 테넌트에서 애플리케이션 및 서비스 주체 개체를 만드는 과정입니다.
2 Contoso 및 Fabrikam 관리자가 동의를 완료하면 회사의 Microsoft Entra 테넌트에 서비스 주체 개체가 만들어지고 관리자가 부여한 사용 권한이 할당됩니다. 또한 사용자가 개별 사용에 대한 동의를 할 수 있게 HR 앱이 구성/설계될 수 있습니다.
3 HR 애플리케이션의 각 소비자 테넌트(예: Contoso 및 Fabrikam)에 고유한 서비스 주체 개체가 제공됩니다. 각각은 런타임에 애플리케이션 인스턴스의 사용을 나타내며, 이는 해당 관리자가 동의한 사용 권한으로 관리됩니다.

다음 단계

서비스 주체를 생성하는 방법을 알아봅니다.