Dela via


Skapa MCA-prenumerationer programmatiskt mellan Microsoft Entra-klienter

Den här artikeln hjälper dig att programmatiskt skapa en mca-prenumeration (Microsoft-kundavtal) mellan Microsoft Entra-klienter. I vissa situationer kan du behöva skapa MCA-prenumerationer för Microsoft Entra-klienter, men koppla dem till ett enda faktureringskonto. Exempel på sådana situationer är SaaS-leverantörer som vill skilja värdbaserade kundtjänster från interna IT-tjänster eller interna miljöer som har strikta krav på regelefterlevnad, till exempel PcI (Payment Card Industry).

Processen för att skapa en MCA-prenumeration mellan klienter är i själva verket en process i två faser. Det kräver att åtgärder vidtas i Microsoft Entra-klientorganisationer för källa och mål. Den här artikeln använder följande terminologi:

  • Microsoft Entra-käll-ID (source.onmicrosoft.com). Den representerar källklientorganisationen där MCA-faktureringskontot finns.
  • Microsoft Entra-målmoln-ID (destination.onmicrosoft.com). Den representerar målklientorganisationen där de nya MCA-prenumerationerna skapas.

Du kan inte skapa supportplaner programmatiskt. Du kan köpa ett nytt supportprogram eller uppgradera ett supportprogram i Azure-portalen. Gå till Hjälp + support. Längst upp på sidan väljer du Välj rätt supportplan.

Kommentar

Det finns två metoder för att programmatiskt skapa MCA-prenumerationer i Microsoft Entra-klienter. Metoden som beskrivs i den här artikeln omfattar en process i två faser som ger källklientorganisationen styrning över de prenumerationer som skapats i målklientorganisationer. Den här metoden kan vara att föredra om du behöver bättre kontroll över att skapa prenumerationer i målklientorganisationer. Den andra metoden för att använda associerade klienter är en förenklad version som minimerar hanteringskostnaderna och effektiviserar processen för att skapa prenumerationer genom att överföra behörigheter för att skapa MCA-prenumerationer helt till målklientorganisationen.

Förutsättningar

Du måste redan ha skapat följande klienter:

Programuppsättning

Använd informationen i följande avsnitt för att konfigurera de program som behövs i käll- och målklientorganisationer.

Registrera ett program i källklientorganisationen

För att programmatiskt skapa en MCA-prenumeration måste ett Microsoft Entra-program registreras och beviljas lämplig behörighet för rollbaserad åtkomstkontroll i Azure (RBAC). I det här steget kontrollerar du att du är inloggad på källklientorganisationen (source.onmicrosoft.com) med ett konto som har behörighet att registrera Microsoft Entra-program.

Följ stegen i Snabbstart: Registrera ett program med Microsofts identitetsplattform.

I den här processen behöver du bara följa avsnitten Registrera ett program och Lägg till autentiseringsuppgifter .

Spara följande information för att testa och konfigurera din miljö:

  • Katalog-ID (klientorganisation)
  • App-ID (klient-ID)
  • Objekt-ID
  • Apphemlighetsvärde som genererades. Värdet visas bara när det skapas.

Skapa en tilldelning av faktureringsrollen för programmet i källklientorganisationen

Om du vill fastställa lämplig omfångs- och faktureringsroll för programmet läser du informationen i Förstå Microsoft-kundavtal administrativa roller i Azure.

När du har fastställt omfånget och rollen använder du informationen i Hantera faktureringsroller i Azure Portal för att skapa rolltilldelningen för programmet. Sök efter programmet med det namn som du använde när du registrerade programmet i föregående avsnitt.

Registrera ett program i målklientorganisationen

Om du vill acceptera MCA-prenumerationen från målklientorganisationen (destination.onmicrosoft.com) måste ett Microsoft Entra-program registreras och läggas till i rollen Faktureringsadministratör Microsoft Entra. I det här steget kontrollerar du att du är inloggad på målklientorganisationen (destination.onmicrosoft.com) med ett konto som har behörighet att registrera Microsoft Entra-program. Den måste också ha behörighet som faktureringsadministratör.

Följ samma steg som tidigare för att registrera ett program i källklientorganisationen. Spara följande information för att testa och konfigurera din miljö:

  • Katalog-ID (klientorganisation)
  • App-ID (klient-ID)
  • Objekt-ID
  • Apphemlighetsvärde som genererades. Värdet visas bara när det skapas.

Lägg till målprogrammet i rollen Faktureringsadministratör Microsoft Entra

Om du vill lägga till målprogrammet som skapades i föregående avsnitt i rollen Faktureringsadministratör Microsoft Entra i målklientorganisationen använder du informationen i Tilldela administratörs- och icke-administratörsroller till användare med Microsoft Entra-ID.

Skapa en prenumeration programmatiskt

Med de program och behörigheter som redan har konfigurerats använder du följande information för att programmatiskt skapa prenumerationer.

Hämta ID:t för målprogrammets tjänsthuvudnamn

När du skapar en MCA-prenumeration i källklientorganisationen måste du ange tjänstens huvudnamn eller SPN för programmet i målklientorganisationen som ägare. Använd någon av följande metoder för att hämta ID:t. I båda metoderna är värdet som ska användas för det tomma GUID:t program-ID :t (klient) för målklientprogrammet som skapades tidigare.

Azure CLI

Logga in på Azure CLI och använd kommandot az ad sp show :

az ad sp show --id aaaaaaaa-bbbb-cccc-1111-222222222222 --query 'id'

Azure PowerShell

Logga in på Azure PowerShell och använd cmdleten Get-AzADServicePrincipal :

Get-AzADServicePrincipal -ApplicationId 00001111-aaaa-2222-bbbb-3333cccc4444 | Select-Object -Property Id

Spara värdet som Id returneras av kommandot.

Skapa prenumerationen

Använd följande information för att skapa en prenumeration i källklientorganisationen.

Hämta en åtkomsttoken för källprogram

{{placeholders}} Ersätt med det faktiska klient-ID:t, program-ID:t (klient) och de apphemlighetsvärden som du sparade när du skapade källklientprogrammet tidigare.

Anropa begäran och spara access_token värdet från svaret för användning i nästa steg.

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

Hämta avsnitts-ID:na för faktureringskonto, profil och faktura

Använd informationen i Hitta faktureringskonton som du har åtkomst till och Hitta faktureringsprofiler och fakturaavsnitt för att skapa prenumerationsavsnitt för att hämta faktureringskontot , profilen och fakturaavsnitts-ID:n.

Kommentar

Vi rekommenderar att du använder REST-metoden med den åtkomsttoken som erhölls tidigare för att verifiera att tilldelningen av programfaktureringsrollen har skapats i avsnittet Programinstallation .

Skapa ett prenumerationsalias

Med avsnitts-ID:na för faktureringskonto, profil och faktura har du all information som behövs för att skapa prenumerationen:

  • {{guid}}: Kan vara ett giltigt GUID.
  • {{access_token}}: Åtkomsttoken för källklientprogrammet som hämtades tidigare.
  • {{billing_account}}: ID för det faktureringskonto som erhölls tidigare.
  • {{billing_profile}}: ID för faktureringsprofilen som erhölls tidigare.
  • {{invoice_section}}: ID för fakturaavsnittet som erhölls tidigare.
  • {{destination_tenant_id}}: ID för målklientorganisationen enligt beskrivningen när du tidigare skapade målklientprogrammet.
  • {{destination_service_principal_id}}: ID för målklienttjänstens huvudnamn som du fick från avsnittet Hämta ID för målprogrammets tjänsthuvudnamn tidigare.

Skicka begäran och notera värdet för Location huvudet i svaret.

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_id}}"
    }
  }
}

Godkänn prenumerationsägarskap

Den sista fasen för att slutföra processen är att acceptera prenumerationsägarskapet.

Hämta en åtkomsttoken för målprogram

Ersätt {{placeholders}} med det faktiska klient-ID:t, program-ID:t (klient) och de apphemlighetsvärden som du sparade när du skapade målklientprogrammet tidigare.

Anropa begäran och spara access_token värdet från svaret för nästa steg.

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

Acceptera ägarskap

Använd följande information för att acceptera ägarskapet för prenumerationen i målklientorganisationen:

  • {{subscription_id}}: ID för prenumerationen som skapades i avsnittet Skapa prenumerationsalias. Det finns i platsrubriken som du antecknade.
  • {{access_token}}: Åtkomsttoken som skapades i föregående steg.
  • {{subscription_display_name}}: Visningsnamn för prenumerationen i din Azure-miljö.
POST https://management.azure.com/providers/Microsoft.Subscription/subscriptions/{{subscription_id}}/acceptOwnership?api-version=2021-10-01
Authorization: Bearer {{access_token}}
Content-Type: application/json

{
  "properties": {
    "displayName": "{{subscription_display_name}}",
    "managementGroupId": null
  }
}

Nästa steg