Έλεγχος ταυτότητας
Κλειδιά API (προτείνονται για ενσωματώσεις)
Ενότητα με τίτλο «Κλειδιά API (προτείνονται για ενσωματώσεις)»Ένα κλειδί API είναι ένα προσωπικό token πρόσβασης συνδεδεμένο με ένα μέλος του λογαριασμού σας.
- Δημιουργήστε ένα στις Ρυθμίσεις → Plugins → Κλειδιά API του RolChat. Το μυστικό εμφανίζεται μία φορά· στη συνέχεια είναι ορατοί μόνο οι πρώτοι δέκα χαρακτήρες του και το RolChat αποθηκεύει μόνο ένα hash SHA-256.
- Μορφή:
rcp_ακολουθούμενο από 32 τυχαία bytes σε base64url, περίπου 45 χαρακτήρες συνολικά. Το πρόθεμα κάνει ένα κλειδί αναγνωρίσιμο στα logs και διακριτό από ένα token συνεδρίας. - Scopes: επιλέγονται από σταθερό κατάλογο δυνατοτήτων κατά τη δημιουργία του κλειδιού. Ένα κλειδί δεν μπορεί ποτέ να κάνει περισσότερα από το μέλος που το δημιούργησε: σε κάθε κλήση ελέγχονται και οι δύο συνθήκες, ότι η δυνατότητα ανήκει στα scopes του κλειδιού και ότι το μέλος την έχει ακόμη. Περιορίστε τον ρόλο του μέλους και το κλειδί περιορίζεται μαζί του.
- Διάρκεια ζωής: τα κλειδιά δεν λήγουν από μόνα τους. Ανακαλέστε ένα κλειδί από τη σελίδα προφίλ ή με
DELETE /api/v1/tokens/:id· η ανάκληση ισχύει αμέσως. Δεν υπάρχει εναλλαγή επιτόπου: ανακαλέστε και δημιουργήστε νέο κλειδί. - Η δημιουργία και η ανάκληση καταγράφονται στο αρχείο ελέγχου.
Στείλτε το ως bearer token - δεν υπάρχει ξεχωριστή κεφαλίδα για κλειδί API:
curl https://api.rolchat.com/api/v1/contacts?limit=20 \ -H "Authorization: Bearer rcp_…" \ -H "X-Account-Id: 7c1d2c6e-…"Τα αιτήματα με κλειδί API plugin περιορίζονται σε 300 ανά λεπτό.
Συνεδρίες JWT
Ενότητα με τίτλο «Συνεδρίες JWT»Η web εφαρμογή και τα SDK για κινητά συνδέονται με email και κωδικό πρόσβασης (ή Google ή Apple) και λαμβάνουν ένα ζεύγος tokens.
| Token | Διάρκεια ζωής | Σημειώσεις |
|---|---|---|
| Access token | 15 λεπτά | RS256, επαληθεύεται έναντι του JWKS στο /.well-known/jwks.json |
| Refresh token | 30 ημέρες | Εναλλάσσεται σε κάθε ανανέωση· η επαναχρησιμοποίηση ενός token που έχει εναλλαγεί ανακαλεί ολόκληρη την αλυσίδα |
Claims: sub (χρήστης), acc (λογαριασμός), rl (ρόλος) και, για ρόλους ανά ιστότοπο, sts (επιτρεπόμενοι ιστότοποι).
Τα POST /auth/login, /auth/refresh, /auth/swap-company και /auth/logout είναι τα μόνα endpoints της ροής ελέγχου ταυτότητας που δεν πρέπει να φέρουν την κεφαλίδα X-Account-Id που περιγράφεται παρακάτω.
Η κεφαλίδα X-Account-Id
Ενότητα με τίτλο «Η κεφαλίδα X-Account-Id»Κάθε αίτημα με έλεγχο ταυτότητας, εκτός από τα τέσσερα παραπάνω, πρέπει να φέρει τον λογαριασμό στον οποίο ενεργεί:
X-Account-Id: <account uuid>Ο διακομιστής ελέγχει ότι η κεφαλίδα ισούται με το claim acc του token (ή με τον λογαριασμό του κλειδιού API). Η απουσία της κεφαλίδας δίνει 400 missing_required_header· η αναντιστοιχία δίνει 403 account_context_mismatch. Η κεφαλίδα υπάρχει ώστε ένα σφάλμα στον πελάτη ή ένα επαναχρησιμοποιημένο token να μην μπορεί ποτέ να διαβάσει σιωπηρά δεδομένα άλλου tenant: η αναντιστοιχία απορρίπτεται πριν εκτελεστεί οποιοδήποτε ερώτημα και κάθε γραμμή log αποδίδεται σε λογαριασμό χωρίς αποκωδικοποίηση του token.
Χρήστες πολλών εταιρειών
Ενότητα με τίτλο «Χρήστες πολλών εταιρειών»Ένα άτομο μπορεί να ανήκει σε πολλές εταιρείες. Κάθε εταιρεία έχει το δικό της token (το δικό της claim acc). Για εναλλαγή:
POST /api/v1/auth/swap-companyAuthorization: Bearer <current access token>
{ "account_id": "<target uuid>" }Ο στόχος πρέπει να είναι μία από τις available_companies του καλούντος (επιστρέφονται κατά τη σύνδεση), διαφορετικά 403 forbidden. Η απόκριση είναι ένα νέο ζεύγος access και refresh token με εμβέλεια τον στόχο· το παλιό refresh token ανακαλείται και καταγράφεται το συμβάν ελέγχου auth.account.swapped.
Έλεγχος ταυτότητας πολλών παραγόντων
Ενότητα με τίτλο «Έλεγχος ταυτότητας πολλών παραγόντων»Ο MFA βάσει TOTP μπορεί να ενεργοποιηθεί ανά μέλος και να απαιτείται ανά λογαριασμό. Όταν είναι ενεργός, το POST /auth/login επιστρέφει πρόκληση και η συνεδρία ολοκληρώνεται με POST /auth/mfa/verify. Οι εφεδρικοί κωδικοί εκδίδονται κατά την ενεργοποίηση.
Προστασία σύνδεσης
Ενότητα με τίτλο «Προστασία σύνδεσης»- Οι διαδρομές σύνδεσης περιορίζονται σε 10 προσπάθειες ανά IP ανά λεπτό και 5 ανά email ανά 15 λεπτά.
- Δέκα αποτυχημένες συνδέσεις κλειδώνουν το email για 30 λεπτά· η απόκριση φέρει
code: account_locked. - Το reCAPTCHA μπορεί να ενεργοποιηθεί ανά ενέργεια (εγγραφή, σύνδεση, επαναφορά κωδικού πρόσβασης)· η δημόσια αρχική διαμόρφωση σερβίρεται από το
GET /api/v1/captcha.