연결된 Microsoft Entra 테넌트에서 프로그래밍 방식으로 MCA 구독 만들기
이 문서는 연결된 청구 테넌트에서 MCA(Microsoft 고객 계약) 구독을 프로그래밍 방식으로 만드는 데 도움이 됩니다. 경우에 따라 Microsoft Entra 테넌트에서 MCA 구독을 만들어야 하지만 단일 청구 계정에 연결해야 할 수도 있습니다. 이러한 상황의 예는 다음과 같습니다.
- 내부 IT 서비스에서 호스트된 고객 서비스를 분리하려는 SaaS 공급자
- 많은 포트폴리오 회사가 있는 지주 또는 벤처 캐피탈 회사
- PCI(결제 카드 산업)와 같은 엄격한 규정 준수 요구 사항이 있는 내부 환경
연결된 청구 테넌트에서 MCA 구독을 만드는 프로세스에서는 원본 및 대상 Microsoft Entra 테넌트에서 작업을 수행해야 합니다. 이 문서에서는 다음 용어를 사용합니다.
- 원본 Microsoft Entra 테넌트(source.onmicrosoft.com). MCA 청구 계정이 있는 원본 테넌트를 나타냅니다.
- 대상 클라우드 Microsoft Entra 테넌트(destination.onmicrosoft.com). 새 MCA 구독이 만들어지는 대상 테넌트를 나타냅니다.
프로그래밍 방식으로 지원 계획을 만들 수는 없습니다. Azure Portal에서 새 지원 계획을 구매하거나 업그레이드할 수 있습니다. 도움말 + 지원으로 이동합니다. 페이지 맨 위에서 올바른 지원 계획 선택을 선택합니다.
참고 항목
Microsoft Entra 테넌트에서 MCA 구독을 프로그래밍 방식으로 만들 수 있는 두 가지 방법이 있습니다. 이 문서에 설명된 메서드는 관리 오버헤드를 최소화하고 MCA 구독을 완전히 대상 테넌트에 만들 수 있는 권한을 전송하여 구독 만들기 프로세스를 간소화하는 간소화된 버전입니다. 다른 방법은 대상 테넌트 에서 만든 구독에 대한 원본 테넌트 거버넌스를 제공하는 2단계 프로세스를 포함합니다. 대상 테넌트에서 구독을 만드는 방법을 보다 엄격하게 제어해야 하는 경우 이 방법을 사용하는 것이 좋습니다.
필수 조건
연결된 청구 테넌트에서 MCA 구독을 프로그래밍 방식으로 만들려면 다음 환경이 필요합니다.
- 활성 Microsoft 고객 계약 청구 계정이 있는 원본 Microsoft Entra 테넌트입니다. 활성 MCA가 없는 경우 MCA를 만들 수 있습니다. 자세한 내용은 Azure - 가입을 참조하세요.
- MCA가 속한 테넌트와 별도의 대상 Microsoft Entra 테넌트입니다. 새로운 Microsoft Entra 테넌트를 만들려면 Microsoft Entra 테넌트 설정을 참조하세요.
- 대상 Microsoft Entra 테넌트를 원본 Microsoft Entra 테넌트 내에서 연결된 청구 테넌 트 관련 청구 테 넌트로 추가하고 대상 Microsoft Entra 테넌트에서 사용자에게 청구 역할을 할당합니다.
애플리케이션 설정
다음 섹션의 정보를 사용하여 대상 테넌트에서 필요한 애플리케이션을 설정하고 구성합니다.
대상 테넌트에서 애플리케이션 등록
MCA 구독을 프로그래밍 방식으로 만들려면 Microsoft Entra 애플리케이션을 등록하고 적절한 AZURE RBAC(역할 기반 액세스 제어) 권한을 부여해야 합니다. 이 단계에서는 Microsoft Entra 애플리케이션을 등록할 수 있는 권한이 있는 계정으로 대상 테넌트(destination.onmicrosoft.com)에 로그인했는지 확인합니다. 또한 필수 구성 요소의 일부로 원본 테넌트(source.onmicrosoft.com)에 청구 역할이 할당되었는지 확인합니다.
빠른 시작: Microsoft ID 플랫폼을 사용하여 애플리케이션 등록의 단계를 수행합니다.
이 프로세스를 위해 애플리케이션 등록 및 자격 증명 추가 섹션을 따르면 됩니다.
다음 정보를 저장하여 환경을 테스트하고 구성합니다.
- 디렉터리(테넌트) ID
- 애플리케이션(클라이언트) ID
- 개체 ID입니다.
- 생성된 앱 비밀 값. 값은 생성 시에만 표시됩니다.
대상 테넌트에서 애플리케이션에 대한 청구 역할 할당 만들기
애플리케이션에 대한 적절한 범위 및 청구 역할을 확인하려면 Azure의 Microsoft 고객 계약 관리 역할 이해에서 정보를 검토합니다.
소유자 액세스 권한이 있는 사용자는 연결된 테넌트에서 Azure Portal에 로그인하여 애플리케이션에 역할을 할당할 수 있습니다. 소유자 액세스에는 다음이 포함됩니다.
- 청구 계정 소유자
- 청구 프로필 소유자
- 청구서 섹션 소유자
범위 및 역할을 결정한 후 Azure Portal에서 청구 역할 관리의 정보를 사용하여 애플리케이션에 대한 역할 할당을 만듭니다. 이전 섹션에서 애플리케이션을 등록할 때 사용한 이름을 사용하여 애플리케이션을 검색합니다.
프로그래밍 방식으로 구독 만들기
애플리케이션 및 권한이 이미 설정된 상태에서 다음 정보를 사용하여 프로그래밍 방식으로 구독을 만듭니다.
구독 만들기
다음 정보를 사용하여 대상 테넌트에서 구독을 만듭니다.
대상 애플리케이션 액세스 토큰 가져오기
{{placeholders}}
이전에 대상 테넌트 애플리케이션을 만들 때 저장한 실제 테넌트 ID, 애플리케이션(클라이언트) ID 및 앱 비밀 값으로 바꿉니다.
요청을 호출하고 다음 단계에서 사용할 응답의 access_token
값을 저장합니다.
POST https://login.microsoftonline.com/{{tenant_id}}/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id={{client_id}}&client_secret={{app_secret}}&resource=https%3A%2F%2Fmanagement.azure.com%2F
청구 계정, 프로필 및 청구서 섹션 ID 가져오기
액세스 권한이 있는 청구 계정 찾기 및 구독을 만들 청구 프로필 및 청구서 섹션 찾기 섹션의 정보를 사용하여 청구 계정, 프로필 및 청구서 섹션 ID를 가져옵니다.
참고 항목
이전에 가져온 액세스 토큰과 함께 REST 메서드를 사용하여 애플리케이션 설정 섹션에서 애플리케이션 청구 역할 할당이 성공적으로 만들어졌는지 확인하는 것이 좋습니다.
구독 별칭 만들기
청구 계정, 프로필 및 청구서 섹션 ID를 사용하면 구독을 만드는 데 필요한 모든 정보가 있는 것입니다.
-
{{guid}}
: 유효한 GUID일 수 있습니다. -
{{access_token}}
: 이전에 가져온 대상 테넌트 애플리케이션의 액세스 토큰입니다. -
{{billing_account}}
: 이전에 가져온 청구 계정의 ID입니다. -
{{billing_profile}}
: 이전에 가져온 청구 프로필의 ID입니다. -
{{invoice_section}}
: 이전에 가져온 청구서 섹션의 ID입니다. -
{{destination_tenant_id}}
: 이전에 대상 테넌트 애플리케이션을 만들 때 기록해 둔 대상 테넌트의 ID입니다. -
{{destination_service_principal_object_id}}
: 이전에 대상 애플리케이션 액세스 토큰 가져오기 섹션에서 얻은 대상 테넌트 서비스 주체의 ID입니다.
PUT https://management.azure.com/providers/Microsoft.Subscription/aliases/{{guid}}?api-version=2021-10-01
Authorization: Bearer {{access_token}}
Content-Type: application/json
{
"properties": {
"displayName": "{{subscription_name}}",
"workload": "Production",
"billingScope": "/billingAccounts/{{billing_account}}/billingProfiles/{{billing_profile}}/invoiceSections/{{invoice_section}}",
"subscriptionId": null,
"additionalProperties": {
"managementGroupId": null,
"subscriptionTenantId": "{{destination_tenant_id}}",
"subscriptionOwnerId": "{{destination_service_principal_object_id}}"
}
}
}
다음 단계
- 구독을 만들었으므로 다른 사용자 및 서비스 주체에게 해당 기능을 부여할 수 있습니다. 자세한 내용은 Azure 엔터프라이즈 구독 만들기에 대한 액세스 권한 부여(미리 보기)를 참조하세요.
- 관리 그룹을 사용하여 여러 구독을 관리하는 방법에 대한 자세한 내용은 Azure 관리 그룹으로 리소스 구성을 참조하세요.
- 구독의 관리 그룹을 변경하려면 구독 이동을 참조하세요.