Sie können den Zugriff von Drittanbieteranwendungen auf VMware Cloud Director mithilfe von Dienstkonten automatisieren.
Nur Systemadministratoren und Organisationsadministratoren mit den Rechten Dienstkonten anzeigen und Dienstkonten verwalten können Dienstkonten erstellen und den Dienstkontozugriff auf VMware Cloud Director verwalten.
Gemeinsame Nutzung
Ab VMware Cloud Director 10.4.1 werden eingeschränkte Informationen zu den Dienstkonten angezeigt, wenn Sie nur über das Recht Ansicht „Eingeschränkte Dienstkonten“ verfügen. Wenn Sie in der eingeschränkten Ansicht eine GET-Anforderung für das Dienstkonto ausführen, 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 zur Multisite-Funktion finden Sie unter Konfigurieren und Verwalten von Multisite-Bereitstellungen. Wenn Sie eine Anforderung an eine andere Organisation stellen als diejenige, bei der Sie sich authentifiziert haben, müssen Sie überprüfen, ob das Dienstkonto in der zugeordneten Organisation vorhanden ist und denselben Namen und dieselbe Software-ID aufweist. 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 Tenant Portal erstellen.
Voraussetzungen
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/tenant/tenant_name/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:Organization%20Administrator", "client_uri": "https://www.company_name.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:Organization%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 Tenant Portal erteilen.
Created
und Sie müssen den Vorgang erneut starten.
Voraussetzungen
- Stellen Sie sicher, dass Sie als Systemadministrator oder Organisationsadministrator mit den Rechten Dienstkonten anzeigen und Dienstkonten verwalten angemeldet sind.
- Kopieren Sie die Client-ID aus den Dienstkontodetails im Tenant 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/tenant/tenant_name/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 Tenant Portal in
Requested
. Die Anwendung erhält den Gerätecode, den Benutzercode und einige zusätzliche Informationen.Beispielanforderung:
POST /oauth/tenant/tenant_name/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]/tenant/tenant_name/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/tenant/tenant_name/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/tenant/tenant_name/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.