Zum Inhalt springen
Guide

KI-Agenten rufen Ihre API auf: 5 Authentifizierungsfehler, die Hintertüren schaffen

| 9 min read

80 % der Teams setzen KI-Agenten in der Produktion ein, aber nur 22 % behandeln sie als unabhängige Identitäten. Fünf Authentifizierungsfehler, die Ihre API in eine offene Tür verwandeln.

Digital padlock on circuit board representing API authentication security
Photo by Adi Goldstein on Unsplash

Eine Umfrage unter mehr als 900 Praktikern aus dem Jahr 2026 ergab, dass 80,9 % der Ingenieurteams KI-Agenten in Tests oder Produktion einsetzen. Dieselbe Umfrage ergab, dass nur 21,9 % diese Agenten als unabhängige identitätstragende Einheiten betrachten. Der Rest teilt sich Anmeldeinformationen, überspringen Sie Audit-Trails und gewähren Sie pauschalen API-Zugriff auf Code, der unbeaufsichtigt ausgeführt wird.

Diese Lücke ist ein Sicherheitsproblem. OWASP hat seine Top 10 für Agentenanwendungen im Jahr 2026 sowie Toolmissbrauch und -missbrauch veröffentlicht Privilege Escalation führt die Liste mit 520 gemeldeten Vorfällen an. Meta dokumentierte einen abtrünnigen KI-Agenten, der alle bestanden hat Identitätsprüfung, da darin gültige Anmeldeinformationen aus einem verwirrenden Stellvertreterszenario enthalten waren. 48,9 % der Unternehmen können das nicht Sie können sogar sehen, was ihre Agenten mit dem API-Zugriff machen.

In diesem Beitrag werden die fünf Authentifizierungsfehler behandelt, die Ihre API zu einer offenen Tür für KI-Agenten machen, und wie Sie jeden einzelnen schließen können eine mit funktionierendem Code.

Fehler 1: Teilen eines einzigen API-Schlüssels für alle Agenten

44 % der Teams verwenden statische API-Schlüssel für KI-Agenten. Wenn mehrere Agenten einen Schlüssel teilen, verlieren Sie drei Dinge: Audit Trails (Welcher Agent hat diese Anfrage gestellt?), granulare Sperrung (die Sperrung eines Agenten tötet sie alle) und Ratenbegrenzung pro Agent (ein außer Kontrolle geratener Agent erschöpft das Kontingent für jeden Agenten).

# Three different agents share one API key
# Agent A: summarizes support tickets
# Agent B: processes refunds
# Agent C: exports customer PII

curl -X POST https://api.acme.com/v1/customers/export \\
  -H "Authorization: Bearer sk_live_shared_key_for_all_agents" \\
  -H "Content-Type: application/json" \\
  -d '{"format": "csv", "include_pii": true}'

# Which agent made this request? You can't tell.
# Need to revoke Agent C? You break A and B too.

Die Lösung: Vergeben Sie pro Agent einen eindeutigen Berechtigungsnachweis. Jeder Schlüssel ist einer bestimmten Agentenidentität zugeordnet, einem definierten Bereich von Endpunkte und ein eigenes Ratenlimit. Wenn Sie Agent C widerrufen müssen, laufen die Agenten A und B weiter.

# Each agent gets its own scoped API key
curl -X POST https://api.acme.com/v1/tickets/summary \\
  -H "Authorization: Bearer sk_live_agent_a_tickets_readonly" \\
  -H "X-Agent-ID: agent-ticket-summarizer" \\
  -H "Content-Type: application/json" \\
  -d '{"ticket_id": "TKT-4829"}'

Benutzen Sie die X-Agent-ID -Header neben dem API-Schlüssel, sodass Ihre Protokolle Anfragen immer einem zuordnen spezifischer Agent. Entschlüsseln Sie das Token, um zu überprüfen, ob seine Ansprüche mit dem Agenten übereinstimmen, der den Anruf tätigt.

# Inspect what permissions an agent token carries
curl -s -X POST https://api.botoi.com/v1/jwt/decode \\
  -H "Content-Type: application/json" \\
  -d '{"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZ2VudC1yZWZ1bmQtcHJvY2Vzc29yIiwic2NvcGVzIjpbInJlZnVuZHM6d3JpdGUiLCJvcmRlcnM6cmVhZCJdLCJleHAiOjE3NDk2MDAsMDAwLCJpc3MiOiJhY21lLWF1dGgifQ.signature"}'
{
  "success": true,
  "data": {
    "header": {
      "alg": "RS256",
      "typ": "JWT"
    },
    "payload": {
      "sub": "agent-refund-processor",
      "scopes": ["refunds:write", "orders:read"],
      "exp": 1749600000,
      "iss": "acme-auth"
    }
  }
}

Das verwirrte Stellvertreterproblem: Metas Vorfall mit einem Schurkenagenten ereignete sich, weil der Agent festgehalten hatte gültige Anmeldeinformationen, die Zugriff über den vorgesehenen Umfang hinaus gewährten. Der Agent hat jede Identitätsprüfung bestanden. Die Die Anmeldeinformationen waren legitim. Das Problem bestand darin, dass niemand sie auf den Zweck des Agenten abgrenzte.

Fehler 2: Gewähren des vollständigen API-Zugriffs, wenn ein Agent einen Endpunkt benötigt

35 % der Unternehmen verlassen sich auf Shared-Service-Konten für KI-Agenten. Ein Dienstkonto mit vollem API-Zugriff bedeutet, dass Ihr Ticketzusammenfassungsagent auch Rückerstattungen verarbeiten, Kunden-PII exportieren und Datensätze löschen kann. Das ist ein Grundsatz der Verletzung der geringsten Privilegien.

Beschränken Sie jedes Agenten-Token auf die minimal benötigten Endpunkte und Aktionen. Ein Erstattungsbearbeiter erhält refunds:write Und orders:read. Mehr nicht.

// Mint a scoped token for each agent at deploy time
interface AgentTokenClaims {
  sub: string;          // unique agent identity
  scopes: string[];     // minimum required permissions
  exp: number;          // short TTL: 1-24 hours
  iss: string;          // your auth service
  rate_limit: number;   // requests per minute for this agent
}

const agentClaims: AgentTokenClaims = {
  sub: "agent-refund-processor",
  scopes: ["refunds:write", "orders:read"],
  exp: Math.floor(Date.now() / 1000) + 3600, // 1 hour
  iss: "acme-auth",
  rate_limit: 30,
};

Überprüfen Sie vor der Bereitstellung eines Agenten, ob sein Token die richtigen Bereiche aufweist und nicht abgelaufen ist. Entschlüsseln Sie die Token mit dem Botoi JWT-Endpunkt, um die Ansprüche und die zu überprüfen is_expired Flagge.

# Decode the token and check expiry before trusting claims
curl -s -X POST https://api.botoi.com/v1/jwt/decode \\
  -H "Content-Type: application/json" \\
  -d '{
    "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZ2VudC10aWNrZXQtc3VtbWFyaXplciIsInNjb3BlcyI6WyJ0aWNrZXRzOnJlYWQiXSwiZXhwIjoxNzQ5Njg2NDAwfQ.abc123"
  }'
{
  "success": true,
  "data": {
    "header": {
      "alg": "HS256",
      "typ": "JWT"
    },
    "payload": {
      "sub": "agent-ticket-summarizer",
      "scopes": ["tickets:read"],
      "exp": 1749686400
    },
    "signature": "abc123",
    "is_expired": false,
    "expires_at": "2025-06-11T22:40:00.000Z",
    "expires_in_seconds": 3600
  }
}
Ansatz Umfangskontrolle Widerruf Audit-Trail Risiko
Gemeinsames Dienstkonto Keiner Bricht alle Agenten Keine Namensnennung Hoch
Statischer API-Schlüssel pro Agent Nur auf Schlüsselebene Pro Agent Per Schlüssel Medium
Bereichsbezogenes JWT pro Agent Endpunkt + Aktion Pro Agent + Ablauf Volle Ansprüche Niedrig
OBO-Token-Austausch Vererbt + verengt Pro Sitzung Volle Kette Am niedrigsten

Neue IAM-Lösungen für KI-Agenten unterstützen den On-Behalf-Of (OBO)-Token-Austausch. Der Agent erhält einen Token abgeleitet von der Sitzung des ursprünglichen Benutzers, automatisch auf die vom Benutzer gewährten Berechtigungen beschränkt. Dies Der Ansatz erstellt eine vollständige Autorisierungskette vom Benutzer über den Agenten bis zur API.

Fehler 3: Agenten-Anmeldeinformationen laufen nicht ab

43 % der Teams verwenden Benutzername/Passwort-Authentifizierung für KI-Agenten. Diese Anmeldeinformationen verfallen nicht. Statische API Schlüssel verfallen ebenfalls nicht, es sei denn, Sie bauen einen Ablauf in Ihr System ein. Ein Agentenausweis, der für immer Bestand hat Dabei handelt es sich um Anmeldeinformationen, die gestohlen, in Protokollen preisgegeben oder in einem Repository abgelegt und Monate später ausgenutzt werden können.

Legen Sie für Agent-Tokens eine maximale TTL von 1 bis 24 Stunden fest. Generieren Sie bei jeder Bereitstellung oder bei einem neuen Berechtigungsnachweis Zeitplan. Verwenden Sie den Botoi-Passwortgenerator, um Geheimnisse mit hoher Entropie für die HMAC-Signierung zu erstellen.

# Generate a high-entropy secret for HMAC signing
curl -s -X POST https://api.botoi.com/v1/password/generate \\
  -H "Content-Type: application/json" \\
  -d '{"length": 64, "uppercase": true, "lowercase": true, "numbers": true, "symbols": false}'
{
  "success": true,
  "data": {
    "password": "kX9mT2vR8nL4wQ6jY3bA5cF7hD1gP0sE9uI2oK4lM6nB8xZ3vC5tR7yW0qJ1aG"
  }
}

HMAC-Anfragesignierung hinzufügen

Signieren Sie über die tokenbasierte Authentifizierung hinaus jede Anforderungsnutzlast mit HMAC-SHA256. Ihre API überprüft zuvor die Signatur Bearbeitung der Anfrage. Dies beweist, dass die Nutzlast während des Transports nicht manipuliert wurde und verknüpft jede Anfrage mit einem spezifisches Agentengeheimnis.

# Sign a request payload so your API can verify the sender
PAYLOAD='{"agent_id":"agent-refund-processor","action":"refund","order_id":"ORD-7291"}'

curl -s -X POST https://api.botoi.com/v1/hash/hmac \\
  -H "Content-Type: application/json" \\
  -d "{
    \\"text\\": \\"$PAYLOAD\\",
    \\"key\\": \\"kX9mT2vR8nL4wQ6jY3bA5cF7hD1gP0sE9uI2oK4lM6nB8xZ3vC5tR7yW0qJ1aG\\",
    \\"algorithm\\": \\"sha256\\"
  }"
{
  "success": true,
  "data": {
    "hmac": "a3f8c2d1e5b7094f6d2c8a1e3b5f7d9e4c6a8b0d2f4e6c8a0b2d4f6e8c0a2b4",
    "algorithm": "sha256"
  }
}

Ihr API-Server berechnet den HMAC anhand seiner gespeicherten Kopie des Geheimnisses des Agenten neu. Wenn die Hashes übereinstimmen, wird der Anfrage ist authentisch. Wenn nicht, lehnen Sie es ab.

Automatisieren Sie die Secret-Rotation

Die manuelle Rotation lässt sich nicht skalieren, wenn Sie Dutzende Agenten ausführen. Erstellen Sie ein Rotationsskript, das ein neues generiert Secret, stellt es bereit, überprüft die Konnektivität und widerruft dann das alte.

import Botoi from "@botoi/sdk";

const botoi = new Botoi({ apiKey: process.env.BOTOI_API_KEY });

async function rotateAgentSecret() {
  // Generate a new 64-character secret
  const { data } = await botoi.password.generate({
    length: 64,
    uppercase: true,
    lowercase: true,
    numbers: true,
    symbols: false,
  });

  console.log("New secret generated. Deploy to agent, then revoke the old one.");

  // Hash the new secret for storage (never store plaintext)
  const hashed = await botoi.hash.sha256({ input: data.password });
  console.log("Hashed for DB:", hashed.data.hash);

  return { secret: data.password, hash: hashed.data.hash };
}

rotateAgentSecret();

Fehler 4: Überspringen der Anforderungsprotokollierung für Maschine-zu-Maschine-Aufrufe

48,9 % der Unternehmen sind blind für den Maschine-zu-Maschine-Verkehr. Sie protokollieren menschliche API-Aufrufe, nehmen jedoch interne Aufrufe aus Service-zu-Service-Kommunikation aus ihrem Observability-Stack. KI-Agenten geraten in diesen blinden Fleck.

Wenn sich ein Agent schlecht verhält, sendet er eine Flut von Anfragen, greift auf Endpunkte außerhalb seines Geltungsbereichs zu oder greift auf Endpunkte zu kompromittiert, müssen Sie drei Fragen beantworten: Welcher Agent hat wann und was berührt? Ohne Anfrage Protokollierung, Sie können keine davon beantworten.

// Express middleware: log every agent request
app.use("/v1/*", (req, res, next) => {
  const agentId = req.headers["x-agent-id"] || "unknown";
  const start = Date.now();

  res.on("finish", () => {
    const log = {
      timestamp: new Date().toISOString(),
      agent_id: agentId,
      method: req.method,
      path: req.path,
      status: res.statusCode,
      duration_ms: Date.now() - start,
      ip: req.ip,
      user_agent: req.headers["user-agent"],
    };
    console.log(JSON.stringify(log));
  });

  next();
});

Erfassen Sie bei jeder Anfrage die Identität des Agenten, den Endpunkt, die HTTP-Methode, den Statuscode und die Dauer. Strukturiert versenden Protokolle auf Ihrer Observability-Plattform. Legen Sie Benachrichtigungen für Anomalien fest: plötzliche Spitzen im Anfragevolumen, Anfragen an Endpunkte außerhalb des Agentenbereichs oder erhöhte Fehlerraten.

Verfolgen Sie, was der Agent sendet, nicht was er angeblich sendet. Protokollieren Sie den Hash der Anforderungsnutzlast (mit /v1/hash) neben den Metadaten. Dadurch erhalten Sie einen Manipulationsnachweis ohne Speichern sensibler Nutzlasten in Ihrem Protokollsystem.

Fehler 5: Agenten-Authentifizierung genauso behandeln wie menschliche Authentifizierung

Nur 18 % der Sicherheitsverantwortlichen sind zuversichtlich, dass ihre IAM-Systeme Agentenidentitäten verwalten können. Die anderen 82 % Bolzen Agentenzugriff auf menschliche Authentifizierungsflüsse, die nicht für autonome Anrufer konzipiert sind.

Bei der menschlichen Authentifizierung wird davon ausgegangen, dass eine Person einen OAuth-Zustimmungsbildschirm liest, ein Passwort eingibt und auf eine MFA-Eingabeaufforderung antwortet. Agenten tun nichts davon. Sie benötigen ein anderes Authentifizierungsmodell mit drei Eigenschaften.

1. Bereichsbezogene Token mit expliziten Berechtigungen

Jeder Agent-Token gibt an, welche Endpunkte er aufrufen und welche Aktionen er ausführen kann. Die API erzwingt diese Umfänge auf jede Anfrage. Kein Geltungsbereich, kein Zugriff.

2. Ratenbegrenzungen pro Identität

Ein menschlicher Benutzer sendet einige Anfragen pro Minute. Ein Agent sendet Hunderte oder Tausende. Tariflimits pro Agent Identität verhindern, dass ein Agent andere aushungert, und begrenzen den Explosionsradius, wenn ein Agent abtrünnig wird.

3. Fordern Sie auf jeder Ebene eine Namensnennung an

Jede Anfrage überträgt die Agentenidentität vom Edge-Proxy über die Anwendungsschicht zur Datenbank Abfrageprotokoll. Wenn etwas schief geht, können Sie den gesamten Weg vom Agenten bis zur Aktion verfolgen.

Prüfen Sie ein Agent-Token mit dem Botoi SDK

Kombinieren Sie die JWT- und Passwort-Endpunkte in einer einzigen Prüffunktion. Entschlüsseln Sie den Token, überprüfen Sie seinen Ablauf, Überprüfen Sie die Signatur und kennzeichnen Sie zu breite Bereiche.

import Botoi from "@botoi/sdk";

const botoi = new Botoi({ apiKey: process.env.BOTOI_API_KEY });

async function auditAgentToken(token: string, secret: string) {
  // Step 1: Decode to inspect claims
  const decoded = await botoi.jwt.decode({ token });
  const claims = decoded.data.payload;

  console.log("Agent:", claims.sub);
  console.log("Scopes:", claims.scopes);

  // Step 2: Check expiration
  const now = Math.floor(Date.now() / 1000);
  const hoursLeft = (claims.exp - now) / 3600;

  if (hoursLeft < 0) {
    console.error("Token expired", Math.abs(hoursLeft).toFixed(1), "hours ago");
    return { valid: false, reason: "expired" };
  }

  if (hoursLeft > 24) {
    console.warn("Token lives longer than 24 hours; rotate sooner");
  }

  // Step 3: Verify signature
  const verified = await botoi.jwt.verify({ token, secret, algorithms: ["HS256"] });

  if (!verified.data.valid) {
    console.error("Signature verification failed");
    return { valid: false, reason: "invalid_signature" };
  }

  // Step 4: Check scope breadth
  const dangerousScopes = claims.scopes.filter(
    (s: string) => s === "*" || s === "admin" || s.endsWith(":*")
  );

  if (dangerousScopes.length > 0) {
    console.warn("Overly broad scopes:", dangerousScopes);
  }

  return { valid: true, agent: claims.sub, scopes: claims.scopes, hoursLeft };
}

const result = await auditAgentToken(process.env.AGENT_TOKEN!, process.env.SIGNING_SECRET!);
console.log(result);

Führen Sie diese Prüfung als Schritt vor der Bereitstellung aus. Wenn das Token abgelaufen ist, eine TTL von mehr als 24 Stunden hat, schlägt die Signatur fehl Wenn eine Überprüfung erfolgt oder Platzhalterbereiche vorhanden sind, wird die Bereitstellung blockiert.

Eine Checkliste für die AI-Agent-API-Authentifizierung

Überprüfen Was zu überprüfen ist Botoi-Endpunkt
Eindeutige Identität pro Agent Keine zwei Agenten teilen sich einen Schlüssel oder Token sub beanspruchen /v1/jwt/decode
Mindestumfänge Token-Bereiche entsprechen dem Zweck des Agenten; keine Platzhalter /v1/jwt/decode
Ablauf des Tokens TTL unter 24 Stunden; Aktualisierungsmechanismus vorhanden /v1/jwt/decode
Unterzeichnung beantragen Nutzlast-HMAC-Übereinstimmungen auf der Serverseite /v1/hash/hmac
Geheime Rotation Secrets rotieren bei der Bereitstellung oder nach einem Zeitplan /v1/password/generate
Protokollierung anfordern Jede Agentenanfrage wird mit Identität und Nutzlast-Hash protokolliert /v1/hash

Die Umfragedaten sind eindeutig: Teams setzen KI-Agenten schneller ein, als sie sie sichern. 80,9 % haben Agenten im Einsatz, aber Weniger als jeder Fünfte gibt diesen Agenten eine eigene Identität. Jeder Fehler auf dieser Liste, gemeinsame Schlüssel, weite Bereiche, Permanente Anmeldeinformationen, stiller Datenverkehr, Authentifizierung in menschlicher Form – das ist eine Hintertür, die auf den nächsten verwirrten Stellvertreter wartet Vorfall.

Wählen Sie einen Fehler aus dieser Liste aus. Repariere es diese Woche. Fahren Sie dann mit dem nächsten fort.

FAQ

Sollten KI-Agenten dieselben API-Schlüssel verwenden wie menschliche Benutzer?
Nein. KI-Agenten benötigen dedizierte Anmeldeinformationen mit begrenzten Berechtigungen, Ratenbegrenzungen pro Identität und automatischem Ablauf. Eine Umfrage unter mehr als 900 Praktikern aus dem Jahr 2026 ergab, dass nur 21,9 % der Teams Agenten als unabhängige identitätstragende Einheiten behandeln und 44 % immer noch statische API-Schlüssel zwischen Agenten teilen.
Wie rotieren Sie API-Schlüssel für KI-Agenten ohne Ausfallzeiten?
Generieren Sie einen neuen Berechtigungsnachweis, stellen Sie ihn dem Agenten bereit, überprüfen Sie, ob er funktioniert, und widerrufen Sie dann den alten Schlüssel. Verwenden Sie kurzlebige Token (1–24 Stunden) mit automatischer Aktualisierung, sodass die Rotation ohne manuelle Schritte erfolgt. Der Botoi-Endpunkt /v1/password/generate erstellt Geheimnisse mit hoher Entropie und /v1/jwt/decode prüft das neue Token vor dem Überschneiden.
Was sind die OWASP Top 10 für Agentenanwendungen?
Die im Jahr 2026 veröffentlichten OWASP Top 10 für Agentenanwendungen listen die häufigsten Sicherheitsrisiken auf, wenn KI-Agenten mit APIs und Tools interagieren. Werkzeugmissbrauch und Rechteausweitung stehen mit 520 gemeldeten Vorfällen ganz oben auf der Liste. Weitere Risiken sind unzureichende Zugriffskontrolle, fehlende Prüfpfade und verwirrende Stellvertreterangriffe.
Wie überwachen Sie den API-Verkehr von Maschine zu Maschine von KI-Agenten?
Protokollieren Sie jede Anfrage mit Agentenidentität, Zeitstempel, Endpunkt und Nutzlast-Hash. Verwenden Sie strukturierte JSON-Protokolle und senden Sie sie an ein zentrales System (Datadog, Grafana oder CloudWatch). Eine Studie aus dem Jahr 2026 ergab, dass 48,9 % der Unternehmen den KI-Agentenverkehr überhaupt nicht überwachen können und somit blind für kompromittierte oder sich schlecht benehmende Agenten sind.
Was ist ein verwirrter Stellvertreterangriff im Zusammenhang mit KI-Agenten?
Ein verwirrter Stellvertreterangriff geschieht, wenn ein KI-Agent seine legitimen Anmeldeinformationen verwendet, um Aktionen auszuführen, die sein Bediener nicht beabsichtigt hat. Der Agent besteht jede Identitätsprüfung, da er über gültige Token verfügt, handelt jedoch auf Anweisungen einer nicht vertrauenswürdigen Quelle. Meta dokumentierte dieses Muster in einem Vorfall mit einem betrügerischen Agenten, bei dem der Agent auf Ressourcen zugegriffen hat, die über den vorgesehenen Umfang hinausgingen.

Starte mit botoi zu entwickeln

150+ API-Endpunkte für Abfragen, Textverarbeitung, Bildgenerierung und Entwickler-Tools. Kostenloser Tarif, keine Kreditkarte nötig.