HowTo: Application Credentials

Einführung

Benutzer können Application Credentials erstellen, damit sich ihre Anwendungen bei der OpenStack-Komponente Keystone authentifizieren können, ohne die Anmeldeinformationen des Benutzers verwenden zu müssen.

Mit Application Credentials können sich Anwendungen mit der Application Credential-ID und einer geheimen Zeichenfolge authentifizieren, die nicht das Kennwort des Benutzers ist. Auf diese Weise wird das Passwort des Benutzers nicht in die Konfiguration der Anwendung eingebettet.

Benutzer können eine Teilmenge ihrer Rollenzuweisungen für ein Projekt an Application Credentials delegieren und der Anwendung dieselben oder eingeschränkte Berechtigungen innerhalb eines Projekts erteilen.


📘

Application Credentials, Projekte & Benutzer

Application Credentials hängen immer am erstellenden Benutzer und genau einem spezifischen Projekt in dem sie erstellt wurden. Andere User können die Credentials nicht sehen oder verwalten.
(Achtung: Es wird die Project-ID in der UI angezeigt und nicht der Projekt-Name.)

Beim Löschen eines Users werden die App Credentials mitgelöscht.



Anforderungen für Application Credentials

Name / Secrets

Application Credentials für Ihr Projekt können über die Befehlszeile oder über das Dashboard generiert werden. Diese werden dem Projekt zugeordnet, in dem sie erstellt werden.

Der einzige erforderliche Parameter zum Erstellen der Anmeldeinformationen ist ein Name, jedoch kann mit dem Parameter --secret ein bestimmtes Secret festgelegt werden. Ohne Parameter wird stattdessen automatisch ein Secret in der Ausgabe generiert.

Es ist in jedem Fall wichtig das Secret zu notieren, da dieses vor dem Speichern gehasht wird und nach dem Festlegen nicht wiederhergestellt werden kann. Wenn das Secret verloren geht, müssen neue Application Credential für die Anwendung erstellt werden.

Roles

Wir empfehlen außerdem, die Roles festzulegen, die die Application Credentials der Anwendung im Projekt haben sollen, da standardmäßig ein neu erstellter Satz von Anmeldeinformationen alle verfügbaren Roles erbt.

Im Folgenden sind die verfügbaren Roles aufgeführt, die einem Satz von Application Credentials zugewiesen werden können. Wenn Sie diese Roles mithilfe des Parameters --role auf einen Satz von Application Credentials anwenden, beachten Sie bitte, dass bei allen Role-Namen die Groß-/Kleinschreibung beachtet wird:

  • Member: Die Rolle “Member” hat nur administrativen Zugriff auf das zugewiesene Projekt.
  • heat_stack_owner: Als “heat_stack_owner” können Sie vorhandene HEAT-Templates verwenden und ausführen.
  • load-balancer_member: Als „load-balancer_member“ können Sie die Octavia LoadBalancer-Ressourcen nutzen.

Expiration

Standardmäßig laufen erstellte Application Credentials nicht ab, jedoch können feste Ablaufdaten/-zeiten für Application Credentials bei der Erstellung festgelegt werden, indem der Parameter --expires im Befehl verwendet wird
(zum Beispiel: --expires '2025-06-15T16:00:00').




Mangagement Application Credentials über die CLI

Erstellen von Application Credentials

Ein Set von Application Credentials kann im gewünschten Projekt über die CLI erstellt werden. Das folgende Beispiel zeigt, wie ein Set von Credentials mit den folgenden Parametern erstellt wird:

  • Name: my-credential
  • Secret: pkf7B7H819Zapp
  • Roles: Member, heat_stack_owner, load-balancer_member
  • Expiration Date/Time: 2025-06-15 at 16:00:00

Die neuen Zugangsdaten sollten wie folgt aussehen:

$ openstack application credential create test-credentials --secret pkf7B7H819Zapp --role Member --role heat_stack_owner --role load-balancer_member --expires '2025-06-15T16:00:00'
+--------------+----------------------------------------------+
| Field        | Value                                        |
+--------------+----------------------------------------------+
| description  | My-Desc                                      |
| expires_at   | 2025-06-15T16:00:00.000000                   |
| id           | 707d14e835124b4f957938bb5a57d1be             |
| name         | my-credential                                |
| project_id   | c12d14b835124bdf95c958b85a27d1bf             |
| roles        | Member heat_stack_owner load-balancer_member |
| secret       | pkf7B7H819Zapp                               |
| system       | None                                         |
| unrestricted | False                                        |
| user_id      | 5a9b1e6b6dd3808e8902195f72036fa2             |
+--------------+----------------------------------------------+

🚧

Wichtig: Secret unbedingt notieren

Das Secret (ob vom Benutzer festgelegt oder automatisch generiert) wird nur beim Erstellen der Application Credentials angezeigt. Bitte notieren Sie sich das Secret zu diesem Zeitpunkt.


Anzeigen von Application Credentials

Die Liste der zu einem Projekt gehörenden Application-Credentials kann mit dem folgenden Befehl aufgelistet werden.

$ openstack application credential list
+----------------------------------+-------------------+----------------------------------+-------------+------------+
| ID                               | Name              | Project ID                       | Description | Expires At |
+----------------------------------+-------------------+----------------------------------+-------------+------------+
| c12d14b835124bdf95c958b85a27d1bf | my-credential     | bc608a95ac2bc4b55a0902d22d438399 | My-Desc     | None       |
+----------------------------------+-------------------+----------------------------------+-------------+------------+

Einzelne Credentials können mit dem $ openstack application credential show <name> Befehl angezeigt werden.


Löschen von Application Credentials

Application Credentials können über die CLI mit dem folgenden Befehl mit dem Namen oder der ID des spezifischen Satzes von Anmeldeinformationen gelöscht werden:

openstack application credential delete test-credentials




Application Credentials Funktion verifizieren

Sobald über die CLI oder das Dashboard einen Satz von Application Credentials erstellt wurden, sollten Sie diese mit dem folgenden curl-Befehl testen, um zu überprüfen, ob sie funktionieren.

Verwenden Sie nachfolgenden curl-Befehl und setzen Sie in <name> und <secret> Ihre Daten ein:

curl -i -H "Content-Type: application/json" -d ' { "auth": { "identity": { "methods": ["application_credential"],  "application_credential": {  "id": “<id>", "secret": “<secret>"}}}}' https://keystone.opencloud.telemaxx.de:5000/v3/auth/tokens

Ein erfolgreicher curl-Versuch gibt ein x-subject-token aus, erfolglose Versuche mit falschen Anmeldeinformationen führen zu einem 401-Fehler.




Mangagement Application Credentials über die UI

Erstellen von Application Credentials

  1. Loggen Sie sich in das Horizon OpenCloud Service Portal ein
  2. Gehen Sie im Navigationsmenü auf Identity --> Application Credentials
  3. Klicken Sie "Create Application Credential"
    1. Füllen Sie die Pflichtfelder "Name"
      1. Secret (optional): Falls Sie kein eigenes Secret eintragen, wird das System ein Secret für Sie generieren.
    2. Belegen oder Wählen Sie die optionalen Parameter: Description, Expiration, Roles, Access Rule, Unrestricted nach Bedarf\



🚧

Wichtig: Secret unbedingt notieren

Das Secret (ob vom Benutzer festgelegt oder automatisch generiert) wird nur beim Erstellen der Application Credentials angezeigt. Bitte notieren Sie sich das Secret zu diesem Zeitpunkt.


Anzeigen von Application Credentials

  1. Loggen Sie sich in das Horizon OpenCloud Service Portal ein
  2. Gehen Sie im Navigationsmenü auf Identity --> Application Credentials
  3. Es erscheint die Liste der vorhandenen Applications Credentials

  1. Wählen Sie ein App Credential, um sich die Details anzeigen zu lassen

Löschen von Application Credentials

Application Credentials können über die CLI mit dem folgenden Befehl mit dem Namen oder der ID des spezifischen Satzes von Anmeldeinformationen gelöscht werden:

  1. Loggen Sie sich in das Horizon OpenCloud Service Portal ein
  2. Gehen Sie im Navigationsmenü auf Identity --> Application Credentials
  3. Identifizieren Sie den zu löschenden Datensatz und klicken dann "Delete Application Credential"
  4. Bestätigen Sie Löschung

🚧

Wichtig: Gelöscht ist gelöscht!

Das Löschen eines Application Credentials kann nicht rückgängig gemacht werden.
Es gibt auch keine Restore Möglichkeit.