0Pricing
AI Agents · Lektion

Zugriffskontrolle für Tools

Tools müssen prüfen, ob der Benutzer (nicht nur der Agent) autorisiert ist — Agents sind keine Principals.

Zugriffskontrolle für Tools ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Tools sind keine Principals

Das Modell „ruft ein Tool auf“, aber die eigentliche AKTION wird von Ihrem Code ausgeführt. Der Benutzer – nicht der Agent – ist der Principal, dessen Berechtigungen entscheidend sind.

Autorisieren Sie anhand der Identität des BENUTZERS, niemals nur, weil „der Agent es entschieden hat“.

Authorise at the Tool Boundary

def refund_order(order_id, *, user):
    order = db.get_order(order_id)
    if order.customer_id != user.id and not user.is_staff:
        raise PermissionError(f'User {user.id} cannot refund order {order_id}')
    return stripe.refund(order.payment_id)

Benutzerkontext übergeben

Übergeben Sie das Benutzerobjekt an jeden Tool-Aufruf:

def dispatch(tool_call, user):
    args = json.loads(tool_call.function.arguments)
    fn = TOOLS[tool_call.function.name]
    return fn(**args, user=user)

Berechtigungen pro Tool

Definieren Sie, welche Tools jede Rolle verwenden darf:

ROLE_TOOLS = {
    'customer': ['search_orders', 'open_ticket'],
    'support': ['search_orders', 'refund_order', 'cancel_order'],
    'admin': ['*']
}

visible_tools = [t for t in ALL_TOOLS if t.name in ROLE_TOOLS[user.role] or 'admin' in ROLE_TOOLS[user.role]]

Datenzugriff einschränken

Tools, die die Datenbank abfragen, müssen den Zugriff automatisch nach Benutzer einschränken:

def search_orders(query, user):
    # NEVER let the model bypass this WHERE clause
    return db.query('SELECT * FROM orders WHERE customer_id = %s AND ...', (user.id,))

Jeden Tool-Aufruf protokollieren

Protokollieren Sie: wer, was, wann, mit welchen Argumenten und mit welchem Ergebnis. Das ist Ihre forensische Spur, wenn etwas schiefgeht:

audit_log({
    'user_id': user.id,
    'tool': tool_name,
    'args': args,
    'result_status': result.status,
    'timestamp': now()
})

Destruktive Aktionen bestätigen

Prüfen Sie auch bei autorisierten Benutzern destruktive Vorgänge doppelt:

def delete_account(user_id, confirmed=False, user=None):
    if not confirmed:
        return {'requires_confirmation': True, 'msg': 'Confirm deletion of account.'}
    db.execute('DELETE ...', (user_id,))

Tools mit OAuth-/Token-Beschränkung

Wenn Agenten im Namen eines Benutzers auf externe Dienste zugreifen, beschränken Sie OAuth-Tokens möglichst eng:

# Token only has gmail.send scope, not gmail.read
send_email = build_with_token(user_token_scoped_send)

Grenzen für Dienstkonten

Das eigene Dienstkonto des Agenten sollte nur die unbedingt erforderlichen Berechtigungen besitzen:

  • Schreibgeschützter Datenbankbenutzer für Analyse-Tools
  • S3-Buckets pro Kunde
  • VPC-isolierte Netzwerke

Rate Limits Per Tool

def ratelimit(key, per_user_per_day=10):
    counts = {}
    def decorator(func):
        def wrapper(user_id, *args, **kwargs):
            counts.setdefault(user_id, 0)
            if counts[user_id] >= per_user_per_day:
                print(f'{key}: user {user_id} rate limited')
                return None
            counts[user_id] += 1
            return func(user_id, *args, **kwargs)
        return wrapper
    return decorator

@ratelimit(key='tool:refund', per_user_per_day=2)
def refund_order(user_id, order_id):
    print(f'refunding order {order_id} for user {user_id}')
    return True

for i in range(3):
    refund_order('user1', f'order{i}')

Für Benutzer sichtbare Berechtigungsoberfläche

Zeigen Sie dem Benutzer, was der Agent in seinem Namen tun kann. Lassen Sie ihn Berechtigungen für einzelne Tools widerrufen. Das ist entscheidend für Vertrauen.

Erneute Authentifizierung für Vorgänge mit hohem Risiko

Verlangen Sie für sensible Tools eine aktuelle Authentifizierung (letzte Anmeldung < 5 Minuten zurückliegend):

if tool.is_sensitive and user.last_auth_age_seconds > 300:
    raise StaleAuthError('Please re-authenticate to perform this action.')

Autorisierung wie Code testen

Schreiben Sie Tests, die sicherstellen, dass „Benutzer A die Bestellung von Benutzer B nicht erstatten kann“ – gehen Sie niemals davon aus, dass Zugriffskontrollen funktionieren. Sie sind die häufigste Ursache für Sicherheitsfehler bei Agenten.

Autorisierungsprinzip

Wessen Berechtigungen werden geprüft, wenn der Agent ein Tool aufruft?

Zusammenfassung

Der Benutzer ist der Principal. Übergeben Sie die Benutzeridentität an jedes Tool. Schränken Sie Daten nach Benutzer ein. Protokollieren Sie jeden Aufruf. Bestätigen Sie destruktive Vorgänge. Testen Sie die Autorisierung wie Code.

Häufig gestellte Fragen

Ist die Lektion „Zugriffskontrolle für Tools“ kostenlos?

Ja — der vollständige Text von „Zugriffskontrolle für Tools“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Zugriffskontrolle für Tools“?

Tools müssen prüfen, ob der Benutzer (nicht nur der Agent) autorisiert ist — Agents sind keine Principals. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AI Agents zu starten?

Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Zugriffskontrolle für Tools“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?

Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Schutz vor Prompt Injection
  2. Ausgabefilterung (Llama Guard, NeMo)
  3. Sandbox-Ausführung für Coding-Agents
  4. Zugriffskontrolle für Tools
← Zurück zu AI Agents