Delen via


Enterprise Overeenkomst rollen toewijzen aan service-principals

U kunt uw Enterprise Overeenkomst -inschrijving (EA) beheren in Azure Portal. U kunt verschillende rollen maken om uw organisatie te beheren, kosten te bekijken en abonnementen te maken. Dit artikel helpt u bij het automatiseren van sommige taken met behulp van Azure PowerShell en REST API's met service-principals van Microsoft Entra ID.

Notitie

Als u meerdere EA-factureringsaccounts in uw organisatie hebt, moet u de EA-rollen afzonderlijk verlenen aan Microsoft Entra ID-service-principals in elke EA-factureringsrekening.

Voordat u begint, moet u ervoor zorgen dat u bekend bent met de volgende artikelen:

U hebt een manier nodig om REST API's aan te roepen. Enkele populaire manieren om een query uit te voeren op de API zijn:

Uw service-principal maken en verifiëren

Als u EA-acties wilt automatiseren met behulp van een service-principal, moet u een Microsoft Entra-app-identiteit maken, die vervolgens op een geautomatiseerde manier kan worden geverifieerd.

Volg de stappen in deze artikelen om uw service-principal te maken en te verifiëren.

Hier volgt een voorbeeld van de registratiepagina van de toepassing.

Schermopname van Een toepassing registreren.

Uw service-principal en tenant-id's zoeken

U hebt de object-id van de service-principal en de tenant-id nodig. U hebt deze informatie nodig voor machtigingstoewijzingsbewerkingen verderop in dit artikel. Alle toepassingen worden geregistreerd in Microsoft Entra ID in de tenant. Er worden twee typen objecten gemaakt wanneer de app-registratie is voltooid:

  • Toepassingsobject: de toepassings-id is wat u ziet onder Bedrijfstoepassingen. Gebruik de id niet om EA-rollen te verlenen.
  • Service-principal-object: het object Service-principal is wat u ziet in het venster Enterprise Registration in Microsoft Entra ID. De object-id wordt gebruikt om EA-rollen toe te kennen aan de service-principal.
  1. Open Microsoft Entra-id en selecteer vervolgens Bedrijfstoepassingen.

  2. Zoek uw app in de lijst.

    Schermopname van een voorbeeld van een bedrijfstoepassing.

  3. Selecteer de app om de toepassings-id en object-id te vinden:

    Schermopname van een toepassings-id en object-id voor een bedrijfstoepassing.

  4. Ga naar de overzichtspagina van Microsoft Entra-id om de tenant-id te vinden.

    Schermopname van de tenant-id.

Notitie

De waarde van uw Microsoft Entra-tenant-id ziet eruit als een GUID met de volgende indeling: aaaabbbb-0000-cccc-1111-dddd2222eeee

Machtigingen die kunnen worden toegewezen aan de service-principal

Verderop in dit artikel geeft u toestemming aan de Microsoft Entra-app om te handelen met behulp van een EA-rol. U kunt alleen de volgende rollen toewijzen aan de service-principal en u hebt de id van de roldefinitie nodig, precies zoals wordt weergegeven.

Role Toegestane acties Roldefinitie-id
EnrollmentReader Inschrijvingslezers kunnen gegevens bekijken in de bereiken voor inschrijving, afdeling en account. De gegevens bevatten kosten voor alle abonnementen onder de bereiken, inclusief tenants. Kan het saldo van de Azure-vooruitbetaling (voorheen financiële toezegging genoemd) bekijken dat is gekoppeld aan de inschrijving. 24f8edb6-1668-4659-b5e2-40bb5f3a7d7e
EA-inkoper Reserveringsorders aanschaffen en reserveringstransacties weergeven. Het heeft alle machtigingen van EnrollmentReader, die alle machtigingen van DepartmentReader hebben. Het kan het gebruik en de kosten voor alle accounts en abonnementen bekijken. Kan het saldo van de Azure-vooruitbetaling (voorheen financiële toezegging genoemd) bekijken dat is gekoppeld aan de inschrijving. da6647fb-7651-49ee-be91-c43c4877f0c4
DepartmentReader Download de gebruiksgegevens voor de afdeling die ze beheren. Kan het gebruik en de kosten bekijken die aan hun afdeling zijn gekoppeld. db609904-a47f-4794-9be8-9bd86fbffd8a
SubscriptionCreator Maak nieuwe abonnementen in het opgegeven bereik van het account. a0bcee42-bf30-4d1b-926a-48d21664ef71
  • Een EnrollmentReader-rol kan alleen worden toegewezen aan een service-principal door een gebruiker met een schrijfrol voor inschrijvingen. De rol EnrollmentReader die is toegewezen aan een service-principal, wordt niet weergegeven in Azure Portal. Het wordt gemaakt met programmatische middelen en is alleen voor programmatisch gebruik.
  • Een DepartmentReader-rol kan alleen worden toegewezen aan een service-principal door een gebruiker die een rol inschrijvingsschrijver of afdelingsschrijver heeft.
  • Een SubscriptionCreator-rol kan alleen worden toegewezen aan een service-principal door een gebruiker die de eigenaar is van het inschrijvingsaccount (EA-beheerder). De rol wordt niet weergegeven in Azure Portal. Het wordt gemaakt met programmatische middelen en is alleen voor programmatisch gebruik.
  • De rol EA-koper wordt niet weergegeven in Azure Portal. Het wordt gemaakt met programmatische middelen en is alleen voor programmatisch gebruik.

Wanneer u een EA-rol aan een service-principal verleent, moet u de billingRoleAssignmentName vereiste eigenschap gebruiken. De parameter is een unieke GUID die u moet opgeven. U kunt een GUID genereren met behulp van de PowerShell-opdracht New-Guid . U kunt ook de website Online GUID/UUID Generator gebruiken om een unieke GUID te genereren.

Een service-principal kan slechts één rol hebben.

Rolmachtiging voor inschrijvingsaccount toewijzen aan de service-principal

  1. Lees de roltoewijzingen - Rest API-artikel plaatsen . Terwijl u het artikel leest, selecteert u Proberen om aan de slag te gaan met behulp van de service-principal.

    Schermopname van de optie Uitproberen in het artikel Put.

  2. Gebruik uw accountreferenties om u aan te melden bij de tenant met de inschrijvingstoegang die u wilt toewijzen.

  3. Geef de volgende parameters op als onderdeel van de API-aanvraag.

    • billingAccountName: Deze parameter is de factureringsrekening-id. U vindt deze in Azure Portal op de overzichtspagina kostenbeheer en facturering .

      Schermopname van de factureringsrekening-id.

    • billingRoleAssignmentName: Deze parameter is een unieke GUID die u moet opgeven. U kunt een GUID genereren met behulp van de PowerShell-opdracht New-Guid . U kunt ook de website Online GUID/UUID Generator gebruiken om een unieke GUID te genereren.

    • api-version: Gebruik de preview-versie 2019-10-01 . Gebruik de hoofdtekst van de voorbeeldaanvraag bij Roltoewijzingen - Put - Voorbeelden.

      De hoofdtekst van de aanvraag bevat JSON-code met drie parameters die u moet gebruiken.

      Parameter Waar vind ik het?
      properties.principalId Dit is de waarde van object-id. Zie Uw service-principal en tenant-id's zoeken.
      properties.principalTenantId Zie Uw service-principal en tenant-id's zoeken.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountName}/billingRoleDefinitions/24f8edb6-1668-4659-b5e2-40bb5f3a7d7e

      De naam van het factureringsaccount is dezelfde parameter die u in de API-parameters hebt gebruikt. Dit is de inschrijvings-id die u in Azure Portal ziet.

      U ziet dat 24f8edb6-1668-4659-b5e2-40bb5f3a7d7e dit een definitie-id voor de factureringsrol is voor een EnrollmentReader.

  4. Selecteer Uitvoeren om de opdracht te starten.

    Schermopname van een voorbeeld van een roltoewijzing met voorbeeldgegevens die klaar zijn om te worden uitgevoerd.

    Een 200 OK antwoord laat zien dat de service-principal is toegevoegd.

U kunt nu de service-principal gebruiken om automatisch toegang te krijgen tot EA-API's. De service-principal heeft de rol EnrollmentReader.

Ea-koperrolmachtiging toewijzen aan de service-principal

Voor de rol EA-koper gebruikt u dezelfde stappen voor de inschrijvingslezer. Geef de roleDefinitionId, met behulp van het volgende voorbeeld op:

"/providers/Microsoft.Billing/billingAccounts/1111111/billingRoleDefinitions/ da6647fb-7651-49ee-be91-c43c4877f0c4"

De rol afdelingslezer toewijzen aan de service-principal

  1. Lees de roltoewijzingen van de inschrijvingsafdeling - Rest API-artikel plaatsen . Terwijl u het artikel leest, selecteert u Proberen.

    Schermopname van de optie Uitproberen in het artikel Taaktoewijzingen voor inschrijvingsafdelingen Put.

  2. Gebruik uw accountreferenties om u aan te melden bij de tenant met de inschrijvingstoegang die u wilt toewijzen.

  3. Geef de volgende parameters op als onderdeel van de API-aanvraag.

    • billingAccountName: Deze parameter is de factureringsrekening-id. U vindt deze in Azure Portal op de overzichtspagina kostenbeheer en facturering .

      Schermopname van de factureringsrekening-id.

    • billingRoleAssignmentName: Deze parameter is een unieke GUID die u moet opgeven. U kunt een GUID genereren met behulp van de PowerShell-opdracht New-Guid . U kunt ook de website Online GUID/UUID Generator gebruiken om een unieke GUID te genereren.

    • departmentName: Deze parameter is de afdelings-id. U kunt afdelings-id's bekijken in Azure Portal op de pagina Kostenbeheer en factureringsafdelingen>.

      In dit voorbeeld hebben we de ACE-afdeling gebruikt. De id voor het voorbeeld is 84819.

      Schermopname van een voorbeeld van een afdelings-id.

    • api-version: Gebruik de preview-versie 2019-10-01 . Gebruik het voorbeeld bij roltoewijzingen van de afdeling Inschrijving - Put.

      De hoofdtekst van de aanvraag bevat JSON-code met drie parameters die u moet gebruiken.

      Parameter Waar vind ik het?
      properties.principalId Dit is de waarde van object-id. Zie Uw service-principal en tenant-id's zoeken.
      properties.principalTenantId Zie Uw service-principal en tenant-id's zoeken.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountName}/billingRoleDefinitions/db609904-a47f-4794-9be8-9bd86fbffd8a

      De naam van het factureringsaccount is dezelfde parameter die u in de API-parameters hebt gebruikt. Dit is de inschrijvings-id die u in Azure Portal ziet.

      De definitie-id van db609904-a47f-4794-9be8-9bd86fbffd8a de factureringsrol is voor een afdelingslezer.

  4. Selecteer Uitvoeren om de opdracht te starten.

    Schermopname van een voorbeeld van roltoewijzingen voor de afdeling Inschrijving: put REST Try It met voorbeeldinformatie die klaar is om te worden uitgevoerd.

    Een 200 OK antwoord laat zien dat de service-principal is toegevoegd.

U kunt nu de service-principal gebruiken om automatisch toegang te krijgen tot EA-API's. De service-principal heeft de rol DepartmentReader.

De rol maker van het abonnement toewijzen aan de service-principal

  1. Lees de roltoewijzingen van het inschrijvingsaccount - Artikel plaatsen . Terwijl u deze leest, selecteert u Uitproberen om de rol maker van het abonnement toe te wijzen aan de service-principal.

    Schermopname van de optie Uitproberen in het artikel Taaktoewijzingen inschrijvingsaccount.

  2. Gebruik uw accountreferenties om u aan te melden bij de tenant met de inschrijvingstoegang die u wilt toewijzen.

  3. Geef de volgende parameters op als onderdeel van de API-aanvraag. Lees het artikel bij Roltoewijzingen van inschrijvingsaccount - Put - URI-parameters.

    • billingAccountName: Deze parameter is de factureringsrekening-id. U vindt deze in Azure Portal op de overzichtspagina kostenbeheer en facturering .

      Schermopname van de factureringsrekening-id.

    • billingRoleAssignmentName: Deze parameter is een unieke GUID die u moet opgeven. U kunt een GUID genereren met behulp van de PowerShell-opdracht New-Guid . U kunt ook de website Online GUID/UUID Generator gebruiken om een unieke GUID te genereren.

    • enrollmentAccountName: Deze parameter is de account-id. Zoek de account-id voor de accountnaam in Azure Portal op de pagina Kostenbeheer en facturering .

      In dit voorbeeld hebben we de GTM Test Account. De id is 196987.

      Schermopname van de account-id.

    • api-version: Gebruik de preview-versie 2019-10-01 . Gebruik het voorbeeld bij roltoewijzingen van de afdeling Inschrijving - Put - Voorbeelden.

      De hoofdtekst van de aanvraag bevat JSON-code met drie parameters die u moet gebruiken.

      Parameter Waar vind ik het?
      properties.principalId Dit is de waarde van object-id. Zie Uw service-principal en tenant-id's zoeken.
      properties.principalTenantId Zie Uw service-principal en tenant-id's zoeken.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountID}/enrollmentAccounts/{enrollmentAccountID}/billingRoleDefinitions/a0bcee42-bf30-4d1b-926a-48d21664ef71

      De naam van het factureringsaccount is dezelfde parameter die u in de API-parameters hebt gebruikt. Dit is de inschrijvings-id die u in Azure Portal ziet.

      De definitie-id van a0bcee42-bf30-4d1b-926a-48d21664ef71 de factureringsrol is voor de rol maker van het abonnement.

  4. Selecteer Uitvoeren om de opdracht te starten.

    Schermopname van de optie Uitproberen in de roltoewijzingen van het inschrijvingsaccount - Artikel plaatsen.

    Een 200 OK antwoord laat zien dat de service-principal is toegevoegd.

U kunt nu de service-principal gebruiken om automatisch toegang te krijgen tot EA-API's. De service-principal heeft de rol SubscriptionCreator.

Roltoewijzingen van service-principal controleren

Roltoewijzingen van service-principals zijn niet zichtbaar in Azure Portal. U kunt roltoewijzingen van het inschrijvingsaccount, inclusief de rol maker van het abonnement, weergeven met de roltoewijzingen voor factureringsrollen - List By Enrollment Account - REST API (Azure Billing) API. Gebruik de API om te controleren of de roltoewijzing is geslaagd.

Problemen oplossen

U moet de object-id van de ondernemingstoepassing identificeren en gebruiken waar u de EA-rol hebt verleend. Als u de object-id van een andere toepassing gebruikt, mislukken API-aanroepen. Controleer of u de juiste object-id van de ondernemingstoepassing gebruikt.

Als u de volgende fout krijgt bij het maken van uw API-aanroep, is het mogelijk dat u de object-id-waarde van de service-principal gebruikt die zich in App-registraties bevindt. U kunt deze fout oplossen door ervoor te zorgen dat u de service-principal-object-id van bedrijfstoepassingen gebruikt, niet app-registraties.

The provided principal Tenant Id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and principal Object Id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are not valid

Volgende stappen

Ga aan de slag met uw Enterprise Overeenkomst factureringsaccount.