Διεπαφές ανά ρόλο και πρόσβαση
1) Αρχές
1. Ασφάλεια = αποστολή UX. Ο χρήστης πρέπει να κατανοήσει σαφώς τι μπορεί και τι δεν μπορεί να κάνει χωρίς «γκρίζες περιοχές».
2. Ελάχιστα αναγκαία δικαιώματα. Από την επίδειξη έως τις ενέργειες, τα πάντα περιορίζονται σε καθήκοντα ρόλων.
3. Σήμα αντί απαγόρευσης. Εάν δεν υπάρχει πρόσβαση, εξηγούμε τους λόγους και τον τρόπο πρόσβασης (αίτημα, αίτηση, κατάρτιση).
4. Επανάληψη στον εξυπηρετητή. Οι φρουροί UI δεν αντικαθιστούν ποτέ τους ελέγχους διακομιστή.
5. Διαφανής έλεγχος. Κάθε ευαίσθητη ενέργεια αφήνει ευανάγνωστο σήμα.
2) Μοντέλα ελέγχου πρόσβασης
RBAC (Role-Based): σταθεροί ρόλοι: παίκτης, υποστήριξη, χρηματοδότηση, κίνδυνος/συμμόρφωση, διαχειριστής θυγατρικών, συντονιστής, admin.
ABAC (με βάση το χαρακτηριστικό): πολιτική βάσει χαρακτηριστικών (δικαιοδοσία, εμπορικό σήμα, ζώνη ώρας, επίπεδο VIP, ομάδα, βάρδια).
REBAC (Relation-Based): πρόσβαση ανά σχέση (χειριστής παικτών, κάτοχος εισιτηρίου, διαχειριστής συνεργατών).
SoD (διαχωρισμός καθηκόντων) - διαχωρισμός κρίσιμων καθηκόντων (που δημιουργούνται ≠ εγκρίνονται).
Πρακτική: RBAC ως βάση, ABAC για την εξομάλυνση των ßραχυχρόνιων διακυμάνσεων της ρευστότητας (εμπορικό σήμα/περιφέρεια), SoD για τη χρηματοδότηση/όρια, ReBAC - σημείο (επιμελημένα χαρτοφυλάκια).
3) Χάρτης λειτουργιών ανά ρόλο (παράδειγμα iGaming)
4) Πρότυπα UX για τα δικαιώματα και τους ρόλους
4. 1 Πλοήγηση και ορατότητα
Απόκρυψη μη προσβάσιμων τμημάτων από τη ναυσιπλοΐα (μείωση θορύβου), αλλά εμφάνιση ενημερωτικών «κενών» καρτών εάν αυτό βοηθά στην κατανόηση των δυνατοτήτων.
Για προσωρινά μη διαθέσιμα - «Κλειδώστε» με μια ένδειξη: λόγος, απαιτήσεις, CTA «Πρόσβαση αιτήματος».
4. 2 Κράτη δράσης
Αναπηρία + εργαλειοθήκη: "Απαιτούμενος χρηματοδοτικός ρόλος. Αναζήτηση πρόσβασης.
Λειτουργία μόνο ανάγνωσης: πεδία «κάτω από το γυαλί», ρητή ένδειξη «Μόνο ανάγνωση».
Κλιμάκωση - Κάντε κλικ για έγκριση αντί για εφαρμογή.
4. 3 Κάλυψη και επεξεργασία
PII (ηλεκτρονικό ταχυδρομείο, τηλέφωνο, διεύθυνση) - «χρήστης @»., «+ 380 90» για τα αρχεία άλλων ανθρώπων.
PAN/IBAN - μόνο μάρκες/τελευταία 4.
Εμφάνιση πλήρους πλήκτρου ασυρμάτου - ιδιοκτήτης μόνο/ανά ελεγκτική εκδήλωση.
5) Αρχιτεκτονική αδειοδότησης σε UI
Πλαίσιο πολιτικής για τον πελάτη: μνήμη αδείας (TTL σύντομη) + συνδρομή σε επικαιροποιήσεις.
Οδοφράκτες: απρόσιτες διαδρομές → 403 σελίδων με επεξήγηση και CTA.
Φρουροί συστατικών: 'Can ({action:' agree _ inside ', resource:' payout '})'.
Ficheflags: πειραματικά/εποχιακά πράγματα - χωριστά από τα δικαιώματα.
tsx type Permission = string; // 'payout.approve', 'kyc.view_masked'
type Policy = { has:(p:Permission)=>boolean };
const PolicyCtx = React.createContext<Policy>({ has:()=>false });
export const Can: React.FC<{perm:Permission, children:React.ReactNode, fallback?:React.ReactNode}>
= ({perm, children, fallback=null}) => {
const { has } = React.useContext(PolicyCtx);
return has(perm)? <>{children}</>: <>{fallback}</>;
};
6) Εξυπηρετητής> Πελάτης
Οποιαδήποτε ενέργεια επιβεβαιώνεται από τον εξυπηρετητή με ένα σύμβολο με σήματα (ρόλο, χαρακτηριστικά).
Οι πολιτικές είναι συγκεντρωτικές (PDP/OPA/Cedar/Zanzibar-like), το UI παίρνει μόνο τη λύση.
Όλες οι κρίσιμες λειτουργίες - επιβεβαίωση δύο παραγόντων + έλεγχος.
7) Συγκάλυψη και κόκκινες ζώνες δεδομένων
Κατηγορίες δεδομένων:- PII: όνομα, email, τηλέφωνο, διεύθυνση, ημερομηνία γέννησης.
- Χρηματοδότηση: PAN/IBAN/crypto πορτοφόλια, ποσά, όρια, bonus υπόλοιπα.
- Έγγραφα: διαβατήρια/ταυτότητα/selfies (KYC).
- Τυχερά παιχνίδια: Ιστορία στοιχημάτων/κέρδη/μοτίβα.
- Πλήρης - ιδιοκτήτης/ιδιοκτήτης δίσκου.
- Μασκοφόρος - στήριξη, χρηματοδότηση (όχι ιδιοκτήτης).
- Συγκεντρωτικά - Αναλυτικά (χωρίς ταυτότητες).
tsx function Redact({text, perm}:{text:string, perm:Permission}){
const { has } = React.useContext(PolicyCtx);
return <span>{has(perm)? text: text.replace(/.(?=.{4})/g,'•')}</span>;
}
8) Εγκρίσεις και ροές SoD
Τέσσερα μάτια: εκκινητής ≠ εγκριτής.
Διαδρομές πολλαπλών σταδίων (για παράδειγμα, ποσά> X → 2η γραμμή).
Ισχύς των αιτήσεων, SLA, κλιμάκωση.
Περιοδικό: ποιος δημιούργησε, ποιος άλλαξε, ποιος ενέκρινε, πότε και από πού.
Παραδείγματα: επιβεβαίωση της απόσυρσης, αλλαγή στα όρια των παικτών, ετυμηγορία KYC, αφαίρεση της σημαίας κυρώσεων.
9) Οι ιδιαιτερότητες του iGaming
Όρια και αυτοαποκλεισμός: αλλαγή μόνο με SoD και υποχρεωτική κοινοποίηση χρήστη.
KYC/AML: πρόσβαση σε έγγραφα - στενός ρόλος· προεπισκόπηση των εικόνων επισκόπησης, πλήρες μέγεθος - με ξεχωριστή δράση με το ημερολόγιο.
Κυρώσεις/Σημαίες RAP: ορατές στην ομάδα κινδύνου. υποστήριξη - μόνο το καθεστώς «χρειάζεται επαλήθευση».
Πληρωμές/Εκροές: Μετά/Απόρριψη - Λογιστικός ρόλος μόνο ποσά που υπερβαίνουν το όριο - διπλή επιβεβαίωση.
Αρχεία καταγραφής στοιχημάτων: Η υποστήριξη διαβάζει αλλά δεν επεξεργάζεται. προσαρμογές - ξεχωριστή λειτουργία με έρευνα.
10) Εντοπισμός, A11y, RTL
Τα κείμενα «χωρίς πρόσβαση» εντοπίζονται και περιέχουν έγκυρες διαδρομές (εφαρμογή/εκπαίδευση).
Έλεγχος εστίασης: μην μεταφέρετε το χρήστη σε μια «κενή» σελίδα χωρίς εξήγηση.
Η λειτουργία RTL υποστηρίζεται για ρόλους στις αντίστοιχες περιφέρειες.
: 'aria-disabled' + εξήγηση, διαθεσιμότητα κλιμάκωσης πληκτρολογίου.
11) Όροι και σφάλματα
403 (Μη επιλέξιμη): Φιλική σελίδα με πλαίσιο ρόλων και «Πρόσβαση αιτήματος» CTA.
404 (χωρίς πόρο): μην αποκαλύπτετε την ύπαρξη κρυμμένων αντικειμένων.
413/422 (υπερβολική/επικύρωση): μην διαρρέετε λεπτομέρειες πολιτικής, διατυπώστε ουδέτερα.
Όρια/κλειδαριές ταχύτητας: Εξηγήστε την κατάσταση χρονοδιακόπτη/ξεκλειδώματος.
12) Μετρήσεις
Ποσοστό άρνησης πρόσβασης: ποσοστό αστοχίας ανά ρόλο/οθόνη (κακή εκτίμηση επιπτώσεων ή σήμα πολιτικής).
SLA έγκρισης: μέσος χρόνος έγκρισης ανά ροή (έξοδος, όρια, KYC).
Μάσκα Αποκάλυψη Γεγονότων: Ποσοστό «αποκάλυψης» PII (αναμενόμενο μικρό και δικαιολογημένο).
Σφάλμα προς επίλυση: χρόνος από το 403 έως την παραχωρούμενη πρόσβαση.
Ελάχιστο προνόμιο: ρόλοι με περιττά δικαιώματα (ανιχνευσιμότητα με χρήση).
13) Αντι-μοτίβα
Απόκρυψη σφαλμάτων κάτω από το «τίποτα δεν συνέβη».
Εμφάνιση κενών κουμπιών χωρίς εξήγηση.
Μάσκα τον ιδιοκτήτη με τα δικά του δεδομένα.
Βασιστείτε σε φρουρούς UI χωρίς πολιτικές διακομιστή.
Αναμειγνύονται οι ficheflags με πρόσβαση (διαφορετικές εργασίες).
Δώστε την υποστήριξη «god-mode» για λόγους ευκολίας.
14) Μάρκες συστήματος σχεδιασμού (παράδειγμα)
json
{
"access": {
"badge": { "viewer":"#607D8B", "editor":"#4CAF50", "approver":"#FF9800", "admin":"#9C27B0" },
"lockColor": "#9E9E9E",
"maskChar": "•"
},
"states": {
"noAccess": { "bg":"var(--bg-elev)", "border":"var(--border)", "icon":"#9E9E9E" },
"approval": { "pending":"#FFC107", "approved":"#4CAF50", "rejected":"#F44336" }
},
"a11y": { "ariaDisabled": true, "explainDenial": true }
}
15) Snippets UI
Φύλακας διαδρομής:tsx import { Navigate, Outlet } from 'react-router-dom';
function GuardedRoute({perm}:{perm:Permission}){
const { has } = React.useContext(PolicyCtx);
if (has(perm)) return <Outlet/>;
return <Navigate to={`/403?perm=${encodeURIComponent(perm)}`} replace/>;
}
Χωρίς κάρτα πρόσβασης με CTA:
html
<article class="no-access">
<h3>Недостаточно прав</h3>
<p>Доступ к разделу «Выплаты» доступен ролям: Финансы/Админ.</p>
<button class="btn" data-open-request>Запросить доступ</button>
</article>
Ημερολόγιο ελέγχου (συντομογραφία):
json
{
"ts": "2025-11-03T18:45:12Z",
"actor": "u_5412",
"action": "payout.approve",
"target": "withdraw#w_91822",
"ip": "194...12",
"result": "success"
}
16) Κατάλογος ελέγχου QA
Ναυσιπλοΐα και ΕΑ
- Μη διαθέσιμα τμήματα δεν κάνουν θόρυβο στο μενού.
- Υπάρχουν σαφείς σελίδες/κάρτες «χωρίς πρόσβαση» με CTA.
Ενέργειες και φρουροί
- Κουμπιά χωρίς δικαιώματα - «άτομα με ειδικές ανάγκες» + εργαλειοθήκη/κείμενο.
- Προστατευόμενες διαδρομές· Direct URL → 403 με εξήγηση.
- Ο εξυπηρετητής επιβεβαιώνει κάθε ενέργεια.
Δεδομένα
- PII/PAN/KYC καλύπτονται από πολιτική.
- Οι καταχωρίσεις «γνωστοποιήσεων» συντάσσονται και επανεξετάζονται.
- Οι εξαγωγές/εκθέσεις αντιστοιχούν στον ρόλο (συγκεντρωτικά στοιχεία για ανάλυση).
SoD/Εγκρίσεις
- Ο αιτών δεν μπορεί να εγκρίνει την αίτησή του.
- Κατώτατα όρια → διαδρομές πολλαπλών σταδίων.
А11у/Localization
- «Δεν υπάρχει πρόσβαση». εργασίες πλοήγησης πληκτρολογίου.
- Οι δακτύλιοι αντίθεσης/εστίασης αντιστοιχούν σε ΑΑ.
Αξιοπιστία
- Μνήμη αδείας με σύντομο TTL. αναπηρία κατά την αλλαγή ρόλων.
- πτώση PDP → ο UI βρίσκεται σε κατάσταση ασφαλείας εξ ορισμού.
17) Τεκμηρίωση στο σύστημα σχεδιασμού
: "GuardingRoute", "Can", "NoAccessCard", " Banner", "Redac .
Πολιτικές: ρόλος/πίνακας δράσης, κανόνες SoD, επίπεδα συγκάλυψης.
Διαδικασία: αίτηση πρόσβασης, κατάρτιση/πιστοποίηση ρόλων, αναθεώρηση δικαιωμάτων κάθε εβδομάδα N.
Do/Don 't gallery: «κενά κουμπιά χωρίς λόγο», «μεταμφίεση στον ιδιοκτήτη», «UI χωρίς έλεγχο διακομιστή» έναντι «εξηγημένοι περιορισμοί και CTA».
Σύντομη περίληψη
Οι διεπαφές ρόλων είναι σαφής αρχιτεκτονική πληροφοριών + αυστηρές πολιτικές + φιλικές εξηγήσεις. Δείξτε μόνο ό, τι χρειάζεστε, αποκρύψτε ευαίσθητα δεδομένα, προστατεύετε διαδρομές και ενέργειες με φρουρούς, καταγράφετε κάθε κρίσιμο γεγονός στον έλεγχο και μοιράζεστε τις ευθύνες όπου επηρεάζει τα χρήματα και τη συμμόρφωση. Στο iGaming, αυτό όχι μόνο μειώνει τους κινδύνους, αλλά και κάνει τις ομάδες γρηγορότερες και πιο ήρεμες.