SSO ప్రమాణీకరణ
ఎంబెడెడ్ Keycloak, బాహ్య OIDC ప్రొవైడర్ లేదా Azure Active Directory ఉపయోగించి స్వయం-హోస్ట్ చేయబడిన rtCloud కోసం Single Sign-On కాన్ఫిగర్ చేయండి.
rtCloud Single Sign-On (SSO) కోసం మూడు విధానాలు మద్దతు ఇస్తుంది:
| ఎంపిక | అత్యుత్తమంగా |
|---|---|
| ఎంబెడెడ్ Keycloak | rtCloud తో కలిపి పూర్తిగా స్వయం-సమాహిత SSO సర్వర్ కోరుకునే సంస్థలు |
| బాహ్య OIDC ప్రొవైడర్ | ఇప్పటికే గుర్తింపు ప్రదాత (Auth0, Authentik, Okta, Supabase, మొదలైనవి) నడుపుతున్న సంస్థలు |
| Azure Active Directory | Microsoft 365 లేదా Azure AD ఉపయోగిస్తున్న సంస్థలు |
SSO కాన్ఫిగర్ చేయకుండా, వినియోగదారులు అడ్మిన్ ప్యానెల్ ద్వారా నిర్వహించబడిన స్థానిక rtCloud ఖాతాలతో లాగిన్ అవుతారు.
ఎంబెడెడ్ Keycloak
డిప్లాయ్మెంట్ rtCloud తో పక్కన నడిచే ఐచ్ఛిక Keycloak కంటైనర్ను కలిగి ఉంది. Keycloak rtSurvey realm తో ముందే కాన్ఫిగర్ చేయబడి ఉంటుంది మరియు ఉపయోగించడానికి సిద్ధంగా ఉంటుంది.
అవసరాలు
- HTTPS తో డొమైన్ పేరు (Keycloak ప్రొడక్షన్లో HTTPS అవసరం)
- సర్వర్లో కనీసం 4 GB RAM (~512 MB మెమరీ వినియోగం Keycloak కి అదనంగా)
సెటప్
1. .env లో పర్యావరణ వేరియబుల్లు కాన్ఫిగర్ చేయండి:
# ఎంబెడెడ్ Keycloak కంటైనర్ ప్రారంభించండి
EMBED_KEYCLOAK=true
# Keycloak URLs — మీ అసలు డొమైన్ ఉపయోగించండి
KEYCLOAK_URL=https://rtcloud.example.com/auth
KC_HOSTNAME=https://rtcloud.example.com/auth
KC_HOSTNAME_STRICT=false
# Realm మరియు క్లైంట్ సెట్టింగులు (దిగుమతి చేసిన realm JSON తో మ్యాచ్ చేయండి)
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 ద్వారా proxied)
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
2–3 నిమిషాల తర్వాత rtcloud-keycloak కంటైనర్ Up (healthy) చూపించాలి.
4. Keycloak అడ్మిన్ కన్సోల్ యాక్సెస్ చేయండి:
https://rtcloud.example.com/auth/admin
KEYCLOAK_ADMIN_USER మరియు KEYCLOAK_ADMIN_PASSWORD తో లాగిన్ అవండి.
ముందే కాన్ఫిగర్ చేయబడినది
ఎంబెడెడ్ Keycloak ముందే దిగుమతి చేయబడిన rtsurvey realm తో ప్రారంభమవుతుంది:
- వెబ్ అప్లికేషన్ కోసం క్లైంట్ కాన్ఫిగరేషన్
- డిఫాల్ట్ వినియోగదారు పాత్రలు (
admin,project_manager,enumerator,analyst) - rtSurvey కోసం ఆప్టిమైజ్ చేయబడిన సెషన్ మరియు టోకెన్ సెట్టింగులు
మీరు నేరుగా Keycloak అడ్మిన్ కన్సోల్లో వినియోగదారులను జోడించవచ్చు లేదా Keycloak ని అప్స్ట్రీమ్ గుర్తింపు ప్రదాతకు (LDAP, SAML) కనెక్ట్ చేయవచ్చు.
Nginx రౌటింగ్
క్లౌడ్ డిప్లాయ్మెంట్ స్క్రిప్ట్లు ఉపయోగించేటప్పుడు, Nginx రెండు సేవలు proxy చేయడానికి కాన్ఫిగర్ చేయబడుతుంది:
| మార్గం | బ్యాకెండ్ |
|---|---|
/ | 127.0.0.1:8080 లో rtCloud యాప్ |
/auth/ | 127.0.0.1:8090 లో Keycloak |
బాహ్య OIDC ప్రొవైడర్
ఏ OpenID Connect-అనుకూల గుర్తింపు ప్రదాతకైనా rtCloud కనెక్ట్ చేయండి. ఈ విధానానికి Keycloak కంటైనర్ అవసరం లేదు.
మద్దతు ఉన్న ప్రొవైడర్లు
OIDC-అనుకూల ప్రొవైడర్ పని చేస్తుంది, ఇవి కలిగి ఉంటాయి:
- Authentik
- Auth0
- Okta
- Keycloak (బాహ్య ఇన్స్టాన్స్)
- Supabase
- Google (Google Workspace సంస్థల కోసం)
- GitHub (OIDC extension తో OAuth యాప్ల ద్వారా)
సెటప్
1. మీ గుర్తింపు ప్రదాతలో rtCloud ని OIDC క్లైంట్గా నమోదు చేయండి.
మీకు ఇవి అవసరం:
- క్లైంట్ ID మరియు క్లైంట్ సీక్రెట్
- రీడైరెక్ట్ URI నమోదు చేయడం:
https://rtcloud.example.com/auth/callback - మొబైల్ యాప్ మద్దతు కోసం, కూడా నమోదు చేయండి:
vn.rta.rtsurvey.auth://callback
2. .env లో పర్యావరణ వేరియబుల్లు కాన్ఫిగర్ చేయండి:
# OIDC discovery URL (ప్రొవైడర్-నిర్దిష్టం — మీ IdP డాక్యుమెంటేషన్ తనిఖీ చేయండి)
OIDC_ISSUER_URL=https://your-identity-provider.com
# మీ గుర్తింపు ప్రదాత నుండి క్లైంట్ ఆధారపత్రాలు
OIDC_CLIENT_ID=rtcloud-app
OIDC_CLIENT_SECRET=your-client-secret-here
# అభ్యర్థించవలసిన స్కోప్లు (openid, profile మరియు email సాధారణంగా సరిపోతాయి)
OIDC_SCOPE=openid profile email
# మీ గుర్తింపు ప్రదాతలో నమోదు చేయబడిన రీడైరెక్ట్ URI
OIDC_REDIRECT_URI=https://rtcloud.example.com/auth/callback
# ఐచ్ఛికం: వేర్వేరు మొబైల్ యాప్ క్లైంట్
OIDC_MOBILE_CLIENT_ID=rtcloud-mobile
OIDC_MOBILE_REDIRECT_URI=vn.rta.rtsurvey.auth://callback
# కొత్త OIDC వినియోగదారులకు rtCloud ఖాతాలు స్వయంచాలకంగా సృష్టించడానికి true కి సెట్ చేయండి
OPEN_REGISTRATION=false
3. మార్పులు వర్తించడానికి యాప్ కంటైనర్ పునఃప్రారంభించండి:
docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
వినియోగదారులు స్వయంచాలకంగా నిబంధించడం
OPEN_REGISTRATION=true అయినప్పుడు, వినియోగదారు OIDC ద్వారా మొదటిసారి సైన్ ఇన్ చేసినప్పుడు rtCloud స్వయంచాలకంగా స్థానిక ఖాతా సృష్టిస్తుంది. ఖాతా ID టోకెన్ నుండి వినియోగదారు పేరు మరియు ఇమెయిల్తో నింపబడుతుంది.
OPEN_REGISTRATION=false (డిఫాల్ట్) అయినప్పుడు, rtCloud అడ్మినిస్ట్రేటర్ ముందుగా వినియోగదారు ఖాతా సృష్టించాలి, మరియు OIDC గుర్తింపు మొదటి లాగిన్లో లింక్ చేయబడుతుంది.
అనుకూల ఎండ్పాయింట్లు
మీ ప్రొవైడర్ OIDC discovery (.well-known/openid-configuration) మద్దతు ఇవ్వకపోతే, మీరు ఎండ్పాయింట్లు మాన్యువల్గా సెట్ చేయవచ్చు:
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
మీ సంస్థ యొక్క Microsoft Azure AD టెనెంట్తో rtCloud అనుసంధానించండి.
సెటప్
1. Azure Portal లో కొత్త యాప్ నమోదు చేయండి:
- Azure Active Directory → App registrations → New registration వెళ్ళండి
- పేరు:
rtCloud - Redirect URI:
https://rtcloud.example.com/auth/callback(Web రకం) - సృష్టించిన తర్వాత Application (client) ID మరియు Directory (tenant) ID గమనించండి
- Certificates & secrets కింద, కొత్త క్లైంట్ సీక్రెట్ సృష్టించండి
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
మీ Azure AD టెనెంట్లోని వినియోగదారులు ఇప్పుడు తమ Microsoft ఆధారపత్రాలు ఉపయోగించి rtCloud లో లాగిన్ అవగలరు.
SSO నిలిపివేయడం
స్థానిక ప్రమాణీకరణకు తిరిగి వెళ్ళడానికి, .env నుండి అన్ని SSO-సంబంధిత వేరియబుల్లు తొలగించండి లేదా కమెంట్ చేయండి, తర్వాత యాప్ కంటైనర్ పునఃప్రారంభించండి:
docker compose -f docker-compose.production.yml up -d --force-recreate rtcloud
ఎంబెడెడ్ Keycloak ఉపయోగిస్తున్న అయితే, --profile embed-keycloak ఫ్లాగ్ వదిలిపెట్టి docker compose down నడిపించి ప్రొఫైల్ లేకుండా up -d నడిపించడం ద్వారా దాన్ని ఆపండి.