3 पॉइंट द्वारा GN⁺ 2024-02-12 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Keycloak SSO सेटअप: Docker Compose और Nginx का उपयोग

  • Keycloak एक open source और प्रमुख SSO protocols के साथ संगत, भरोसेमंद identity और access management solution है.
  • Docker Compose का उपयोग करके सेटअप बहुत जटिल नहीं है, लेकिन पूरी तरह सहज भी नहीं, इसलिए सेटअप प्रक्रिया का संक्षेप दिया गया है.

अवधारणा

  • Nginx को केंद्रीय reverse proxy के रूप में उपयोग करते हुए एक मानक सेटअप अपनाया गया है, जो localhost के जरिए ट्रैफिक को अलग-अलग services तक पहुंचाता है.
  • इसे single host के resources साझा करते हुए भी environments को अधिकतम अलग रखने वाला एक किफायती सेटअप माना जाता है.

तैयारी

  • बुनियादी tools (SSH, Linux इंस्टॉल की हुई VM, domain या subdomain) की आवश्यकता है.
  • Docker rootless सेटअप के लिए बिना पासवर्ड वाला नया non-root user keycloak बनाया जाता है, /etc/subuid और /etc/subgid ranges अपडेट की जाती हैं, Docker rootless इंस्टॉल किया जाता है, और service के auto-start को configure किया जाता है.

Keycloak सेटअप

  • नए बनाए गए keycloak user के रूप में लॉगिन करके persistent data और Docker files के लिए directories बनाई जाती हैं.
  • आधिकारिक documentation के आधार पर docker-compose.yml लिखा जाता है, और .env file में sensitive और बदलने वाली जानकारी भरी जाती है.

लोकल में टेस्ट

  • Docker Compose stack का परीक्षण किया जाता है, VM के लिए reverse SSH tunnel बनाया जाता है, और फिर browser में Keycloak welcome screen की पुष्टि की जाती है.

Nginx सेटअप

  • Nginx को system reverse proxy के रूप में configure किया जाता है, और Keycloak service के लिए नई Nginx .conf file बनाई जाती है.
  • domain registrar में VM के IP पर DNS queries भेजने के लिए A record जोड़ा जाता है.

डिबग

  • .tld.com खोलकर admin user के रूप में Keycloak में लॉगिन किया जाता है, और Docker Compose logs के साथ Nginx access तथा error logs की जांच की जाती है.
  • आवश्यकता होने पर Keycloak database की भी जांच की जाती है.

Dockerfile का उपयोग करके custom build

  • quay.io की pre-built image इस्तेमाल करने के बजाय, Dockerfile का उपयोग करके अपनी image build की जाती है.
  • image build करने और service शुरू करने के लिए Docker Compose को फिर से शुरू किया जाता है.

निष्कर्ष

  • system Nginx reverse proxy के पीछे Rootless Docker पर Keycloak service चलाई जा रही है.
  • Docker containers का auto-update, Keycloak service login और email जोड़ना, realm जोड़ना, theme जोड़ना आदि अगले चरण हैं.

GN⁺ की राय:

  • सुरक्षा का महत्व: वेब की मौजूदा स्थिति सुरक्षा से जुड़ी कमजोरियों के साथ तालमेल रखना कठिन बना देती है, इसलिए Keycloak जैसे भरोसेमंद solution का उपयोग करना महत्वपूर्ण है.
  • कुशल आर्किटेक्चर: single host पर resources साझा करते हुए भी environments को अलग रखने का तरीका लागत-प्रभावी है और प्रबंधन में आसान है.
  • customization की क्षमता: Dockerfile का उपयोग करके custom build, Keycloak को अपनी जरूरतों के अनुसार ढालने की flexibility देता है.

1 टिप्पणियां

 
GN⁺ 2024-02-12
Hacker News राय
  • Authelia चुनने वाले उपयोगकर्ता की राय:

    • Keycloak में बहुत सारे फीचर्स हैं, लेकिन इसका सेटअप जटिल है और अतिरिक्त services की आवश्यकता होती है.
    • Authelia में user interface नहीं है और LDAP server के साथ two-way sync भी नहीं होता, लेकिन static files और environment variables से इसे configure किया जा सकता है, इसलिए यह कई मामलों में उपयुक्त है.
    • अगर आपको simple authentication और SSO चाहिए, तो Authelia से शुरुआत करने की सिफारिश की जाती है.
  • JetBrains Hub और Keycloak इस्तेमाल करने के अनुभव के बाद Dex चुनने वाले उपयोगकर्ता की राय:

    • JetBrains Hub को configure करना बहुत आसान है, लेकिन Docker image के latest tag का न होना असुविधाजनक है.
    • Keycloak development mode में आसान है, लेकिन production environment में इसका सेटअप कठिन है.
    • अंततः documentation की कमी के बावजूद, आसान configuration के कारण Dex चुना गया.
    • OAuth2 Proxy और Nginx templates को मिलाकर SSO configuration को सरल बनाया गया.
    • सुरक्षा के लिए Cloudflare Access और WAF जोड़ा गया.
  • OpenID Connect servers की तुलना तालिका बनाने वाले उपयोगकर्ता की राय:

    • Keycloak codebase के आकार को देखकर आश्चर्य हुआ.
  • Keycloak की security issues पर उपयोगकर्ता की राय:

    • Keycloak के CVE (सार्वजनिक vulnerabilities) को देखकर security concerns हैं.
  • AWS ECS में Keycloak लागू करने का अनुभव साझा करने वाले उपयोगकर्ता की राय:

    • Keycloak ने लंबे समय में कई बदलाव देखे हैं.
    • clustering में कठिनाइयाँ थीं, खासकर DNS discovery और UDP के जरिए cluster discovery में समस्याएँ थीं.
    • stateful login अलग-अलग servers के बीच मेल नहीं खाता था, जिससे load balancing मुश्किल हो गई.
  • Keycloakify के बारे में सकारात्मक उल्लेख करने वाले उपयोगकर्ता की राय:

    • Keycloakify, Keycloak का एक बेहतरीन alternative लगता है.
  • Authelia और Keycloak की तुलना करने वाले उपयोगकर्ता की राय:

    • Authelia आकर्षक लगता है, लेकिन Keycloak Angular connector देता है, जिससे शुरुआत करना आसान हो जाता है.
  • Keycloak इस्तेमाल करने का अनुभव साझा करने वाले उपयोगकर्ता की राय:

    • Keycloak का configuration जटिल है और documentation की कमी है, लेकिन Terraform का उपयोग करके इसे आसानी से deploy और manage किया जा सकता है.
  • Zitadel इस्तेमाल कर चुके उपयोगकर्ता की राय:

    • Keycloak शुरुआती उपयोगकर्ताओं के लिए भ्रमित करने वाला हो सकता है, और Zitadel इस्तेमाल में अधिक आसान है.
  • Keycloak इस्तेमाल की कठिनाइयों पर बोलने वाले उपयोगकर्ता की राय:

    • Keycloak password reset link सीधे उपलब्ध नहीं कराता और इसे API के जरिए संभालना पड़ता है.
    • cluster configuration आसान नहीं है, और realm पर सीमाएँ हैं.
    • सुरक्षित login system को खुद बनाना जोखिम भरा या कठिन हो सकता है.