> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/kilo-docs-de/kilo-iot-server/settings/api-keys.md).

# API-Keys

Erstellen, begrenzen, rotieren und widerrufen Sie API-Keys in Kilo IoT — Zugangsdaten pro Integration für REST- und gRPC-Zugriff.

API-Schlüssel geben externen Systemen programmatischen Zugriff auf den Kilo IoT Server. Verwenden Sie sie, um CI/CD-Pipelines zu integrieren, Daten mit Warehouse-Management-Plattformen zu synchronisieren, benutzerdefinierte Analyse- oder Reporting-Skripte zu speisen, SCADA-Systeme anzubinden oder Konfigurationen über Ihre eigenen Tools zu automatisieren. Jeder Schlüssel ist genau auf die Berechtigungen beschränkt, die er benötigt — nicht mehr. Wenn ein Schlüssel jemals kompromittiert wird, widerrufen oder rotieren Sie ihn, ohne dass sich dies auf eine andere Integration auswirkt.

> **Suchen Sie danach, wie man&#x20;*****die*****&#x20;API verwendet?** Die Protokolle (REST und gRPC), die Authentifizierung und Beispiele werden im [API](/kilo-docs-de/kilo-iot-server/api.md) Abschnitt behandelt. Diese Seite handelt vom Erstellen und Verwalten der Schlüssel, mit denen sich diese Integrationen authentifizieren.

***

## Navigation

Gehen Sie zu **Einstellungen → API-Schlüssel** in der Seitenleiste.

***

## Einen Schlüssel erstellen

1. Klicken Sie auf **API-Schlüssel erstellen** in der oberen rechten Ecke.
2. Geben Sie einen **Name** für den Schlüssel. Dies ist erforderlich. Wählen Sie einen Namen, der die Integration beschreibt — zum Beispiel „WMS-Sync-Production“ oder „Analytics-Pipeline-Staging“. Sie identifizieren und verwalten diesen Schlüssel anhand seines Namens.
3. Optional ein **Ablaufdatum** mithilfe des Datumsauswahlfelds fest. Das früheste auswählbare Datum ist heute. Wenn es leer bleibt, bleibt der Schlüssel unbegrenzt aktiv. Legen Sie ein Ablaufdatum für den Zugriff von Auftragnehmern oder temporäre Integrationen fest.
4. Auswählen **Berechtigungsbereiche** — mindestens ein Berechtigungsbereich ist erforderlich. Aktivieren Sie nur die Berechtigungen, die die Integration tatsächlich benötigt. Siehe die [Referenz der Berechtigungsbereiche](#scope-reference) unten.
5. Klicken Sie auf die Bestätigungsschaltfläche, um den Schlüssel zu erstellen.

### Einmalige Anzeige

Nach der Erstellung wird der vollständige Schlüsselwert **einmal** mit einer Kopierschaltfläche angezeigt. Eine Warnung lautet:

> **„Kopieren Sie diesen Schlüssel jetzt. Sie werden ihn später nicht noch einmal sehen können.“**

Speichern Sie den Schlüssel sofort in einem Secrets Manager oder Vault. Sobald Sie diesen Dialog schließen, ist der vollständige Schlüssel weg — nur das Präfix des Schlüssels bleibt in der Tabelle sichtbar. Wenn der Schlüssel verloren geht, ist die einzige Möglichkeit zur Wiederherstellung die Rotation.

***

<figure><img src="https://895787959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-4725a12b257b391994fb76d3c5b538b1b708dac7%2Fapi-key-create.jpg?alt=media" alt="The Create API Key dialog with the name, expiry and the scrollable list of read and write scopes"><figcaption></figcaption></figure>

## Referenz der Berechtigungsbereiche

Berechtigungsbereiche steuern, worauf der Schlüssel zugreifen kann. Jeder Bereich hat eine **Lese** -Variante (Daten abrufen) und eine **Schreib** -Variante (erstellen, aktualisieren oder löschen). Gewähren Sie nur den minimalen Satz, den Ihre Integration benötigt.

Verfügbare Berechtigungsbereiche können von Ihrer Organisation und Ihrem Plan abhängen. Sensor **Verlauf** und **zuletzt gesehen** Aufrufe verwenden einen separaten Telemetrie-Berechtigungsbereich statt *Geräte: Lesen* — prüfen Sie den [API-Referenz](/kilo-docs-de/kilo-iot-server/api.md) genauen Berechtigungsbereich, den jeder Endpunkt benötigt.

| Berechtigungsbereich | Lesezugriff gewährt Zugriff auf                           | Schreibzugriff gewährt Zugriff auf                       |
| -------------------- | --------------------------------------------------------- | -------------------------------------------------------- |
| **Befehle**          | Gerätebefehlsdefinitionen und Ausführungsverlauf anzeigen | Befehle erstellen und bearbeiten sowie an Geräte senden  |
| **Verbindungen**     | Verbindungsstatus und -konfiguration anzeigen             | Verbindungen erstellen und ändern                        |
| **Dashboards**       | Dashboards und Widget-Daten anzeigen                      | Dashboards und Widgets erstellen, bearbeiten und löschen |
| **Geräte**           | Geräteliste und Digital-Twin-Status anzeigen              | Geräte registrieren, Gerätekonfiguration aktualisieren   |
| **Ereignisse**       | Geräteereignisverlauf anzeigen                            | —                                                        |
| **Protokolle**       | System- und Geräteprotokolle anzeigen                     | Protokolle exportieren                                   |
| **Organisationen**   | Organisationsdetails und Mitgliedschaft anzeigen          | Organisationseinstellungen und Mitgliedschaft ändern     |
| **Regeln**           | Regeldefinitionen und Bereitstellungsstatus anzeigen      | Regeln erstellen, bearbeiten, bereitstellen und löschen  |
| **Sensoren**         | Sensor-Metrikdefinitionen und Vorlagen anzeigen           | Sensorvorlagen erstellen und ändern                      |
| **Benutzer**         | Benutzerliste und Profildaten anzeigen                    | Benutzer einladen, aktualisieren und entfernen           |

**Prinzip der geringsten Berechtigung:** gewähren Sie nur die Berechtigungsbereiche, die eine Integration tatsächlich verwendet — ein Skript, das die Gerätekonfiguration liest, benötigt nur *Geräte: Lesen*, nicht *Geräte: Schreiben* oder einen beliebigen Organisationsbereich. Eine enge Begrenzung der Berechtigungen verringert den Einfluss, falls ein Schlüssel jemals offengelegt wird.

***

## API-Schlüsseltabelle

Auf der Seite „API-Schlüssel“ werden alle Schlüssel Ihrer Organisation aufgelistet. Die Tabellenspalten sind:

| Spalte                    | Beschreibung                                                                                                                                               |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**                  | Die Bezeichnung, die bei der Erstellung vergeben wurde.                                                                                                    |
| **Schlüsselpräfix**       | Ein kurzer Präfix des Schlüsselwerts — genug, um zu bestätigen, dass Sie den richtigen Schlüssel betrachten, ohne das vollständige Geheimnis preiszugeben. |
| **Berechtigungsbereiche** | Berechtigungschips, die die diesem Schlüssel gewährten Berechtigungsbereiche anzeigen.                                                                     |
| **Status**                | **Aktiv** (grün), **Rotiert** (gelb), oder **Widerrufen** (rot).                                                                                           |
| **Erstellt**              | Zeitstempel, zu dem der Schlüssel erstmals erstellt wurde.                                                                                                 |
| **Ablaufdatum**           | Das Ablaufdatum oder „Nie“, wenn kein Ablaufdatum festgelegt wurde.                                                                                        |
| **Zuletzt verwendet**     | Der Zeitstempel des neuesten authentifizierten API-Aufrufs, der diesen Schlüssel verwendet hat.                                                            |

Schlüssel werden standardmäßig nach dem neuesten zuerst sortiert. Symbole zum Rotieren und Widerrufen erscheinen nur bei aktiven Schlüsseln — ein Rotationssymbol zum Rotieren und ein Papierkorbsymbol zum Widerrufen.

***

## Rotieren eines Schlüssels

Die Rotation erzeugt einen neuen Schlüsselwert und deaktiviert den alten sofort. Der Status des alten Schlüssels ändert sich zu **Rotiert** und er kann keine Anfragen mehr authentifizieren.

Verwenden Sie Rotation regelmäßig oder immer dann, wenn ein Schlüssel möglicherweise offengelegt wurde — zum Beispiel, wenn er versehentlich protokolliert, in ein Repository eingecheckt oder über einen unsicheren Kanal geteilt wurde.

1. Klicken Sie auf das Rotationssymbol in der Schlüsselzeile, die Sie rotieren möchten.
2. Ein Bestätigungsdialog erscheint:

   > **„API-Schlüssel rotieren — Dadurch wird ein neuer Schlüssel erzeugt und der aktuelle Schlüssel '\[name]' als rotiert markiert. Der alte Schlüssel funktioniert nicht mehr.“**
3. Bestätigen Sie die Rotation.
4. Der neue Schlüsselwert wird angezeigt **einmal**. Kopieren Sie ihn sofort. Aktualisieren Sie alle Systeme, die den alten Schlüssel verwenden, bevor sie ihren nächsten API-Aufruf durchführen.

Der rotierte Schlüssel bleibt mit dem Status **Rotiert** in der Tabelle sichtbar, zu Audit-Zwecken.

***

## Widerrufen eines Schlüssels

Der Widerruf deaktiviert einen Schlüssel dauerhaft. Die Aktion kann nicht rückgängig gemacht werden.

1. Klicken Sie auf das Papierkorbsymbol in der Schlüsselzeile.
2. Ein Bestätigungsdialog erscheint:

   > **„API-Schlüssel widerrufen — Dadurch wird der API-Schlüssel '\[name]' dauerhaft widerrufen. Diese Aktion kann nicht rückgängig gemacht werden.“**
3. Bestätigen Sie den Widerruf.

Der Schlüsselstatus ändert sich zu **Widerrufen** (rot) und bleibt in der Tabelle sichtbar. Widerrufene Schlüssel können keine Anfragen authentifizieren. Sie erscheinen im Audit-Trail, sodass Sie eine vollständige Historie darüber haben, welche Schlüssel existierten und wann sie deaktiviert wurden.

***

## Erwartete Ergebnisse

Nach dem Erstellen eines Schlüssels:

* Der Schlüssel erscheint sofort in der Tabelle mit **Aktiv** Status anzeigen.
* Die **Zuletzt verwendet** Die Spalte zeigt einen Bindestrich an, bis der Schlüssel seinen ersten authentifizierten API-Aufruf ausführt, und wird dann bei jeder weiteren Verwendung aktualisiert.
* Schlüssel zeigen ein bei der Erstellung festgelegtes Ablaufdatum an; überprüfen Sie den aktuellen Schlüsselstatus in der **Status** Spalte.

***

## Fehlerbehebung

**Keine Berechtigung zum Erstellen von API-Schlüsseln:** Die Verwaltung von API-Schlüsseln erfordert ausreichende Zugriffsrechte in Ihrer Organisation. Wenden Sie sich an den Administrator Ihrer Organisation, wenn die **API-Schlüssel erstellen** Schaltfläche nicht verfügbar ist.

**Schlüssel ging vor dem Kopieren verloren:** Der vollständige Schlüsselwert kann nicht wiederhergestellt werden. Klicken Sie auf **Rotieren** in der Schlüsselzeile, um einen neuen Wert zu erzeugen. Aktualisieren Sie alle Integrationen mit dem neuen Schlüssel.

**Integration gibt Authentifizierungsfehler zurück:**

* Stellen Sie sicher, dass der Schlüsselstatus **Aktiv** (nicht rotiert oder widerrufen).
* Prüfen Sie, ob der Schlüssel sein Ablaufdatum überschritten hat.
* Vergewissern Sie sich, dass die Integration den richtigen Schlüsselwert verwendet — vergleichen Sie das in der Tabelle angezeigte Präfix mit dem Präfix des verwendeten Schlüssels.
* Stellen Sie sicher, dass der Schlüssel über den für die ausgeführte Operation erforderlichen Berechtigungsbereich verfügt. Ein *Geräte: Lesen*Nur-Lese-Schlüssel schlägt bei Schreibvorgängen fehl.

**Widerrufener oder rotierter Schlüssel akzeptiert dennoch Anfragen:** Änderungen werden sofort wirksam. Wenn eine Integration nach dem Widerruf scheinbar weiterhin authentifiziert wird, vergewissern Sie sich, dass sie nicht einen anderen Schlüssel oder eine zwischengespeicherte Sitzung verwendet.

***

## Best Practices

* **Geringste Berechtigung** — Gewähren Sie nur die Berechtigungsbereiche, die jede Integration tatsächlich verwendet. Prüfen Sie regelmäßig.
* **Nach Zweck benannt** — Verwenden Sie Namen wie „Warehouse-Sync-Prod“, „Audit-Export-Script“ oder „CI-Pipeline-Staging“, damit jedes Teammitglied auf einen Blick den Besitzer und die Rolle des Schlüssels erkennen kann.
* **Ablaufdaten für temporären Zugriff festlegen** — Integrationen von Auftragnehmern, Proof-of-Concept-Skripte und zeitlich begrenzte Projekte sollten immer ein Ablaufdatum haben. Das erspart Ihnen, den Widerruf manuell im Auge behalten zu müssen.
* **Regelmäßig rotieren** — Betrachten Sie Rotation als routinemäßige Wartung und nicht als Incident Response. Ein vierteljährlicher Rotationszyklus ist eine vernünftige Basis für Produktionsschlüssel.
* **In einem Secrets Manager speichern** — Vermeiden Sie es unbedingt, Schlüssel im Quellcode, in Konfigurationsdateien oder in Umgebungsvariablen fest zu codieren, die in die Versionsverwaltung eingecheckt werden. Verwenden Sie einen Secrets Manager oder Vault und injizieren Sie sie zur Laufzeit.
* **Ein Schlüssel pro Integration** — Separate Schlüssel bedeuten, dass Sie den Zugriff für ein System widerrufen können, ohne andere zu beeinträchtigen. Geteilte Schlüssel vervielfachen die Auswirkungen jedes einzelnen Kompromisses.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kiloiot.io/kilo-docs-de/kilo-iot-server/settings/api-keys.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
