Sie können den Zugriff von Drittanbieteranwendungen auf VMware Cloud Director mithilfe von Dienstkonten automatisieren.

Gemeinsame Nutzung

Ab VMware Cloud Director 10.4.1 können Sie bestimmten Rollen nur das Recht Ansicht „Eingeschränkte Dienstkonten“ gewähren, wenn Sie die Dienstkontoinformationen einschränken möchten, die Benutzern angezeigt werden. Wenn ein Benutzer mit dem Recht Ansicht „Eingeschränkte Dienstkonten“ eine GET-Anforderung für das Dienstkonto ausführt, werden in der Antwort die softwareId, die softwareVersion, der uri und der status des Dienstkontos als null angezeigt.

Implementierung

Für den automatisierten Zugriff auf VMware Cloud Director verwenden Dienstkonten API-Token. Dienstkonten sind nur für den API-basierten Zugriff vorgesehen. Sobald Sie Zugriff auf ein Dienstkonto gewährt haben, empfängt die authentifizierte Clientanwendung ihr API-Token, bei dem es sich um ein OAuth-Aktualisierungstoken handelt, sowie ein Zugriffstoken, das die erste VMware Cloud Director-Sitzung darstellt, zur sofortigen Verwendung. Anwendungen benötigen die API-Token für die Authentifizierung bei VMware Cloud Director. Zugriffstoken sind VMware Cloud Director-Sitzungstoken (JWT-Token), die Anwendungen verwenden, um API-Anforderungen mithilfe des Dienstkontos zu senden. Die Dienstkonten für Anwendungen verwenden API-Token und weisen daher dieselben Einschränkungen auf wie Benutzer-API-Token in VMware Cloud Director.

Dienstkonten wird Zugriff mithilfe von „Autorisierung des Dienstkontos anfordern“ gewährt. Dadurch wird gewährleistet, dass nur die Anwendung, die das Token verwenden muss, Zugriff auf das Token hat und es verwenden kann. Kein anderer Akteur kann auf das Token zugreifen. Sie verwalten als Administrator den Zugriff auf das Dienstkonto. Selbst Administratoren haben keinen Zugriff auf das Token, das den Zugriff gewährt. VMware Cloud Director gibt das Token nur an das Dienstkonto weiter. Dafür basiert VMware Cloud Director auf einem bekannten Standard. Um sicherzustellen, dass Sie und die Anwendung, der Sie das Token gewähren, über die Gewährungs- und Tokenübertragung synchronisiert sind, können Sie den API-Token-Gewährungsprozess nur initiieren, wenn Sie den Benutzercode für die Anwendung kennen.

Im Gegensatz zu Benutzer-API-Token rotieren API-Token, die Dienstkonten gewährt werden, bei jeder Verwendung gemäß RFC 6749 Abschnitt 6. Ungenutzte API-Token für Dienstkonten verfallen nie, es sei denn, Sie widerrufen sie.

Dienstkonten können nur über eine Rolle verfügen. Bei OAuth-konformen APIs wird die Rolle über das Geltungsbereichsfeld als URL-codierter Uniform Resource Name (URN) mit dem Namen der Rolle kommuniziert. Das URN-Format lautet urn:vcloud:role:[roleName]. Weitere Informationen finden Sie unter RFC 8141, das die URN-Codierung beschreibt.

Hinweis: Der Geräte-Endpoint ist nicht authentifiziert. Erwägen Sie, spezielle Drosselungsregeln für Ihren Lastausgleichsdienst zu konfigurieren.
Tabelle 1. Dienstkontostatus
Status Beschreibung
Erstellt Das Konto befindet sich nach der Erstellung im anfänglichen Status.
Angefordert Es gibt mindestens eine ausstehende Zugriffsanforderung, die ein Anforderer mithilfe einer Geräteautorisierungsanforderung initiiert hat.
Gewährt Ein Administrator hat eine ausstehende Anforderung erteilt und wartet auf das Abfragen und Abrufen des API-Tokens für das Dienstkonto.
Aktiv Das Dienstkonto hat das API-Token abgerufen und kann mithilfe des Tokens auf VMware Cloud Director zugreifen.

Einschränkungen

Da die Verwendung von Dienstkonten auf Drittanbieteranwendungen ausgerichtet ist, gelten für Dienstkonten einige Einschränkungen.

Bei Verwendung von Dienstkonten können Anwendungen bestimmte Aufgaben nicht ausführen.
  • Durchführen von Benutzerverwaltungsaufgaben
  • API-Token erstellen
  • Verwalten anderer Dienstkonten
Beim Zugriff auf VMware Cloud Director mithilfe eines Dienstkontos verfügen Anwendungen lediglich über Anzeigerechte für die folgenden Ressourcen.
  • Benutzer
  • Gruppe
  • Rollen
  • Globale Rollen
  • Rechtepakete
Anwendungen, die mithilfe eines Dienstkontos auf VMware Cloud Director zugreifen, verfügen nicht über die folgenden Rechte.
  • Token: Verwalten
  • Token: Alle verwalten

Multisite

Ab VMware Cloud Director 10.4.1 können Dienstkonten mithilfe der Multisite-Funktion mehrere geografisch verteilte VMware Cloud Director-Installationen oder ‑Servergruppen und deren Organisationen als einzelne Entitäten verwalten und überwachen. Weitere Informationen finden Sie unter Konfigurieren und Verwalten von Multisite-Bereitstellungen. Wenn ein Dienstkonto eine Anforderung an eine andere Organisation stellt als diejenige, für die es authentifiziert wurde, müssen Sie sicherstellen, dass das Dienstkonto in der zugeordneten Organisation vorhanden ist und dass es denselben Namen und dieselbe Software-ID hat. Sie müssen auch einen X-VMWARE-VCLOUD-AUTH-CONTEXT-Header hinzufügen, der den Namen der Organisation angibt, die Ihre Anforderung erfüllen muss. Weitere Informationen zum Konfigurieren und Verwalten von Multisite-Bereitstellungen finden Sie im VMware Cloud Director API-Programmierhandbuch.

Erstellen eines Dienstkontos

Sie können ein Konto für den automatisierten Zugriff auf VMware Cloud Director mithilfe des Service Provider Admin Portal erstellen.

Prozedur

  1. Wählen Sie in der oberen Navigationsleiste Administration aus.
  2. Wählen Sie im linken Bereich unter Zugriffssteuerung Anbieter die Option Dienstkonten aus.
  3. Klicken Sie auf Neu.
  4. Geben Sie einen Namen für das Dienstkonto ein.
  5. Wählen Sie im Dropdown-Menü Rolle zuweisen eine Rolle für das Dienstkonto aus.
    Die Liste der verfügbaren Rollen umfasst die lokalen Systemorganisationsrollen oder, falls in einer Mandantenorganisation vorhanden, die globalen Rollen, die für die Organisation zusätzlich zu den lokalen Rollen im Mandanten veröffentlicht werden.
  6. Geben Sie eine Software-ID für das Dienstkonto ein oder generieren Sie eine mithilfe der Schaltfläche Software-ID generieren.

    Dienstkonten müssen über Software-IDs verfügen, bei denen es sich um eindeutige Bezeichner im UUID-Format handelt, die die Software darstellen, die eine Verbindung mit VMware Cloud Director herstellt. Diese ID ist für alle Versionen und Instanzen einer Software identisch.

    Verwenden Sie für größere Lösungen, um die Kontrolle über die Identität Ihrer Dienstkonten zu behalten, nicht die Option Software-ID generieren und generieren Sie Ihre eigene Software-ID.

  7. (Optional) Geben Sie die Softwareversion des Systems mithilfe des Dienstkontos ein.
    Bei der Softwareversion handelt es sich um eine optionale, vom Anbieter angegebene Informationsmenge aus Metadaten, die dem Dienstkonto zugeordnet sind. Um nachzuverfolgen, wann sich eine Software ändert, verwendet VMware Cloud Director die Softwareversion. Die Softwareversion kann nützlich sein, um ein Dienstkonto zu identifizieren.
  8. (Optional) Geben Sie einen Client-URI ein.
    Der Uniform Resource Identifier (URI) des Clients ist eine URL zur Webseite des Anbieters und stellt Informationen über den Client bereit.
  9. Klicken Sie auf Weiter.
  10. (Optional) Fügen Sie Kontingente für die Ressourcen hinzu, die das Dienstkonto verwalten soll.
    Diese Kontingente schränken die Fähigkeit des Dienstkontos ein, Speicher- und Computing-Ressourcen zu verbrauchen.
  11. Überprüfen Sie die Informationen zum Dienstkonto und klicken Sie auf Fertigstellen.

Ergebnisse

Das Dienstkonto wird auf der Seite Dienstkonten mit dem Status Created angezeigt.

Beispiel

Sie können ein Dienstkonto auch mithilfe der VMware Cloud Director-API erstellen. Die API-Anforderung verwendet denselben API-Endpoint wie beim Erstellen eines Benutzer-API-Tokens, aber das Vorhandensein des Felds software_id zeigt die Absicht an, ein Dienstkonto zu erstellen.

Beispielanforderung:
POST /oauth/provider/register 

Accept:application/json

Content-Type:application/json

Authorization:Bearer eyJhbGciOiJSUzI...7g7rA 

Body: { 

    "client_name": "exampleServiceAccount", 

    "software_id": "bc2528fd-35c4-44e5-a55d-62e5c4bd9c99", 

    "scope": "urn:vcloud:role:System%20Administrator", 

    "client_uri": "https://www.companyname.com", 

    "software_version": "1.0" 

} 
Beispielantwort:
{ 

"client_name": "exampleServiceAccount", 

"client_id": "734e3845-1573-4f07-9b6c-b493c9042187", 

"grant_types": [ 

"urn:ietf:params:oauth:grant-type:device_code" 

], 

"token_endpoint_auth_method": "none", 

"client_uri": "https://www.company_name.com", 

"software_id": "bc2528fd-35c4-44e5-a55d-62e5c4bd9c99", 

"software_version": "1.0", 

"scope": "urn:vcloud:role:System%20Administrator" 

} 

Nächste Maßnahme

Kopieren Sie die Client-ID, die in den Dienstkontodetails angezeigt wird. Um Zugriff auf das Dienstkonto zu gewähren, müssen Sie die Client-ID verwenden.

Gewähren des Zugriffs auf ein Dienstkonto

Nachdem Sie ein Dienstkonto erstellt haben und die Anwendung die Autorisierung zum Erhalt eines Zugriffstokens anfordert, können Sie das Token mithilfe des VMware Cloud Director Service Provider Admin Portal erteilen.

Hinweis: Wenn die Zeitüberschreitung während dieses Vorgangs eintritt, ändert sich der Status des Dienstkontos im Service Provider Admin Portal wieder in Created und Sie müssen den Vorgang erneut starten.

Voraussetzungen

  1. Kopieren Sie die Client-ID aus den Dienstkontodetails im Service Provider Admin Portal.
  2. Stellen Sie sicher, dass die Anwendung, die das Konto anfordert, eine RFC-konforme OAuth 2.0 Device Authorization Grant-Anforderung an den API-Endpoint https://site.cloud.example.com/oauth/provider/device_authorization sendet. Weitere Informationen zu Geräteautorisierungsanforderungen finden Sie unter RFC 8628 Abschnitt 3.1.
    Taste Wert
    client_ID Generated_Client_ID

    Sobald die Anwendung Zugriff anfordert, ändert sich der Status des Dienstkontos in Service Provider Admin Portal in Requested. Die Anwendung erhält den Gerätecode, den Benutzercode und einige zusätzliche Informationen.

    Beispielanforderung:
    POST /oauth/provider/device_authorization
    Accept:application/json 
    Content-Type: application/x-www-form-urlencoded
    Body:
    client_id=734e3845-1573-4f07-9b6c-b493c9042187
    Beispielantwort:
    {
    "device_code": "tkhZ0uoUMy5xgjJqRJblIq3-g44xy2Ms6TEpv3Z_fKw",
    "user_code": "3VL8-SQVJ",
    "verification_uri": "https://[VCD]/provider/administration/access-control/service-accounts",
    "expires_in": 3600,
    "interval": 60
    }

    Das Gerät muss mit der in der obigen Antwort angegebenen Frequenz (in Sekunden) /oauth/provider/token gemäß RFC abfragen. Das Gerät muss den Gerätecode verwenden, bis es die Token von VMware Cloud Director empfängt oder die Anforderung abläuft.

    Beispielanforderung:
    POST: /oauth/provider/token
    Accept:application/json 
    Content-Type: application/x-www-form-urlencoded
    Body:
    client_id= 734e3845-1573-4f07-9b6c-b493c9042187&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Adevice_code&device_code=tkhZ0uoUMy5xgjJqRJblIq3-g44xy2Ms6TEpv3Z_fKw
    Beispielantwort vor Gewährung:
    {
        "error": "authorization_pending",
        "error_description": "Device authorization request pending",
        "error_uri": null,
        "minorErrorCode": "authorization_pending",
        "message": "Device authorization request pending",
        "stackTrace": null
    }
    Beispielantwort nach Gewährung:
    {
        "access_token": "eyJhbGciOiJSU…HqJaDud1sVA",
        "token_type": "Bearer",
        "expires_in": 2592000,
        "refresh_token": "SsybukUed8SBP2p1AaFiGJhrntQNWZVX"
    }

    Wenn Sie eine Zugriffsanforderung nicht bestätigen oder ablehnen, tritt eine Zeitüberschreitung beim Benutzercode auf. Der Zeitüberschreitungsspanne wird in der Antwort auf die Geräteautorisierungsanforderung angezeigt.

    VMware Cloud Director gewährt der Anwendung nur dann ein primäres API-Token, wenn die Anwendung und der Administrator den Gerätecode und den entsprechenden Benutzercode verwenden.

  3. Rufen Sie den Benutzercode aus der Anwendung ab. Sie müssen den Code in Schritt 4 eingeben.

Prozedur

  1. Wählen Sie in der oberen Navigationsleiste Administration aus.
  2. Wählen Sie im linken Bereich unter Zugriffssteuerung Anbieter die Option Dienstkonten aus.
  3. Klicken Sie auf Zugriffsanforderungen überprüfen.
  4. Geben Sie den Benutzercode für die Anwendung ein, den Sie in Voraussetzung 3 erhalten haben, klicken Sie auf Lookup und überprüfen Sie die angeforderten Zugriffsdetails.
  5. Gewähren Sie Zugriff auf die Anwendung.
    Wenn Sie den Zugriff auf die Anwendung verweigern, ändert sich der Status des Dienstkontos im Service Provider Admin Portal wieder in Created.

Ergebnisse

Der Status der Dienstanforderung ändert sich in Granted. VMware Cloud Director gewährt der mit dem Dienstkonto verknüpften Anwendung das primäre API-Token in Form eines API-Tokens. Gemäß RFC ist in der Antwort ein OAuth-Zugriffstoken enthalten, das eine Benutzersitzung für die sofortige Verwendung durch das Dienstkonto darstellt. Wenn die Anwendung das OAuth-Zugriffstoken nicht sofort verwendet, läuft die Sitzung gemäß der für die Sitzung im Leerlauf konfigurierten Zeitüberschreitung ab. Das Dienstkonto wird möglicherweise auch explizit abgemeldet, was nicht nur aus Sicherheitsgründen empfohlen wird, sondern auch eine gute Testausführung für das Dienstkonto bietet, um einen API-Aufruf an VMware Cloud Director durchzuführen. Sobald die Anwendung das API-Token abruft, ändert sich der Status in Active.

Nächste Maßnahme

  • Um die zugewiesene Dienstkontorolle, Software-ID, Softwareversion, Client-URI oder Kontingenteinschränkungen zu ändern, wählen Sie ein Dienstkonto aus und klicken Sie auf Dienstkonto bearbeiten. Die Änderungen werden bei der nächsten Tokenaktualisierung wirksam.
  • Um den Zugriff auf das Dienstkonto zu widerrufen, sodass das gewährte API-Token ungültig wird, klicken Sie auf Widerrufen. VMware Cloud Director beendet alle aktiven Sitzungen. Durch das Widerrufen eines API-Tokens wird das Dienstkonto nicht gelöscht. Der Status des Kontos ändert sich jedoch in Created. Wenn die Anwendung bereits erneut Zugriff angefordert hat, ändert sich der Status des Dienstkontos in Requested. Sie müssen das Verfahren erneut befolgen, um Zugriff auf das Dienstkonto zu gewähren, damit das Konto Active wird.