애플리케이션 모델
애플리케이션은 사용자 스스로 로그인하거나 ID 공급자에게 로그인을 위임할 수 있습니다. 이 문서에서는 Microsoft ID 플랫폼에 애플리케이션을 등록하는 데 필요한 단계를 설명합니다.
애플리케이션 등록
ID 공급자가 사용자가 특정 앱에 액세스할 수 있음을 알려면 사용자와 애플리케이션을 모두 ID 공급자에 등록해야 합니다. Microsoft Entra ID를 사용하여 애플리케이션을 등록할 때 애플리케이션을 Microsoft ID 플랫폼과 통합할 수 있는 ID 구성을 제공합니다. 또한 앱을 등록하면 다음을 수행할 수 있습니다.
- 로그인 대화 상자에서 애플리케이션의 브랜딩을 사용자 지정합니다. 로그인은 사용자가 앱을 사용하는 첫 번째 경험이기 때문에 이 브랜딩이 중요합니다.
- 사용자가 조직에 속한 경우에만 로그인할 수 있도록 허용할지 여부를 결정합니다. 이 아키텍처를 단일 테넌트 애플리케이션이라고합니다. 또는 다중 테넌트 애플리케이션이라고 하는 회사 또는 학교 계정을 사용하여 사용자가 로그인하도록 허용할 수 있습니다. LinkedIn, Google 등의 개인 Microsoft 계정 또는 소셜 계정을 허용할 수도 있습니다.
- 범위 사용 권한을 요청합니다. 예를 들어 로그인한 사용자의 프로필을 읽을 수 있는 권한을 부여하는 "user.read" 범위를 요청할 수 있습니다.
- 웹 API에 대한 액세스를 정의하는 범위를 정의합니다. 일반적으로 앱이 API에 액세스하려는 경우 정의한 범위에 대한 권한을 요청해야 합니다.
- 앱의 ID를 증명하는 Microsoft ID 플랫폼과 비밀을 공유합니다. 비밀 사용은 앱이 기밀 클라이언트 애플리케이션인 경우와 관련이 있습니다. 기밀 클라이언트 애플리케이션웹 클라이언트같이 자격 증명을 안전하게 보관할 수 있는 애플리케이션입니다. 자격 증명을 저장하려면 신뢰할 수 있는 백 엔드 서버가 필요합니다.
앱이 등록되면 토큰을 요청할 때 Microsoft ID 플랫폼과 공유하는 고유 식별자가 제공됩니다. 앱이 기밀 클라이언트 애플리케이션인 경우 인증서 또는 비밀이 사용되었는지 여부에 따라 비밀 또는 공개 키도 공유합니다.
Microsoft ID 플랫폼은 다음 두 가지 주요 기능을 수행하는 모델을 사용하여 애플리케이션을 나타냅니다.
- 지원하는 인증 프로토콜로 앱을 식별합니다.
- 인증에 필요한 모든 식별자, URL, 비밀 및 관련 정보를 제공합니다.
Microsoft ID 플랫폼:
- 런타임에 인증을 지원하는 데 필요한 모든 데이터를 보유합니다.
- 앱에서 액세스해야 하는 리소스와 지정된 요청을 충족해야 하는 상황을 결정하기 위한 모든 데이터를 보유합니다.
- 앱 개발자 테넌트 및 다른 Microsoft Entra 테넌트 내에서 앱 프로비저닝을 구현하기 위한 인프라를 제공합니다.
- 토큰 요청 시간 동안 사용자 동의를 처리하고 테넌트 전체에서 앱의 동적 프로비저닝을 용이하게 합니다.
동의 리소스 소유자가 리소스 소유자를 대신하여 특정 권한으로 보호된 리소스에 액세스할 수 있도록 클라이언트 애플리케이션에 대한 권한 부여를 부여하는 프로세스입니다. Microsoft ID 플랫폼을 사용하면 다음을 수행할 수 있습니다.
- 사용자 및 관리자는 앱이 사용자를 대신하여 리소스에 액세스하는 데 대한 동의를 동적으로 부여하거나 거부할 수 있습니다.
- 관리자는 궁극적으로 수행할 수 있는 앱과 특정 앱을 사용할 수 있는 사용자 및 디렉터리 리소스에 액세스하는 방법을 결정합니다.
다중 테넌트 앱
중요하다
MTA(다중 테넌트 애플리케이션)는 각 클라우드 내에서 서비스 주체 권한이 분리되기 때문에 클라우드 경계를 넘어 작동하지 않습니다. 예를 들어 애플리케이션 개체가 상용 클라우드에서 호스트되는 경우 고객 온보딩 중에 연결된 서비스 주체가 로컬로 만들어집니다. 권한 URL(예: .com
및 .us
)이 다르므로 클라우드 경계를 넘으면 이 프로세스가 실패하여 비호환성이 발생합니다.
Microsoft ID 플랫폼에서 애플리케이션 개체는 애플리케이션을 설명합니다. 배포 시 Microsoft ID 플랫폼은 애플리케이션 개체를 청사진으로 사용하여 디렉터리 또는 테넌트 내에서 애플리케이션의 구체적인 인스턴스를 나타내는 서비스 주체만듭니다. 서비스 주체는 앱이 특정 대상 디렉터리에서 실제로 수행할 수 있는 작업, 사용할 수 있는 사용자, 액세스 권한이 있는 리소스 등을 정의합니다. Microsoft ID 플랫폼은 동의를 통해 애플리케이션 개체에서 서비스 주체를 만듭니다.
다음 다이어그램은 동의에 의해 구동되는 간소화된 Microsoft ID 플랫폼 프로비전 흐름을 보여줍니다. A 및 B두 개의 테넌트를 보여 줍니다.
- 테넌트 A 애플리케이션을 소유합니다.
- 테넌트 B 서비스 주체를 통해 애플리케이션을 인스턴스화합니다.
이 프로비저닝 흐름에서:
- 테넌트 B의 사용자가 앱으로 로그인을 시도합니다. 권한 부여 엔드포인트는 애플리케이션에 대한 토큰을 요청합니다.
- 인증을 위해 사용자 자격 증명을 획득하고 확인합니다.
- 테넌트 B에 대한 액세스 권한을 얻기 위해 앱에 대한 동의를 제공하라는 메시지가 사용자에게 표시됩니다.
- Microsoft ID 플랫폼은 테넌트 A의 애플리케이션 개체를 테넌트 B에서 서비스 주체를 만들기 위한 청사진으로 사용합니다.
- 사용자가 요청된 토큰을 받습니다.
더 많은 테넌트에 대해 이 프로세스를 반복할 수 있습니다. 테넌트 A는 앱(애플리케이션 개체)에 대한 청사진을 유지합니다. 앱에 동의가 부여된 다른 모든 테넌트 사용자 및 관리자는 각 테넌트에서 해당 서비스 주체 개체를 통해 애플리케이션이 수행할 수 있는 작업을 계속 제어합니다. 자세한 내용은 Microsoft ID 플랫폼에서 Application 및 서비스 주체 개체를 참조하세요.
다음 단계
Microsoft ID 플랫폼의 인증 및 권한 부여에 대한 자세한 내용은 다음 문서를 참조하세요.
- 인증 및 권한 부여의 기본 개념에 대한 자세한 내용은 인증 및 권한 부여참조하세요.
- 인증 및 권한 부여에 액세스 토큰, 새로 고침 토큰 및 ID 토큰을 사용하는 방법을 알아보려면 보안 토큰참조하세요.
- 웹, 데스크톱 및 모바일 앱의 로그인 흐름에 대해 알아보려면 앱 로그인 흐름참조하세요.
- 토큰 클레임을 사용하는 적절한 권한 부여에 대해 알아보려면 클레임 유효성을 검사하여 보안 애플리케이션 및 API를 참조하세요.
애플리케이션 모델에 대한 자세한 내용은 다음 문서를 참조하세요.
- Microsoft ID 플랫폼의 애플리케이션 개체 및 서비스 주체에 대한 자세한 내용은 애플리케이션이 Microsoft Entra ID추가되는 방법 및 이유를 참조하세요.
- 단일 테넌트 앱 및 다중 테넌트 앱에 대한 자세한 내용은 Microsoft Entra ID 테넌시을 참조하세요.
- Microsoft Entra ID가 조직에서 Google 계정과 같은 소셜 ID를 사용하여 사용자(일반적으로 고객)에 로그인할 수 있도록 Azure Active Directory B2C를 제공하는 방법에 대한 자세한 내용은 Azure Active Directory B2C 설명서참조하세요.