Communitygithub.com

YepAPI/skills

RBAC-Autorisierung — Middleware-Guards, standardmäßig verweigern, Ressourcen-basierte Berechtigungsprüfungen.

Was ist skills?

Dieses Skill implementiert eine vollständige rollenbasierte Zugriffskontrolle (RBAC) für API-Endpunkte. Es stellt sicher, dass für jede Route eine Berechtigungsprüfung durchgeführt wird, wobei standardmäßig der Zugriff verweigert wird, wenn keine explizite Berechtigung vorliegt. Die Implementierung umfasst Middleware-Guards für Express-basierte Anwendungen, die nach dem Prinzip 'Deny by default' arbeiten, sowie granulare, ressourcenspezifische Prüfungen (z. B., ob ein Benutzer eine bestimmte Aktion auf eine bestimmte Ressource ausführen darf). Das Skill unterstützt eine hierarchische Rollenstruktur (admin > editor > viewer), bei der höhere Rollen die Berechtigungen der niedrigeren erben. Es bietet eine vollständige Trennung von Authentifizierung und Autorisierung und protokolliert alle Zugriffe für Audit-Zwecke. Entwickler können dieses Skill direkt in Express- oder ähnlichen Node.js-Frameworks nutzen, um eine sichere, serverseitige Autorisierung zu gewährleisten – ohne sich auf clientseitige Prüfungen zu verlassen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/YepAPI/skills/tree/HEAD/skills/rbac-authorization

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

RBAC-Autorisierung

Regeln

  • Berechtigungen auf JEDER Route mit Middleware prüfen — Autorisierung niemals optional machen
  • Standardmäßig verweigern: Wenn keine explizite Berechtigung erteilt wurde, wird der Zugriff verweigert
  • Serverseitige Durchsetzung: Das Ausblenden von UI-Elementen ist KEINE Sicherheit — auf dem Server prüfen
  • Rollenhierarchie definieren: admin > editor > viewer — höhere Rollen erben niedrigere Berechtigungen
  • Ressourcenbasierte Prüfungen: Überprüfen Sie can(user, "edit", resource) — nicht nur rollenbasierte Zugriffe
  • Alle Berechtigungsprüfungen auditieren — protokollieren, wer wann auf was zugegriffen hat, insbesondere bei Admin-Aktionen
  • Authentifizierung (Wer bist du?) von Autorisierung (Was darfst du tun?) trennen
// Hilfsfunktion für Berechtigungsprüfungen
type Action = "read" | "create" | "update" | "delete";
type Resource = { ownerId: string; [key: string]: any };

function can(user: { id: string; role: string }, action: Action, resource?: Resource): boolean {
  const permissions: Record<string, Action[]> = {
    admin: ["read", "create", "update", "delete"],
    editor: ["read", "create", "update"],
    viewer: ["read"],
  };
  const allowed = permissions[user.role];
  if (!allowed?.includes(action)) return false;
  // Ressourcenbasierte Prüfung: Editoren können nur eigene Ressourcen bearbeiten
  if (resource && action !== "read" && user.role !== "admin") {
    return resource.ownerId === user.id;
  }
  return true;
}
// Express-Middleware-Guard
function requirePermission(action: Action) {
  return (req, res, next) => {
    if (!req.user) return res.status(401).json({ error: "Nicht authentifiziert" });
    if (!can(req.user, action, req.resource)) {
      return res.status(403).json({ error: "Verboten" });
    }
    next();
  };
}

app.put("/api/posts/:id", loadResource, requirePermission("update"), updatePost);

Vermeiden

  • Berechtigungen nur in der UI prüfen — Angreifer rufen Ihre API direkt auf
  • Zugriff gewähren, solange nicht explizit verweigert — immer standardmäßig verweigern
  • Ein einzelnes isAdmin-Boolean verwenden — Rollen sollten granular und erweiterbar sein
  • Ressourcenbasierte Prüfungen vergessen — „Editor" sollte nicht bedeuten „kann den Inhalt aller bearbeiten"
  • Autorisierung bei „internen" Endpunkten überspringen — sie werden irgendwann öffentlich

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

YepAPI/skills

WCAG 2.1 AA — semantic HTML, keyboard navigation, screen readers.

YepAPI/skills

Experiment setup, variant splitting, statistical significance, and feature flag integration.

YepAPI/skills

CRUD generators, data tables, user management, role-based access, and bulk operations.

YepAPI/skills

Monitor what ChatGPT and Gemini say about your brand using YepAPI.

YepAPI/skills

Queue workers with BullMQ/Inngest/Trigger.dev, job retries, dead letter queues, concurrency.

YepAPI/skills

Commander.js, interactive prompts with Clack, spinners, colors, config files, exit codes, and npm publishing.

YepAPI/skills

cmdk integration, Cmd+K trigger, fuzzy search, grouped actions, keyboard navigation, and dynamic action registration.

YepAPI/skills

Content planning with trend and sentiment data from YepAPI.

YepAPI/skills

Content calendar, keyword-driven planning, and content briefs.

YepAPI/skills

Theme switching with CSS variables, system preference detection, next-themes, and persistence.

YepAPI/skills

Threaded comments, @mentions, reactions, moderation queue, optimistic UI, and cursor pagination.

YepAPI/skills

Competitive analysis between domains using YepAPI.

YepAPI/skills

Layout grids, KPI cards, data tables with sorting/filtering, sidebar navigation, and responsive breakpoints.

YepAPI/skills

Data encryption — TLS everywhere, AES-256-GCM for PII, bcrypt passwords, encrypted backups.

YepAPI/skills

Chart patterns with Recharts/Nivo/D3, responsive containers, color scales, and accessibility.

YepAPI/skills

Drizzle schema definition, push vs migrate, type-safe queries, relations, transactions, and prepared statements.

YepAPI/skills

Upload handling, resize/compress, CDN delivery, blur placeholders, and next/image patterns.

YepAPI/skills

Local business and Google Maps research using YepAPI.

YepAPI/skills

Cursor-based pagination, IntersectionObserver, virtualized lists with @tanstack/react-virtual, and scroll position restoration.

YepAPI/skills

Chat UI components, streaming responses with AI SDK, context window management, and RAG patterns.

Verwandte Skills