보안 애플리케이션 모델 프레임워크
Microsoft는 Microsoft Azure MFA(다단계 인증) 아키텍처를 통해 CSP(클라우드 솔루션 공급자) 파트너 및 CPV(제어판 Vendors)를 인증하기 위한 안전하고 확장 가능한 프레임워크를 도입하고 있습니다. CSP 파트너 및 제어판 공급업체는 파트너 센터 API 통합 호출에 대한 보안을 높이기 위해 새 모델을 사용할 수 있습니다. 이를 통해 Microsoft, CSP 파트너 및 제어판 공급업체를 비롯한 모든 당사자가 보안 위험으로부터 인프라 및 고객 데이터를 보호할 수 있습니다.
Important
Azure AD(Azure Active Directory) Graph는 2023년 6월 30일부터 더 이상 사용되지 않습니다. 앞으로 Azure AD Graph에 더 이상 투자하지 않습니다. Azure AD Graph API에는 보안 관련 수정 외에 SLA 또는 유지 관리 약정이 없습니다. 새로운 기능에 대한 투자는 Microsoft Graph에서만 이루어집니다.
애플리케이션을 Microsoft Graph API로 마이그레이션하는 데 충분한 시간이 있도록 증분 단계에서 Azure AD Graph를 사용 중지합니다. 나중에 발표할 예정이며, Azure AD Graph를 사용하여 새 애플리케이션 만들기를 차단합니다.
자세한 내용은 중요: Azure AD Graph 사용 중지 및 Powershell 모듈 사용 중단을 참조 하세요.
범위
이 문서는 다음 파트너에게 적용됩니다.
- 제어판 공급업체(CV)는 CSP 파트너가 파트너 센터 API와 통합하는 데 사용할 앱을 개발하는 독립 소프트웨어 공급업체입니다. CPV는 파트너 대시보드 또는 API에 직접 액세스할 수 있는 CSP 파트너가 아닙니다. CSP가 통합 마켓플레이스를 통해 제품을 판매할 수 있도록 하는 애플리케이션(일반적으로 웹앱)을 개발하는 회사입니다.
- CSP 간접 공급자 및 CSP 직접 파트너 - 앱 ID + 사용자 인증을 사용하고 파트너 센터 API와 직접 통합합니다.
참고 항목
CPV 자격을 얻으려면 먼저 파트너 센터에 CPV로 온보딩해야 합니다. CPV인 기존 CSP 파트너인 경우 이 필수 구성 요소도 적용됩니다.
보안 애플리케이션 개발
CSP를 대신하여 Microsoft 제품에 대한 주문을 하는 과정에서 CPV의 마켓플레이스 애플리케이션은 Microsoft API와 상호 작용하여 고객을 위해 주문을 하고 리소스를 프로비전합니다.
이러한 API 중 일부는 다음과 같습니다.
- 주문 배치 및 구독 수명 주기 관리와 같은 상거래 작업을 구현하는 파트너 센터 API입니다.
- CSP 테넌트 및 CSP 고객의 테넌트에 대한 ID 관리를 구현하는 Microsoft Graph API입니다.
- Azure 배포 기능을 구현하는 ARM(Azure Resource Manager) API입니다.
CSP 파트너는 Microsoft API를 호출할 때 고객을 대신하여 작동할 수 있는 위임된 권한을 부여합니다. 위임된 권한을 통해 CSP 파트너는 고객에 대한 구매, 배포 및 지원 시나리오를 완료할 수 있습니다.
Marketplace 애플리케이션은 CSP 파트너가 고객을 위한 솔루션을 나열할 수 있도록 설계되었습니다. 이를 위해 마켓플레이스 애플리케이션은 Microsoft API를 호출하기 위해 CSP 파트너 권한을 가장해야 합니다.
CSP 파트너 권한은 높고 모든 파트너 고객에게 액세스를 제공하므로 보안 악용 벡터를 견딜 수 있도록 이러한 애플리케이션을 설계해야 하는 방법을 이해하는 것이 중요합니다. 이러한 중요한 애플리케이션에 대한 보안 공격으로 인해 고객 데이터가 손상될 수 있습니다. 따라서 최소 권한 원칙을 따르도록 권한 부여 및 파트너 권한 가장을 설계해야 합니다. 다음 원칙과 모범 사례는 마켓플레이스 애플리케이션이 지속 가능하고 타협을 견딜 수 있도록 합니다.
자격 증명 가장에 대한 보안 원칙
Marketplace 애플리케이션은 CSP 파트너의 자격 증명을 저장해서는 안 됩니다.
CSP 파트너 사용자 암호는 공유해서는 안 됩니다.
CSP 파트너 테넌트 웹앱 키는 제어판 공급업체와 공유해서는 안 됩니다.
마켓플레이스 애플리케이션은 CSP 파트너 ID를 가장하는 호출을 할 때 파트너 자격 증명만 사용하는 것이 아니라 파트너 정보와 함께 애플리케이션 ID를 제공해야 합니다.
마켓플레이스 애플리케이션에 대한 액세스는 최소 권한의 원칙을 기반으로 하며 사용 권한에 명확하게 명시되어 있어야 합니다.
마켓플레이스 애플리케이션에 대한 권한 부여는 여러 자격 증명으로 피벗되어야 합니다.
액세스 권한을 얻으려면 애플리케이션 자격 증명과 파트너 자격 증명을 함께 제공해야 합니다.
Important
단일 타협점이 없는 것이 중요합니다.
액세스는 특정 대상 그룹 또는 API로 제한해야 합니다.
액세스는 가장의 목적을 식별해야 합니다.
마켓플레이스 애플리케이션에 대한 액세스 권한은 시간 제한이어야 합니다. CSP 파트너는 마켓플레이스 애플리케이션에 대한 액세스를 갱신하거나 취소할 수 있어야 합니다.
마켓플레이스 애플리케이션 자격 증명의 손상 문제를 처리하려면 빠른 제어 또는 수정 프로세스가 있어야 합니다.
모든 사용자 계정은 2FA(2단계 인증)를 사용해야 합니다.
애플리케이션 모델은 더 나은 보안 모델에 대한 조건부 액세스와 같은 추가 보안 프로비저닝에 친숙해야 합니다.
참고 항목
앱 ID + 사용자 인증을 사용하고 파트너 센터 API와 직접 통합하는 CSP 간접 공급자 및 CSP 직접 파트너는 위의 원칙을 따라 자체 마켓플레이스 애플리케이션을 보호해야 합니다.
애플리케이션 ID 및 개념
다중 테넌트 애플리케이션
다중 테넌트 애플리케이션은 일반적으로 SaaS(Software as a Service) 애플리케이션입니다. 애플리케이션 유형을 Azure 대시보드에서 다중 테넌트로 구성하여 모든 Microsoft Entra 테넌트의 로그인을 허용하도록 애플리케이션을 구성할 수 있습니다. Microsoft Entra 테넌트의 사용자는 애플리케이션에서 자신의 계정을 사용하는 데 동의한 후 애플리케이션에 로그인할 수 있습니다.
다중 테넌트 애플리케이션을 만드는 방법에 대한 자세한 내용은 다중 테넌트 애플리케이션 패턴을 사용하여 Microsoft Entra 사용자 로그인을 참조 하세요.
동의 프레임워크
사용자가 Microsoft Entra ID의 애플리케이션에 로그인하려면 애플리케이션이 사용자의 테넌트에 표시되어야 하며, 이를 통해 조직은 테넌트의 사용자가 애플리케이션에 로그인할 때 고유한 정책을 적용하는 등의 작업을 수행할 수 있습니다. 단일 테넌트 애플리케이션의 경우 이 등록은 간단합니다. Azure 대시보드에서 애플리케이션을 등록할 때 발생하는 등록입니다.
다중 테넌트 애플리케이션의 경우 애플리케이션의 초기 등록은 개발자가 사용하는 Microsoft Entra 테넌트에 있습니다. 다른 테넌트의 사용자가 처음으로 애플리케이션에 로그인하면 Microsoft Entra ID는 애플리케이션에서 요청하는 사용 권한에 동의하는지 묻습니다. 동의하면 서비스 주체라는 애플리케이션의 표현이 사용자의 테넌트에 만들어지고 로그인 프로세스를 계속할 수 있습니다. 애플리케이션에 대한 사용자의 동의를 기록하는 위임도 디렉터리에 생성됩니다.
참고 항목
앱 ID + 사용자 인증을 사용하고 파트너 센터 API와 직접 통합하는 CSP 간접 공급자 및 CSP 직접 파트너는 동일한 동의 프레임워크를 사용하여 마켓플레이스 애플리케이션에 동의해야 합니다.
동의 환경은 애플리케이션에서 요청한 권한의 영향을 받습니다. Microsoft Entra ID는 앱 전용 및 위임된 두 가지 종류의 권한을 지원합니다.
- 앱 전용 권한 은 애플리케이션의 ID에 직접 부여됩니다. 예를 들어 애플리케이션에 로그인한 사용자에 관계없이 테넌트에서 사용자 목록을 읽을 수 있는 권한을 애플리케이션에 부여할 수 있습니다.
- 위임된 권한 은 애플리케이션에 사용자가 수행할 수 있는 작업의 하위 집합에 대해 로그인한 사용자 역할을 할 수 있는 기능을 부여합니다. 예를 들어 애플리케이션에 로그인한 사용자의 일정을 읽을 수 있는 위임된 권한을 부여할 수 있습니다.
일부 권한은 일반 사용자가 동의하지만 다른 권한은 테넌트 관리자의 동의가 필요합니다. Microsoft Entra 동의 프레임워크에 대한 자세한 내용은 Microsoft Entra 애플리케이션 동의 환경 이해를 참조 하세요.
OAuth(다중 테넌트 애플리케이션 열기 권한 부여) 토큰 흐름
OAuth(다중 테넌트 애플리케이션 열기 권한 부여) 흐름에서 애플리케이션은 CPV 또는 CSP 파트너의 테넌트에서 다중 테넌트 애플리케이션으로 표시됩니다.
Microsoft API(파트너 센터 API, Graph API 등)에 액세스하려면 CSP 파트너가 애플리케이션에 로그인하고 애플리케이션이 대신 API를 호출할 수 있도록 허용하는 데 동의해야 합니다.
참고 항목
앱 ID 및 사용자 인증을 사용하고 파트너 센터 API와 직접 통합하는 CSP 간접 공급자 및 CSP 직접 파트너는 동일한 동의 프레임워크를 사용하려면 마켓플레이스 애플리케이션에 동의해야 합니다.
애플리케이션은 동의 및 OAuth 부여를 통해 Graph 및 파트너 센터 API와 같은 파트너의 리소스에 액세스할 수 있습니다.
다중 테넌트 애플리케이션 만들기
다중 테넌트 애플리케이션은 다음 요구 사항을 준수해야 합니다.
- 애플리케이션 ID 및 비밀 키가 있는 웹앱이어야 합니다.
- 암시적 인증 모드가 꺼져 있어야 합니다.
또한 다음 모범 사례를 준수하는 것이 좋습니다.
- 비밀 키에 인증서를 사용합니다.
- 조건부 액세스를 사용하여 IP 범위 제한을 적용합니다. 이렇게 하려면 Microsoft Entra 테넌트에서 더 많은 기능을 사용하도록 설정해야 할 수 있습니다.
- 애플리케이션에 대한 액세스 토큰 수명 정책을 적용합니다.
토큰을 획득할 때 앱 ID 및 비밀 키가 표시되어야 합니다. 비밀 키는 인증서일 수 있습니다.
Azure Resource Manager API를 포함하여 여러 API를 호출하도록 애플리케이션을 구성할 수 있습니다. 다음은 파트너 센터 API에 필요한 최소 사용 권한 집합입니다.
- Microsoft Entra ID 위임 권한: 로그인한 사용자로 디렉터리에 액세스
- 파트너 센터 API 위임 권한: 액세스
애플리케이션이 파트너 동의를 캡처합니다.
다중 테넌트 애플리케이션은 파트너로부터 동의를 얻고 동의 및 부여를 사용하여 파트너 센터 API에 대한 추가 호출을 수행해야 합니다. 동의는 OAuth 인증 코드 흐름을 통해 획득됩니다.
동의를 얻기 위해 CPV 또는 CSP 파트너는 Microsoft Entra ID의 인증 코드 부여를 수락할 수 있는 온보딩 웹 사이트를 빌드해야 합니다.
자세한 내용은 OAuth 2.0 코드 부여 흐름을 사용하여 Azure Active 및 Directory 웹 애플리케이션에 대한 액세스 권한 부여를 참조하세요.
다음은 다중 테넌트 애플리케이션이 파트너 센터 API를 호출하기 위한 재사용 가능한 토큰과 함께 CSP 파트너 동의를 캡처하는 단계입니다.
다음 단계를 사용하여 파트너 동의를 획득합니다.
- 다중 테넌트 애플리케이션에 대한 동의를 수락하기 위해 파트너가 클릭할 수 있는 동의 링크를 호스트할 수 있는 파트너 온보딩 웹 애플리케이션을 빌드합니다.
- CSP 파트너가 동의 링크를 클릭합니다. 예를 들어
https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<marketplaceappid>&response_ty
- Microsoft Entra 로그인 페이지에서는 사용자를 대신하여 애플리케이션에 부여될 사용 권한을 설명합니다. CSP 파트너는 관리 에이전트 또는 판매 에이전트 자격 증명을 사용하여 로그인하고 동의를 승인하도록 결정할 수 있습니다. 애플리케이션에는 로그인하는 데 사용되는 사용자 역할에 따라 권한이 부여됩니다.
- 동의가 부여되면 Microsoft Entra ID는 CPV 다중 테넌트 애플리케이션의 서비스 주체를 CSP 파트너의 테넌트에 만듭니다. 애플리케이션에는 사용자를 대신하여 작동할 수 있는 OAuth 권한이 부여됩니다. 이러한 부여를 통해 다중 테넌트 애플리케이션은 파트너를 대신하여 파트너 센터 API를 호출할 수 있습니다. 이 시점에서 Microsoft Entra 로그인 페이지는 파트너 온보딩 웹 애플리케이션으로 리디렉션됩니다. 웹 애플리케이션은 Microsoft Entra ID에서 권한 부여 코드를 받습니다. 파트너 온보딩 웹 애플리케이션은 애플리케이션 ID 및 비밀 키와 함께 권한 부여 코드를 사용하여 Microsoft Entra ID 토큰 API 를 호출하여 새로 고침 토큰을 가져와야 합니다.
- 새로 고침 토큰을 안전하게 저장합니다. 새로 고침 토큰은 파트너를 대신하여 파트너 센터 API에 대한 액세스를 얻는 데 사용되는 파트너 자격 증명의 일부입니다. 새로 고침 토큰을 획득하면 암호화하고 Azure Key Vault와 같은 비밀 키 저장소에 저장합니다.
토큰 요청 호출 흐름
CPV 또는 CSP 파트너의 애플리케이션은 파트너 센터 API를 호출하기 전에 액세스 토큰을 획득해야 합니다. 이러한 API는 리소스 URL https://api.partnercenter.microsoft.com
에 표시됩니다.
CPV 애플리케이션은 제품 또는 페더레이션 로그인을 기반으로 파트너 센터 API를 호출하기 위해 가장해야 하는 파트너 계정을 식별해야 합니다. 애플리케이션은 비밀 키 저장소에서 해당 파트너 테넌트에 대한 암호화된 새로 고침 토큰을 검색합니다. 새로 고침 토큰은 사용하기 전에 암호 해독해야 합니다.
동의를 제공하는 테넌트가 하나뿐인 CSP 파트너의 경우 파트너 계정은 CSP 파트너의 테넌트입니다.
새로 고침 토큰은 다중 대상 토큰입니다. 즉, 새로 고침 토큰을 사용하여 부여된 동의에 따라 여러 대상 그룹에 대한 토큰을 가져올 수 있습니다. 예를 들어 파트너 센터 API 및 Microsoft Graph API에 대한 파트너 동의가 지정된 경우 새로 고침 토큰을 사용하여 두 API에 대한 액세스 토큰을 요청할 수 있습니다. 액세스 토큰에는 "대신" 부여가 있으며 마켓플레이스 애플리케이션이 이러한 API를 호출하는 동안 동의한 파트너를 가장할 수 있습니다.
액세스 토큰은 한 번에 한 대상에 대해 획득할 수 있습니다. 애플리케이션이 여러 API에 액세스해야 하는 경우 대상 대상 그룹에 대해 여러 액세스 토큰을 요청해야 합니다. 액세스 토큰을 요청하려면 애플리케이션에서 Microsoft Entra ID 토큰 API를 호출해야 합니다. 또는 Microsoft Entra SDK의 AuthenticationContext.AcquireTokenAsync 를 사용하고 다음 정보를 전달할 수도 있습니다.
- 호출할 애플리케이션의 엔드포인트 URL인 리소스 URL입니다. 예를 들어 Microsoft 파트너 센터 API의 리소스 URL은 다음과 같습니다
https://api.partnercenter.microsoft.com
. - 웹앱의 애플리케이션 ID 및 비밀 키로 구성된 애플리케이션 자격 증명입니다.
- 새로 고침 토큰
결과 액세스 토큰을 사용하면 애플리케이션이 리소스에 언급된 API를 호출할 수 있습니다. 애플리케이션은 동의 요청의 일부로 권한이 부여되지 않은 API에 대한 액세스 토큰을 요청할 수 없습니다. UPN(UserPrincipalName) 특성 값은 사용자 계정에 대한 Microsoft Entra 사용자 이름입니다.
추가 고려 사항
조건부 액세스
클라우드 리소스 관리에 있어 클라우드 보안의 주요 측면은 ID 및 액세스입니다. 모바일 우선 클라우드 우선 환경에서 사용자는 어디서나 다양한 디바이스와 앱을 사용하여 조직의 리소스에 액세스할 수 있습니다. 리소스에 액세스할 수 있는 사용자에만 집중하는 것만으로는 더 이상 충분하지 않습니다. 보안과 생산성 간의 균형을 습득하려면 리소스에 액세스하는 방법도 고려해야 합니다. Microsoft Entra 조건부 액세스를 사용하여 이 요구 사항을 해결할 수 있습니다. 조건부 액세스를 사용하면 조건에 따라 클라우드 앱에 액세스하기 위한 자동화된 액세스 제어 결정을 구현할 수 있습니다.
자세한 내용은 Microsoft Entra ID의 조건부 액세스란?
IP 범위 기반 제한 사항
특정 범위의 IP 주소로만 발급되도록 토큰을 제한할 수 있습니다. 이 기능은 공격 노출 영역을 특정 네트워크로만 제한하는 데 도움이 됩니다.
다단계 인증
다단계 인증을 적용하면 자격 증명 확인을 두 개 이상의 양식으로 적용하여 자격 증명 손상 상황을 제한할 수 있습니다. 이 기능을 사용하면 Microsoft Entra ID가 토큰을 발급하기 전에 모바일 또는 전자 메일과 같은 보안 보조 채널을 통해 호출자의 ID의 유효성을 검사할 수 있습니다.
자세한 내용은 작동 방법: Azure Multi를 참조하세요.