GH GambleHub

Rollenspiel-Engine

1) Berechtigungsmodelle

RBAC (Role-Based Access Control): Das Subjekt erhält Rollen, die Rollen sind mit Rechten verbunden (permissions). Einfach zu verwalten, gut für typische Aufgaben.
ABAC (Attribute-Based Access Control): Die Entscheidung hängt von den Attributen Subjekt, Ressource, Aktion und Umgebung (Zeit, IP, Region, Risiko) ab. Flexibel und skalierbar auf komplexe Regeln.
RBAC + ABAC Hybrid: Rollen geben die „Basis“ Fähigkeit, Attribute verengen sie (Bedingungen).
(Optional) ReBAC/beziehungsbasiert: Beziehungsgraph (Eigentümer, Teammitglied, Delegierter), nützlich für Dokumenten- und Orgastrukturen.

2) Architektur: PDP/PEP und Threads

PEP (Policy Enforcement Point): Anwendungsort der Lösung (API-Gateway, Backend-Methode, SQL-Layer, UI).
PDP (Policy Decision Point): Ein Dienst/eine Bibliothek, der/die' ALLOW/DENY 'anhand von Richtlinien und Attributen berechnet.
PIP (Policy Information Point): Attributquellen (IdP/Profil, Ressourcenmetadaten, Risikoabfrage, Geo).
PAP (Policy Administration Point): Administrative Schnittstelle/Policy Repository (Versionen, Entwürfe, Veröffentlichung).

Thread: Die Abfrage → PEP bildet den Kontext → PDP zieht die fehlenden Attribute nach oben (über PIP) → berechnet die Lösung → PEP wendet → Audit an (erlauben/verbieten/Felder abschneiden).

3) Datenmodell

Entitäten (Minimum):
  • `subject` (user/service) с атрибутами: `tenant_id`, `roles`, `departments`, `risk_level`, `mfa_verified`, `scopes`, `claims`.
  • „resource“ mit Typ und Attributen: „type“, „owner _ id“, „tenant _ id“, „classification“ (public/confidential), „region“, „tags“.
  • `action`: `read`, `write`, `delete`, `export`, `approve`, `impersonate` и т. п.
  • `environment`: `time`, `ip`, `device`, `geo`, `auth_strength`, `business_context` (канал, тариф).
RBAC-Teil:
  • 'roles (id, tenant_id, name, inherits [])' - Unterstützen Sie Hierarchien und Muster.
  • `permissions(id, resource_type, action, constraint?)`.
  • `role_permissions(role_id, permission_id)`.
  • 'assignments (subject_id, role_id, scope)' - scope: global/projektbezogen/objektbezogen.
ABAC-Teil (Politik):
  • `policy(id, effect=allow|deny, target: {subject, resource, action}, condition: expr, priority, version, status)`.

4) Entscheidungsgrundsätze

Deny-overrides: Explizite Verbote sind prioritärer als Genehmigungen.
Least Privilege (PoLP): Geben Sie den minimal erforderlichen Zugriff, erweitern Sie durch Bedingungen.
Trennung der Pflichten (SoD): Verbot von Rollen-/Aktionskombinationen (z. B. „Zahlung erstellt“ ≠ „aufgerollt“).
Context-aware: Stärkung der Anforderungen bei erhöhtem Risiko (kein MFA, verdächtige IP).
Determinismus: der gleiche Kontext → die gleiche Antwort; Schreiben Sie die Richtlinienversion in das Protokoll.

5) Implementierungsmuster

5. 1 Hybrid RBAC→ABAC (Konditionierung)

Rollen geben ein „Standardrecht“, ABAC-Bedingungen beschränken:
yaml
Declarative Policy Example
- id: doc_read_own effect: allow target: { action: read, resource. type: document, subject. roles: ["editor","owner"] }
condition: resource. owner_id == subject. id

- id: doc_read_team effect: allow target: { action: read, resource. type: document, subject. roles: ["editor","viewer"] }
condition: subject. team_id in resource. shared_team_ids

- id: doc_read_confidential_external effect: deny target: { action: read, resource. type: document }
condition: resource. classification == "confidential" and subject. tenant_id!= resource. tenant_id priority: 100 # deny high priority

5. 2 Row/Field-Level Security

Auf DB-Ebene: RLS-Richtlinien (von 'tenant _ id', 'owner _ id').
Auf API-Ebene: Filtern Sie Sammlungen und maskieren Sie Felder, wenn es kein 'allow: read_sensitive_fields'' gibt.

5. 3 „Step-up“ -Lösungen

Abhängigkeit von der Authentifizierungsstärke:

allow if action == "export" and subject. mfa_verified == true else deny

5. 4 Zeitliche Toleranzen

Zuschüsse mit TTL: 'Zuweisung. expires_at', „Fenster“ des Zugriffs (während der Arbeitszeit der Ressourcenregion).

6) Leistung und Caching

Entscheidungscache nach Schlüssel'(subject_hash, resource_key, Aktion, policy_version) 'mit kurzer TTL.
Edge-Cache der Attribute des Subjekts (claims im Token) + lazy-fetch der Attribute der Ressource.
Inkrementelle Invalidation: Behinderung durch Ereignisse (Rollenwechsel, Richtlinienwechsel, Übersetzung einer Ressource in „vertraulich“).
Batch-Checks: für Listen - mit einem „Filter“ (Policy-Predicate-Pushdown) auswerten, um die PDP nicht zeilenweise zu ziehen.

7) Multi-Leasing (Multi-tenant)

In jeder Tabelle „tenant _ id“; Standardrichtlinien beschränken den Zugriff innerhalb des Leasings.
Lease-Administratoren verwalten nur die Rollen/Rechte ihrer Lease.
Mietenübergreifender Zugang - ausschließlich über explizite Einladungen/Sharing mit expliziter Deny-Override.

8) Richtlinienverwaltung und Lebenszyklus

Versionierung: 'policy. version 'in der PDP-Antwort, im Audit speichern.
Umgebungen: draft → canary (Teile des Verkehrs/Schatten-Modus) → prod.
Testmatrix: Wahrheitstabellen nach Schlüsselrollen/Attributen (Vertragstests).
Change Management: Requests für Richtlinien mit Sicherheits-/Compliance-Reviews.

9) Auditierung und Beobachtbarkeit

Журнал решений: `decision_id`, `subject`, `action`, `resource_ref`, `result`, `matched_policies`, `policy_version`, `attributes_digest`.
Metriken: QPS-PDP, p95-Latenz, Cache-Hit-Rate, Deny-Anteil, Step-up-Frequenz, SoD-Vorfälle.
Traces: span auf PDP-Aufruf; Korrelation mit der API-Anforderung.
Replik: Die Fähigkeit, historische Entscheidungen auf einer neuen Version der Richtlinie (Sicherheitscheck) zu „wiederholen“.

10) Integration mit Authentifizierung und Token

Identität ist von IdP (OIDC/SAML). Token tragen ein Minimum an Attributen: 'sub', 'tenant', 'roles', 'auth _ time', 'amr', 'scopes'.
Für ABAC, ziehen Sie die „schweren“ Zeichen auf der Server-Seite (PIP), um zu vermeiden, dass das Token aufgeblasen wird.
Signierte Resource Token (Capability/Einladungen) - für streng limitierte Delegationen.

11) PDP Pseudocode (vereinfacht)

python def decide(subject, resource, action, env, policies):
matched = []
effect = "deny"
Explicit DENYs with priority for p in sorted (policies, key = lambda x: x.priority, reverse = True):
if target_matches(p. target, subject, resource, action):
if eval_condition(p. condition, subject, resource, env):
matched. append(p. id)
if p. effect == "deny":
return Decision("deny", matched, p. version)
Looking for ALLOW for p in policies:
if target_matches(p. target, subject, resource, action):
if eval_condition(p. condition, subject, resource, env):
matched. append(p. id)
effect = "allow"
break return Decision(effect, matched, max_version(matched, policies))

12) Anti-Muster

„Rolle = Seite“ (Hunderte kleiner Rollen ohne Fachbereichsmodell).
Richtlinien nur im Code ohne Versionen/Überwachung speichern.
Das Fehlen von Deny-Override und SoD → ein erhöhtes Betrugsrisiko.
Starre' user _ id '-Listen in Regeln (anstelle von Attributen/Beziehungen).
Keine Filterung auf Datenebene (RLS), wenn nur in der Benutzeroberfläche ein Filter vorhanden ist.
Synchronisation der Rollen durch manuelle Skripte ohne Ereignisse und Caches-Behinderung.

13) Fälle und Rezepte

13. 1 Feldebene Maskierung:


allow read invoice when subject. roles includes "support"
mask fields ["card_last4", "billing_email"] unless subject. role == "finance"

13. 2 Datenexport nur mit MFA:


allow export if subject. mfa_verified and env. ip in cidr("203. 0. 113. 0/24")

13. 3 SoD:


deny approve_payment if subject. performed_actions includes ("create_payment" within last 24h)

13. 4 Delegierung (eingeschränktes Token):

Der Capability-Token enthält' resource _ id', 'actions = [“ read“]', 'expires _ at', 'aud'. PEP prüft die Unterschrift und die Frist.

14) Testen

Einheitstests eines Politikers: Wahrheitstabellen für die Hauptkombinationen.
Property-based: Generieren Sie zufällige Attribute, um nach „Löchern“ zu suchen.
Golden-Tests: Fixierung einer Reihe von Lösungen für kritische Endpunkte.
Canary/Shadow: Parallele Auswertung alter und neuer Richtlinienversionen mit Protokollierung von Abweichungen.

15) Verwandte Fähigkeiten des Abschnitts „Architektur und Protokolle“

Authentifizierung und Autorisierung (OIDC/OAuth2)

Verwaltung von Einwilligungen

Tokenisierung und Schlüsselverwaltung

Beobachtbarkeit: Protokolle, Metriken, Traces

Geo-Routing und Lokalisierung

Verschlüsselung bei Rest/In Transit

16) Checkliste des Architekten

1. Sind die Themenrollen und ihre Hierarchien definiert?
2. Gibt es ein Hybridmodell: Rollen + Bedingungen auf Attributen?
3. PDP mit deny-overrides, SoD und Step-up umgesetzt?
4. Wo ist PEP? (Gateway, Backend, DB, UI) - überall einheitlich?
5. Lösungscaches und Behinderung nach Ereignissen eingerichtet?
6. Werden Politiker versioniert, getestet, im Prozess ausgerollt?
7. Sind Entscheidungsaudits, Metriken und Traces enthalten?
8. Multiarrangement und RLS/Field-Masking werden unterstützt?
9. Gibt es ein Runbook auf Vorfälle und Regression Politiker?

Schluss

RBAC sorgt für Steuerbarkeit, ABAC für Kontext und Präzision. Durch die Kombination von Rollen mit Attributbedingungen, die gemeinsame Nutzung von PDP/PEP, die Implementierung von Caching, Auditing und Richtlinientests bauen Sie die Autorisierung als Plattformfähigkeit auf: vorhersehbar, überprüfbar und skalierbar für Produkt- und Regulierungsanforderungen.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Telegram
@Gamble_GC
Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.