rtCloud podporuje tři přístupy k jednotnému přihlášení (SSO):

MožnostNejlepší pro
Vložený KeycloakOrganizace, které chtějí plně samostatný SSO server přibalený s rtCloud
Externí OIDC poskytovatelOrganizace, které již provozují poskytovatele identit (Auth0, Authentik, Okta, Supabase atd.)
Azure Active DirectoryOrganizace používající Microsoft 365 nebo Azure AD

Bez nakonfigurovaného SSO se uživatelé přihlašují pomocí lokálních rtCloud účtů spravovaných přes administrátorský panel.


Vložený Keycloak

Nasazení zahrnuje volitelný kontejner Keycloak, který běží vedle rtCloud. Keycloak je předkonfigurován s rtSurvey realm a připraven k použití.

Požadavky

  • Název domény s HTTPS (Keycloak vyžaduje HTTPS v produkci)
  • Alespoň 4 GB RAM na serveru (Keycloak přidává ~512 MB využití paměti)

Nastavení

1. Nakonfigurujte proměnné prostředí v .env:

  # Povolení vloženého kontejneru Keycloak
EMBED_KEYCLOAK=true

# URL Keycloak — použijte svou skutečnou doménu
KEYCLOAK_URL=https://rtcloud.example.com/auth
KC_HOSTNAME=https://rtcloud.example.com/auth
KC_HOSTNAME_STRICT=false

# Nastavení realm a klienta (odpovídají importovanému realm JSON)
KEYCLOAK_REALM=rtsurvey
KEYCLOAK_CLIENT_ID=rtsurvey-app
KEYCLOAK_CLIENT_SECRET=your-client-secret-here

# Přihlašovací údaje administrátora Keycloak
KEYCLOAK_ADMIN_USER=admin
KEYCLOAK_ADMIN_PASSWORD=change_me_keycloak_admin_password

# Databáze Keycloak (vytvoří se automaticky)
KEYCLOAK_DB=keycloak
KEYCLOAK_DB_USER=keycloak
KEYCLOAK_DB_PASSWORD=change_me_keycloak_db_password

# Port, na kterém Keycloak naslouchá (na straně hostitele, proxováno Nginx)
KEYCLOAK_PORT=8091
  

2. Spuštění s profilem vloženého Keycloak:

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

3. Ověřte, že Keycloak je zdravý:

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

Kontejner rtcloud-keycloak by měl po 2–3 minutách zobrazovat Up (healthy).

4. Přístup do administrátorské konzole Keycloak:

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

Přihlaste se pomocí KEYCLOAK_ADMIN_USER a KEYCLOAK_ADMIN_PASSWORD.

Co je předkonfigurováno

Vložený Keycloak startuje s předimportovaným realm rtsurvey, který zahrnuje:

  • Konfiguraci klienta pro webovou aplikaci
  • Výchozí uživatelské role (admin, project_manager, enumerator, analyst)
  • Nastavení relace a tokenů optimalizované pro rtSurvey

Uživatele můžete přidávat přímo v administrátorské konzoli Keycloak nebo připojit Keycloak k upstream poskytovateli identit (LDAP, SAML).

Směrování Nginx

Při použití cloudových skriptů nasazení je Nginx nakonfigurován pro proxy obou služeb:

CestaBackend
/Aplikace rtCloud na 127.0.0.1:8080
/auth/Keycloak na 127.0.0.1:8090

Externí OIDC poskytovatel

Připojte rtCloud k libovolnému poskytovateli identit kompatibilnímu s OpenID Connect. Tento přístup nevyžaduje kontejner Keycloak.

Podporovaní poskytovatelé

Funguje jakýkoliv poskytovatel kompatibilní s OIDC, včetně:

  • Authentik
  • Auth0
  • Okta
  • Keycloak (externí instance)
  • Supabase
  • Google (pro organizace používající Google Workspace)
  • GitHub (přes OAuth apps s rozšířením OIDC)

Nastavení

1. Zaregistrujte rtCloud jako OIDC klienta u vašeho poskytovatele identit.

Budete potřebovat:

  • ID klienta a tajný klíč klienta
  • Zaregistrovat redirect URI: https://rtcloud.example.com/auth/callback
  • Pro podporu mobilní aplikace zaregistrujte také: vn.rta.rtsurvey.auth://callback

2. Nakonfigurujte proměnné prostředí v .env:

  # URL pro discovery OIDC (specifické pro poskytovatele — zkontrolujte dokumentaci)
OIDC_ISSUER_URL=https://your-identity-provider.com

# Přihlašovací údaje klienta od vašeho poskytovatele identit
OIDC_CLIENT_ID=rtcloud-app
OIDC_CLIENT_SECRET=your-client-secret-here

# Rozsahy k požadování (openid, profile a email jsou obvykle dostatečné)
OIDC_SCOPE=openid profile email

# Redirect URI zaregistrovaná u vašeho poskytovatele identit
OIDC_REDIRECT_URI=https://rtcloud.example.com/auth/callback

# Volitelné: samostatný klient mobilní aplikace
OIDC_MOBILE_CLIENT_ID=rtcloud-mobile
OIDC_MOBILE_REDIRECT_URI=vn.rta.rtsurvey.auth://callback

# Nastavte true pro automatické vytvoření rtCloud účtů pro nové OIDC uživatele
OPEN_REGISTRATION=false
  

3. Restartujte kontejner aplikace pro aplikování změn:

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

Automatické provisionování uživatelů

Pokud je OPEN_REGISTRATION=true, rtCloud automaticky vytvoří lokální účet poprvé, když se uživatel přihlásí přes OIDC. Účet je naplněn jménem a e-mailem uživatele z ID tokenu.

Pokud je OPEN_REGISTRATION=false (výchozí), administrátor rtCloud musí nejprve vytvořit uživatelský účet a identita OIDC je propojena při prvním přihlášení.

Vlastní endpointy

Pokud váš poskytovatel nepodporuje OIDC discovery (.well-known/openid-configuration), můžete nastavit endpointy ručně:

  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

Integrujte rtCloud s Microsoft Azure AD tenantem vaší organizace.

Nastavení

1. Zaregistrujte novou aplikaci na Azure Portal:

  • Přejděte na Azure Active DirectoryRegistrace aplikacíNová registrace
  • Název: rtCloud
  • Redirect URI: https://rtcloud.example.com/auth/callback (typ Web)
  • Po vytvoření si poznamenejte ID aplikace (klienta) a ID adresáře (tenanta)
  • Pod Certifikáty a tajné kódy vytvořte nový tajný klíč klienta

2. Nakonfigurujte proměnné prostředí v .env:

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

3. Restartujte kontejner aplikace:

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

Uživatelé ve vašem Azure AD tenantovi se nyní mohou přihlásit do rtCloud pomocí svých Microsoft přihlašovacích údajů.


Deaktivace SSO

Pro návrat k lokální autentizaci odeberte nebo zakomentujte všechny SSO proměnné z .env, poté restartujte kontejner aplikace:

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

Pokud jste používali vložený Keycloak, zastavte ho vynecháním příznaku --profile embed-keycloak a spusťte docker compose down následované up -d bez profilu.

Byla tato stránka užitečná?