rtCloud podržava tri pristupa za jedinstvenu prijavu (SSO):

OpcijaNajpogodnije za
Ugrađeni KeycloakOrganizacije koje žele potpuno samoobuhvatan SSO server priložen sa rtCloud-om
Spoljni OIDC pružalacOrganizacije koje već koriste pružaoca identiteta (Auth0, Authentik, Okta, Supabase, itd.)
Azure Active DirectoryOrganizacije koje koriste Microsoft 365 ili Azure AD

Bez konfigurisanog SSO sistema, korisnici se prijavljuju lokalnim rtCloud nalozima upravljanim putem administratorskog panela.


Ugrađeni Keycloak

Primena uključuje opcioni Keycloak kontejner koji radi paralelno sa rtCloud-om. Keycloak je unapred konfigurisan sa rtSurvey realmom i spreman za upotrebu.

Zahtevi

  • Naziv domena sa HTTPS-om (Keycloak zahteva HTTPS u produkciji)
  • Najmanje 4 GB RAM na serveru (Keycloak dodaje ~512 MB potrošnje memorije)

Podešavanje

1. Konfigurišite promenljive okruženja u .env:

  # Aktivirajte ugrađeni Keycloak kontejner
EMBED_KEYCLOAK=true

# Keycloak URL-ovi — koristite vaš stvarni domen
KEYCLOAK_URL=https://rtcloud.example.com/auth
KC_HOSTNAME=https://rtcloud.example.com/auth
KC_HOSTNAME_STRICT=false

# Podešavanja realma i klijenta (odgovaraju uvezenom realm JSON-u)
KEYCLOAK_REALM=rtsurvey
KEYCLOAK_CLIENT_ID=rtsurvey-app
KEYCLOAK_CLIENT_SECRET=your-client-secret-here

# Keycloak administratorski akreditivi
KEYCLOAK_ADMIN_USER=admin
KEYCLOAK_ADMIN_PASSWORD=change_me_keycloak_admin_password

# Keycloak baza podataka (automatski se kreira)
KEYCLOAK_DB=keycloak
KEYCLOAK_DB_USER=keycloak
KEYCLOAK_DB_PASSWORD=change_me_keycloak_db_password

# Port na kome Keycloak sluša (na strani hosta, proksirano od strane Nginx-a)
KEYCLOAK_PORT=8091
  

2. Pokrenite sa ugrađenim Keycloak profilom:

  docker compose -f docker-compose.production.yml --profile embed-keycloak up -d
  

3. Proverite da je Keycloak zdrav:

  docker compose -f docker-compose.production.yml ps
  

Kontejner rtcloud-keycloak treba da prikaže Up (healthy) nakon 2–3 minuta.

4. Pristupite Keycloak administratorskoj konzoli:

  https://rtcloud.example.com/auth/admin
  

Prijavite se sa KEYCLOAK_ADMIN_USER i KEYCLOAK_ADMIN_PASSWORD.

Šta je unapred konfigurisano

Ugrađeni Keycloak počinje sa unapred uvezenim realmom rtsurvey koji uključuje:

  • Konfiguraciju klijenta za veb aplikaciju
  • Podrazumevane korisničke uloge (admin, project_manager, enumerator, analyst)
  • Podešavanja sesija i tokena optimizovana za rtSurvey

Možete dodavati korisnike direktno u Keycloak administratorskoj konzoli ili povezati Keycloak sa upstream pružaocem identiteta (LDAP, SAML).

Nginx rutiranje

Kada koristite skripte za primenu u oblaku, Nginx je konfigurisan da proksira oba servisa:

PutanjaPozadinski servis
/rtCloud aplikacija na 127.0.0.1:8080
/auth/Keycloak na 127.0.0.1:8090

Spoljni OIDC pružalac

Povežite rtCloud sa bilo kojim OpenID Connect-kompatibilnim pružaocem identiteta. Ovaj pristup ne zahteva Keycloak kontejner.

Podržani pružaoci

Svaki OIDC-usklađeni pružalac funkcioniše, uključujući:

  • Authentik
  • Auth0
  • Okta
  • Keycloak (eksterna instanca)
  • Supabase
  • Google (za Google Workspace organizacije)
  • GitHub (putem OAuth aplikacija sa OIDC ekstenzijom)

Podešavanje

1. Registrujte rtCloud kao OIDC klijenta kod vašeg pružaoca identiteta.

Biće vam potrebni:

  • ID klijenta i tajna klijenta
  • Registracija URI za preusmeravanje: https://rtcloud.example.com/auth/callback
  • Za podršku mobilne aplikacije, takođe registrujte: vn.rta.rtsurvey.auth://callback

2. Konfigurišite promenljive okruženja u .env:

  # OIDC URL za otkrivanje (specifičan za pružaoca — proverite dokumentaciju vašeg IdP-a)
OIDC_ISSUER_URL=https://your-identity-provider.com

# Akreditivi klijenta od vašeg pružaoca identiteta
OIDC_CLIENT_ID=rtcloud-app
OIDC_CLIENT_SECRET=your-client-secret-here

# Opsezi za zahtevanje (openid, profile i email su obično dovoljni)
OIDC_SCOPE=openid profile email

# URI za preusmeravanje registrovan kod vašeg pružaoca identiteta
OIDC_REDIRECT_URI=https://rtcloud.example.com/auth/callback

# Opciono: poseban klijent mobilne aplikacije
OIDC_MOBILE_CLIENT_ID=rtcloud-mobile
OIDC_MOBILE_REDIRECT_URI=vn.rta.rtsurvey.auth://callback

# Postavite na true da automatski kreirate rtCloud naloge za nove OIDC korisnike
OPEN_REGISTRATION=false
  

3. Ponovo pokrenite kontejner aplikacije da primenite izmene:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

Automatsko obezbeđivanje korisnika

Kada je OPEN_REGISTRATION=true, rtCloud automatski kreira lokalni nalog prvi put kada se korisnik prijavi putem OIDC-a. Nalog se popunjava imenom i email adresom korisnika iz ID tokena.

Kada je OPEN_REGISTRATION=false (podrazumevano), rtCloud administrator mora najpre kreirati korisnički nalog, a OIDC identitet se povezuje pri prvoj prijavi.

Prilagođene krajnje tačke

Ako vaš pružalac ne podržava OIDC otkrivanje (.well-known/openid-configuration), možete ručno postaviti krajnje tačke:

  OIDC_AUTHORIZATION_ENDPOINT=https://your-provider.com/oauth2/authorize
OIDC_TOKEN_ENDPOINT=https://your-provider.com/oauth2/token
OIDC_USERINFO_ENDPOINT=https://your-provider.com/oauth2/userinfo
  

Azure Active Directory

Integrirajte rtCloud sa Azure AD zakupcem vaše organizacije.

Podešavanje

1. Registrujte novu aplikaciju na Azure portalu:

  • Idite na Azure Active DirectoryRegistracije aplikacijaNova registracija
  • Ime: rtCloud
  • URI za preusmeravanje: https://rtcloud.example.com/auth/callback (Veb tip)
  • Nakon kreiranja, zabeležite ID aplikacije (klijenta) i ID direktorijuma (zakupca)
  • Pod Sertifikati i tajne, kreirajte novu tajnu klijenta

2. Konfigurišite promenljive okruženja u .env:

  AZURE_CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AZURE_TENANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  

3. Ponovo pokrenite kontejner aplikacije:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

Korisnici u vašem Azure AD zakupcu sada se mogu prijaviti na rtCloud koristeći Microsoft akreditive.


Deaktiviranje SSO sistema

Da biste se vratili na lokalnu autentifikaciju, uklonite ili zakomentarišite sve SSO-vezane promenljive iz .env, zatim ponovo pokrenite kontejner aplikacije:

  docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
  

Ako ste koristili ugrađeni Keycloak, zaustavite ga izostavljanjem oznake --profile embed-keycloak i pokretanjem docker compose down praćenog sa up -d bez profila.

Da li je ova stranica bila korisna?