Ταυτοποίηση SSO
Διαμόρφωση Ενιαίας Σύνδεσης για αυτο-φιλοξενούμενο rtCloud χρησιμοποιώντας ενσωματωμένο Keycloak, εξωτερικό πάροχο OIDC ή Azure Active Directory.
Το rtCloud υποστηρίζει τρεις προσεγγίσεις για Ενιαία Σύνδεση (SSO):
| Επιλογή | Κατάλληλο για |
|---|---|
| Ενσωματωμένο Keycloak | Οργανισμοί που θέλουν πλήρως αυτάρκη διακομιστή SSO ομαδοποιημένο με το rtCloud |
| Εξωτερικός πάροχος OIDC | Οργανισμοί που ήδη εκτελούν πάροχο ταυτοτήτων (Auth0, Authentik, Okta, Supabase κ.λπ.) |
| Azure Active Directory | Οργανισμοί που χρησιμοποιούν Microsoft 365 ή Azure AD |
Χωρίς διαμόρφωση SSO, οι χρήστες συνδέονται με τοπικούς λογαριασμούς rtCloud που διαχειρίζονται μέσω του πίνακα διαχείρισης.
Ενσωματωμένο Keycloak
Η ανάπτυξη περιλαμβάνει προαιρετικό κοντέινερ Keycloak που εκτελείται παράλληλα με το rtCloud. Το Keycloak είναι προδιαμορφωμένο με realm rtSurvey και έτοιμο για χρήση.
Απαιτήσεις
- Όνομα τομέα με HTTPS (το Keycloak απαιτεί HTTPS στην παραγωγή)
- Τουλάχιστον 4 GB RAM στον διακομιστή (το Keycloak προσθέτει ~512 MB χρήσης μνήμης)
Ρύθμιση
1. Διαμόρφωση μεταβλητών περιβάλλοντος στο .env:
# Ενεργοποίηση ενσωματωμένου κοντέινερ Keycloak
EMBED_KEYCLOAK=true
# URL Keycloak — χρησιμοποιήστε τον πραγματικό τομέα σας
KEYCLOAK_URL=https://rtcloud.example.com/auth
KC_HOSTNAME=https://rtcloud.example.com/auth
KC_HOSTNAME_STRICT=false
# Ρυθμίσεις realm και πελάτη (ταιριάζουν με εισαγόμενο JSON realm)
KEYCLOAK_REALM=rtsurvey
KEYCLOAK_CLIENT_ID=rtsurvey-app
KEYCLOAK_CLIENT_SECRET=your-client-secret-here
# Διαπιστευτήρια διαχειριστή Keycloak
KEYCLOAK_ADMIN_USER=admin
KEYCLOAK_ADMIN_PASSWORD=change_me_keycloak_admin_password
# Βάση δεδομένων Keycloak (δημιουργείται αυτόματα)
KEYCLOAK_DB=keycloak
KEYCLOAK_DB_USER=keycloak
KEYCLOAK_DB_PASSWORD=change_me_keycloak_db_password
# Θύρα ακρόασης Keycloak (πλευρά κεντρικού υπολογιστή, με μεσολάβηση Nginx)
KEYCLOAK_PORT=8091
2. Εκκίνηση με ενσωματωμένο προφίλ Keycloak:
docker compose -f docker-compose.production.yml --profile embed-keycloak up -d
3. Επαλήθευση ότι το Keycloak είναι υγιές:
docker compose -f docker-compose.production.yml ps
Το κοντέινερ rtcloud-keycloak θα πρέπει να εμφανίζει Up (healthy) μετά από 2–3 λεπτά.
4. Πρόσβαση στην κονσόλα διαχείρισης Keycloak:
https://rtcloud.example.com/auth/admin
Συνδεθείτε με KEYCLOAK_ADMIN_USER και KEYCLOAK_ADMIN_PASSWORD.
Τι είναι προδιαμορφωμένο
Το ενσωματωμένο Keycloak ξεκινά με προεισαγόμενο realm rtsurvey που περιλαμβάνει:
- Διαμόρφωση πελάτη για την εφαρμογή web
- Προεπιλεγμένους ρόλους χρηστών (
admin,project_manager,enumerator,analyst) - Ρυθμίσεις συνεδρίας και διακριτικού βελτιστοποιημένες για rtSurvey
Μπορείτε να προσθέσετε χρήστες απευθείας στην κονσόλα διαχείρισης Keycloak ή να συνδέσετε το Keycloak με upstream πάροχο ταυτοτήτων (LDAP, SAML).
Δρομολόγηση Nginx
Κατά τη χρήση των σεναρίων ανάπτυξης cloud, το Nginx διαμορφώνεται για μεσολάβηση και στις δύο υπηρεσίες:
| Διαδρομή | Backend |
|---|---|
/ | Εφαρμογή rtCloud στο 127.0.0.1:8080 |
/auth/ | Keycloak στο 127.0.0.1:8090 |
Εξωτερικός πάροχος OIDC
Σύνδεση rtCloud με οποιονδήποτε πάροχο ταυτοτήτων συμβατό με OpenID Connect. Αυτή η προσέγγιση δεν απαιτεί το κοντέινερ Keycloak.
Υποστηριζόμενοι πάροχοι
Οποιοσδήποτε πάροχος συμβατός με OIDC λειτουργεί, συμπεριλαμβανομένων:
- Authentik, Auth0, Okta, Keycloak (εξωτερική εγκατάσταση), Supabase, Google, GitHub
Ρύθμιση
1. Εγγραφή rtCloud ως πελάτη OIDC στον πάροχο ταυτοτήτων:
Θα χρειαστείτε:
- ID πελάτη και μυστικό πελάτη
- Εγγραφή URI ανακατεύθυνσης:
https://rtcloud.example.com/auth/callback - Για υποστήριξη εφαρμογής κινητού, επίσης εγγραφή:
vn.rta.rtsurvey.auth://callback
2. Διαμόρφωση μεταβλητών περιβάλλοντος στο .env:
OIDC_ISSUER_URL=https://your-identity-provider.com
OIDC_CLIENT_ID=rtcloud-app
OIDC_CLIENT_SECRET=your-client-secret-here
OIDC_SCOPE=openid profile email
OIDC_REDIRECT_URI=https://rtcloud.example.com/auth/callback
OIDC_MOBILE_CLIENT_ID=rtcloud-mobile
OIDC_MOBILE_REDIRECT_URI=vn.rta.rtsurvey.auth://callback
OPEN_REGISTRATION=false
3. Επανεκκίνηση κοντέινερ εφαρμογής:
docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
Azure Active Directory
1. Εγγραφή νέας εφαρμογής στην Πύλη Azure:
- Μεταβείτε στο Azure Active Directory → Εγγραφές εφαρμογών → Νέα εγγραφή
- Όνομα:
rtCloud - URI ανακατεύθυνσης:
https://rtcloud.example.com/auth/callback(τύπος Web)
2. Διαμόρφωση μεταβλητών στο .env:
AZURE_CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AZURE_TENANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
3. Επανεκκίνηση κοντέινερ εφαρμογής:
docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
Απενεργοποίηση SSO
Για επαναφορά στην τοπική ταυτοποίηση, αφαιρέστε ή σχολιάστε όλες τις μεταβλητές SSO από το .env, στη συνέχεια επανεκκινήστε το κοντέινερ εφαρμογής:
docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud