Zuweisen von Enterprise Agreement-Rollen zu Dienstprinzipalen

Sie können Ihre EA-Registrierung (Enterprise Agreement, Konzernvertrag) im Azure-Portal verwalten. Sie können verschiedene Rollen erstellen, um Ihre Organisation zu verwalten, Kosten anzuzeigen und Abonnements zu erstellen. Dieser Artikel hilft Ihnen, einige dieser Aufgaben zu automatisieren, indem Sie Azure PowerShell und REST APIs mit Microsoft Entra ID-Dienstprinzipalen verwenden.

Hinweis

Wenn Sie in Ihrer Organisation über mehrere EA-Abrechnungskonten verfügen, müssen Sie die EA-Rollen den Microsoft Entra ID-Dienstprinzipalen in jedem EA-Abrechnungskonto einzeln zuweisen.

Bevor Sie beginnen, stellen Sie sicher, dass Sie den Inhalt der folgenden Artikel kennen:

Sie benötigen eine Möglichkeit, REST-APIs aufzurufen. Einige gängige Methoden zum Abfragen der API sind:

Erstellen und Authentifizieren des Dienstprinzipals

Um EA-Aktionen mithilfe eines Dienstprinzipals zu automatisieren, müssen Sie eine Microsoft Entra-Anwendungsidentität erstellen, die sich dann automatisiert authentifizieren kann.

Folgen Sie den Schritten in diesen Artikeln, um Ihren Dienstprinzipal zu erstellen und zu authentifizieren.

Hier sehen Sie ein Beispiel für die Seite für die Anwendungsregistrierung:

Screenshot: Registrieren einer Anwendung

Suchen des Dienstprinzipals und der Mandanten-IDs

Sie benötigen die Objekt-ID des Dienstprinzipals und die Mandanten-ID. Sie benötigen diese Informationen für Berechtigungszuweisungen weiter unten in diesem Artikel. Alle Anwendungen werden in der Microsoft Entra-ID im Mandanten registriert. Zwei Arten von Objekten werden erstellt, wenn die App-Registrierung abgeschlossen ist:

  • Anwendungsobjekt: Die Anwendungs-ID wird unter „Unternehmensanwendungen“ angezeigt. Verwenden Sie die ID nicht, um EA-Rollen zu gewähren.
  • Dienstprinzipalobjekt: Das Dienstprinzipalobjekt wird im Fenster „Unternehmensregistrierung“ in Microsoft Entra ID angezeigt. Die Objekt-ID wird verwendet, um dem Dienstprinzipal EA-Rollen zuzuweisen.
  1. Öffnen Sie Microsoft Entra ID und wählen Sie dann Unternehmensanwendungen aus.

  2. Suchen Sie Ihre App in der Liste.

    Screenshot: Beispiel für eine Unternehmensanwendung

  3. Wählen Sie die App aus, um die Anwendungs-ID und Objekt-ID zu ermitteln:

    Screenshot: Eine Anwendungs-ID und Objekt-ID für eine Unternehmensanwendung

  4. Die Mandanten-ID finden Sie auf der Seite Übersicht von Microsoft Entra ID.

    Screenshot: Mandanten-ID

Hinweis

Der Wert der Microsoft Entra-Mandanten-ID ähnelt einer GUID mit dem folgenden Format: aaaabbbb-0000-cccc-1111-dddd2222eeee.

Berechtigungen, die dem Dienstprinzipal zugewiesen werden können

Weiter unten in diesem Artikel erteilen Sie der Microsoft Entra-App Berechtigungen zum Ausführen von Aktionen mit einer EA-Rolle. Sie können dem Dienstprinzipal nur die folgenden Rollen zuweisen und Sie benötigen die Rollendefinitions-ID, genau wie angezeigt.

Rolle Zulässige Aktionen Rollendefinitions-ID
EnrollmentReader Registrierungsleser können Daten im Registrierungs-, Abteilungs- und Kontobereich anzeigen. Die Daten enthalten Gebühren für alle Abonnements in den Bereichen, einschließlich aller Mandanten. Kann den Saldo der Azure-Vorauszahlung (früher als Mindestverbrauch bezeichnet) für die Registrierung anzeigen. 24f8edb6-1668-4659-b5e2-40bb5f3a7d7e
EA purchaser (EA-Einkäufer) Kann Reservierungsaufträge erwerben und Reservierungstransaktionen anzeigen. Sie hat alle Berechtigungen von EnrollmentReader und dadurch wiederum alle Berechtigungen von DepartmentReader. Es kann Nutzung und Gebühren für alle Konten und Abonnements anzeigen. Kann den Saldo der Azure-Vorauszahlung (früher als Mindestverbrauch bezeichnet) für die Registrierung anzeigen. da6647fb-7651-49ee-be91-c43c4877f0c4
DepartmentReader Herunterladen der Nutzungsdetails für die verwaltete Abteilung. Kann die Nutzung und die Gebühren für die Abteilung anzeigen. db609904-a47f-4794-9be8-9bd86fbffd8a
SubscriptionCreator Erstellen neuer Abonnements im angegebenen Kontobereich. a0bcee42-bf30-4d1b-926a-48d21664ef71
  • Eine EnrollmentReader-Rolle kann einem Dienstprinzipal nur von einem Benutzer zugewiesen werden, der eine EnrollmentWriter-Rolle hat. Die EnrollmentReader-Rolle, die einem Dienstprinzipal zugewiesen ist, wird nicht im Azure-Portal angezeigt. Sie wird programmgesteuert erstellt und dient nur zur programmgesteuerten Verwendung.
  • Die Rolle „DepartmentReader“ kann einem Dienstprinzipal nur von einem Benutzer zugewiesen werden, der über die Rolle „EnrollmentWriter“ oder „Department Writer“ verfügt.
  • Die Rolle „SubscriptionCreator“ kann einem Dienstprinzipal nur von einem Benutzer zugewiesen werden, der als Besitzer des Registrierungskontos fungiert (EA-Administrator). Die Rolle wird nicht im Azure-Portal angezeigt. Sie wird programmgesteuert erstellt und dient nur zur programmgesteuerten Verwendung.
  • Die Rolle des EA-Einkäufers wird im Azure-Portal nicht angezeigt. Sie wird programmgesteuert erstellt und dient nur zur programmgesteuerten Verwendung.

Wenn Sie einem Dienstprinzipal eine EA-Rolle zuweisen, müssen Sie die billingRoleAssignmentName erforderliche Eigenschaft verwenden. Der Parameter ist ein eindeutiger Bezeichner, den Sie angeben müssen. Eine GUID kann mit dem PowerShell-Befehl New-Guid erstellt werden. Sie können eine eindeutige GUID auch über die Website Online-Generator für GUIDs/UUIDs generieren.

Ein Dienstprinzipal kann nur eine Rolle haben.

Weisen Sie dem Dienstprinzipal die Berechtigung für die Rolle des Registrierungskontos zu

  1. Lesen Sie den REST-API-Artikel Rollenzuweisungen – PUT. Während Sie den Artikel lesen, wählen Sie Probieren Sie es aus, um den Dienstprinzipal zu nutzen.

    Screenshot der Option „Jetzt testen“ im Artikel „Rollenzuweisungen – PUT“

  2. Melden Sie sich mit Ihren Kontoanmeldeinformationen beim Mandanten mit dem Registrierungszugriff an, den Sie zuweisen möchten.

  3. Geben Sie in der API-Anforderung die folgenden Parameter an.

    • billingAccountName: Dieser Parameter ist die Abrechnungskonto-ID. Sie finden ihn im Azure-Portal auf der Übersichtsseite Kostenverwaltung + Abrechnung.

      Screenshot der ID des Abrechnungskontos

    • billingRoleAssignmentName: Dieser Parameter ist eine eindeutige GUID, die Sie angeben müssen. Eine GUID kann mit dem PowerShell-Befehl New-Guid erstellt werden. Sie können eine eindeutige GUID auch über die Website Online-Generator für GUIDs/UUIDs generieren.

    • api-version: Verwenden Sie die Version 2019-10-01-preview. Verwenden Sie den Beispielanforderungstext in Rollenzuweisungen – PUT – Beispiele.

      Der Anforderungstext enthält JSON-Code mit drei Parametern, die Sie verwenden müssen.

      Parameter Ort
      properties.principalId Dies ist der Wert der Objekt-ID. Siehe Dienstprinzipal- und Mandanten-IDs suchen.
      properties.principalTenantId Siehe Dienstprinzipal- und Mandanten-IDs suchen.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountName}/billingRoleDefinitions/24f8edb6-1668-4659-b5e2-40bb5f3a7d7e

      Der Name des Abrechnungskontos ist der Parameter, den Sie in den API-Parametern verwendet haben. Es ist die Registrierungs-ID, die Sie im Azure-Portal sehen.

      Beachten Sie, dass 24f8edb6-1668-4659-b5e2-40bb5f3a7d7e die ID der Abrechnungsrollendefinition für einen Benutzer mit der Rolle „EnrollmentReader“ ist.

  4. Klicken Sie auf Ausführen, um den Befehl zu starten.

    Screenshot einer Beispielrollenzuweisung mit Beispielinformationen, die zur Ausführung bereit ist.

    Eine 200 OK-Antwort zeigt, dass der Dienstprinzipal erfolgreich hinzugefügt wurde.

Jetzt können Sie den Dienstprinzipal verwenden, um automatisch auf EA-APIs zuzugreifen. Der Dienstprinzipal verfügt über die EnrollmentReader-Rolle.

Zuweisen der Rollenberechtigung für EA-Käufer zum Dienstprinzipal

Führen Sie für die Rolle „EA Purchaser“ (EA-Einkäufer) die gleichen Schritte wie für „EnrollmentReader“ aus. Geben Sie roleDefinitionId an, indem Sie das folgende Beispiel verwenden:

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

Zuweisen der Rolle „DepartmentReader“ zum Dienstprinzipal

  1. Lesen Sie den REST-API-Artikel Zuweisen von Registrierungsrollen für Abteilungen – PUT. Klicken Sie im Artikel auf Jetzt ausprobieren.

    Screenshot: Die Option „Jetzt testen“ im Artikel „Zuweisen von Registrierungsrollen für Abteilungen – PUT“

  2. Melden Sie sich mit Ihren Kontoanmeldeinformationen beim Mandanten mit dem Registrierungszugriff an, den Sie zuweisen möchten.

  3. Geben Sie in der API-Anforderung die folgenden Parameter an.

    • billingAccountName: Dieser Parameter ist die Abrechnungskonto-ID. Sie finden ihn im Azure-Portal auf der Übersichtsseite Kostenverwaltung + Abrechnung.

      Screenshot der ID des Abrechnungskontos

    • billingRoleAssignmentName: Dieser Parameter ist eine eindeutige GUID, die Sie angeben müssen. Eine GUID kann mit dem PowerShell-Befehl New-Guid erstellt werden. Sie können eine eindeutige GUID auch über die Website Online-Generator für GUIDs/UUIDs generieren.

    • departmentName: Dieser Parameter ist die Abteilungs-ID. Abteilungs-IDs werden im Azure-Portal auf der Seite Kostenverwaltung + Abrechnung>Abteilungen angezeigt.

      In diesem Beispiel wurde die Abteilung „ACE“ verwendet. Die ID im Beispiel lautet 84819.

      Screenshot: Beispiel für eine Abteilungs-ID

    • api-version: Verwenden Sie die Version 2019-10-01-preview. Verwenden Sie das Beispiel in Zuweisen von Registrierungsrollen für Abteilungen – PUT.

      Der Anforderungstext enthält JSON-Code mit drei Parametern, die Sie verwenden müssen.

      Parameter Ort
      properties.principalId Dies ist der Wert der Objekt-ID. Siehe Dienstprinzipal- und Mandanten-IDs suchen.
      properties.principalTenantId Siehe Dienstprinzipal- und Mandanten-IDs suchen.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountName}/billingRoleDefinitions/db609904-a47f-4794-9be8-9bd86fbffd8a

      Der Name des Abrechnungskontos ist der Parameter, den Sie in den API-Parametern verwendet haben. Es ist die Registrierungs-ID, die Sie im Azure-Portal sehen.

      Die Definitions-ID db609904-a47f-4794-9be8-9bd86fbffd8a der Abrechnungsrolle gilt für „DepartmentReader“.

  4. Klicken Sie auf Ausführen, um den Befehl zu starten.

    Screenshot: Beispiel für die Rollenzuweisung mit „PUT“ nach Klicken auf „Jetzt testen“ im Artikel zum Zuweisen von Registrierungsrollen für Abteilungen mit Beispielinformationen zum Ausführen des Befehls

    Eine 200 OK-Antwort zeigt, dass der Dienstprinzipal erfolgreich hinzugefügt wurde.

Jetzt können Sie den Dienstprinzipal verwenden, um automatisch auf EA-APIs zuzugreifen. Der Dienstprinzipal verfügt über die Rolle „DepartmentReader“.

Zuweisen der Abonnementersteller-Rolle zum Dienstprinzipal

  1. Lesen Sie den Artikel Zuweisen von Registrierungsrollenzuweisungen für Konten – PUT. Während Sie den Artikel lesen, wählen Sie Probieren Sie es aus, um dem Dienstprinzipal die Abonnementersteller-Rolle zuzuweisen.

    Screenshot: Die Option „Jetzt testen“ im Artikel „Zuweisen von Registrierungsrollen für Konten – PUT“

  2. Melden Sie sich mit Ihren Kontoanmeldeinformationen beim Mandanten mit dem Registrierungszugriff an, den Sie zuweisen möchten.

  3. Geben Sie in der API-Anforderung die folgenden Parameter an. Lesen Sie den Artikel Zuweisen von Registrierungsrollen für Konten – PUT – URI-Parameter.

    • billingAccountName: Dieser Parameter ist die Abrechnungskonto-ID. Sie finden ihn im Azure-Portal auf der Übersichtsseite Kostenverwaltung + Abrechnung.

      Screenshot: Abrechnungskonto-ID

    • billingRoleAssignmentName: Dieser Parameter ist eine eindeutige GUID, die Sie angeben müssen. Eine GUID kann mit dem PowerShell-Befehl New-Guid erstellt werden. Sie können eine eindeutige GUID auch über die Website Online-Generator für GUIDs/UUIDs generieren.

    • enrollmentAccountName: Dieser Parameter ist die Konto-ID. Suchen Sie im Azure-Portal auf der Seite Kostenverwaltung + Abrechnung die Konto-ID für den Kontonamen.

      In diesem Beispiel wird das GTM Test Account verwendet. Die ID lautet 196987.

      Screenshot der Konto-ID

    • api-version: Verwenden Sie die Version 2019-10-01-preview. Verwenden Sie das Beispiel in Zuweisen von Registrierungsrollen für Abteilungen – PUT – Beispiele.

      Der Anforderungstext enthält JSON-Code mit drei Parametern, die Sie verwenden müssen.

      Parameter Ort
      properties.principalId Dies ist der Wert der Objekt-ID. Siehe Dienstprinzipal- und Mandanten-IDs suchen.
      properties.principalTenantId Siehe Dienstprinzipal- und Mandanten-IDs suchen.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountID}/enrollmentAccounts/{enrollmentAccountID}/billingRoleDefinitions/a0bcee42-bf30-4d1b-926a-48d21664ef71

      Der Name des Abrechnungskontos ist der Parameter, den Sie in den API-Parametern verwendet haben. Es ist die Registrierungs-ID, die Sie im Azure-Portal sehen.

      Die Definitions-ID a0bcee42-bf30-4d1b-926a-48d21664ef71 der Abrechnungsrolle gilt für die Rolle „SubscriptionCreator“.

  4. Klicken Sie auf Ausführen, um den Befehl zu starten.

    Screenshot der Option „Jetzt testen“ im Artikel „Zuweisen von Registrierungsrollen für Konten – PUT“

    Eine 200 OK-Antwort zeigt, dass der Dienstprinzipal erfolgreich hinzugefügt wurde.

Jetzt können Sie den Dienstprinzipal verwenden, um automatisch auf EA-APIs zuzugreifen. Der Dienstprinzipal verfügt über die SubscriptionCreator-Rolle.

Überprüfen Sie die Rollenzuweisungen von Dienstprinzipalen

Die Rollenzuweisungen von Dienstprinzipalen sind im Azure-Portal nicht sichtbar. Sie können die Rollenzuweisungen für Registrierungskonten, einschließlich der Rolle des Erstellers von Abonnements, mit der API Abrechnungsrollenzuweisungen – Auflistung nach Registrierungskonten – REST API (Azure Billing) einsehen. Verwenden Sie die API, um zu überprüfen, ob die Rollenzuweisung erfolgreich war.

Problembehandlung

Sie müssen die Objekt-ID der Unternehmensanwendung identifizieren und verwenden, in der Sie die EA-Rolle vergeben haben. Wenn Sie die Objekt-ID einer anderen Anwendung verwenden, treten bei API-Aufrufen Fehler auf. Vergewissern Sie sich, dass Sie die richtige Objekt-ID der Enterprise-Anwendung verwenden.

Wenn Sie bei Ihrem API-Aufruf die folgende Fehlermeldung erhalten, verwenden Sie möglicherweise fälschlicherweise den Wert für die Objekt-ID des Diensts, der sich unter „Anwendungsregistrierungen“ befindet. Um diesen Fehler zu beheben, stellen Sie sicher, dass Sie die Objekt-ID des Dienstprinzipals von den Unternehmensanwendungen und nicht von Anwendungsregistrierungen verwenden.

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

Nächste Schritte

Erste Schritte mit Ihrem Abrechnungskonto für Enterprise Agreement.