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.
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.
- Durchführen von Benutzerverwaltungsaufgaben
- API-Token erstellen
- Verwalten anderer Dienstkonten
- Benutzer
- Gruppe
- Rollen
- Globale Rollen
- Rechtepakete
- 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
Ergebnisse
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.
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" }
{ "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
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.
Created
und Sie müssen den Vorgang erneut starten.
Voraussetzungen
- Kopieren Sie die Client-ID aus den Dienstkontodetails im Service Provider Admin Portal.
- 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.
- Rufen Sie den Benutzercode aus der Anwendung ab. Sie müssen den Code in Schritt 4 eingeben.
Prozedur
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 inRequested
. Sie müssen das Verfahren erneut befolgen, um Zugriff auf das Dienstkonto zu gewähren, damit das KontoActive
wird.