Launch HN: SSOReady (YC W24) - SAML SSO को आसान और open source बनाने वाली तकनीक
(github.com/ssoready)- SSOReady आपके product में SAML-आधारित Enterprise SSO और SCIM-आधारित Enterprise Directory Sync जोड़ने के लिए एक open source tool है, जो ग्राहकों को खुद onboarding करने के लिए hosted setup UI भी देता है
- किसी भी application stack में इस्तेमाल हो सके, इसलिए HTTP API को आधार बनाया गया है, और TypeScript·Python·Go·Java·C#·Ruby·PHP के SDK पतले wrappers के रूप में दिए गए हैं
- SAML login redirect URL बनाने और access code exchange करने से बना है, जबकि SCIM संगठन के external ID से users की सूची लाने के तरीके से implementation flow को सरल बनाता है
- SSOReady authentication middleware layer की तरह काम करता है; यह users को own नहीं करता और मौजूदा user database में बदलाव की मांग नहीं करता, और cloud hosting या self-hosting में से चुनने का विकल्प देता है
- Enterprise plan custom domain·branding, Management API, SLA support देता है, और MIT license price बढ़ोतरी पर नियंत्रण के साधन के रूप में fork की संभावना खुली रखता है
SSOReady क्या सुविधाएँ देता है
- SSOReady product में SAML और SCIM support जोड़ने के लिए एक open source project है
- इसके मुख्य हिस्से तीन हैं
- SSOReady SAML: product में SAML, यानी Enterprise SSO जोड़ने के लिए जरूरी functionality
- SSOReady SCIM: product में SCIM, यानी Enterprise Directory Sync जोड़ने के लिए जरूरी functionality
- Self-serve Setup UI: customers को SAML या SCIM settings खुद onboard करने देने वाला hosted UI
- quick start docs SAML Quickstart और SCIM Quickstart में बंटे हैं
- README बताता है कि ज्यादातर users SAML और SCIM को आधे दिन में implement कर लेते हैं, और सिर्फ दो lines of code चाहिए होती हैं
Stack independence और deployment विकल्प
- SSOReady किसी खास application stack से बंधा नहीं है, और language-specific SDKs एक सहज HTTP API के ऊपर पतले wrappers के रूप में दिए जाते हैं
- उपलब्ध SDK ये हैं
- SSOReady authentication middleware layer की तरह काम करता है; यह users को own नहीं करता और मौजूदा user database में बदलाव की मांग नहीं करता
- deployment के लिए cloud-hosted instance इस्तेमाल करने या self-hosting में से चुना जा सकता है
- Enterprise plan cloud और self-hosting, दोनों के लिए SLA support देता है
SAML implementation flow
- SAML, यानी Enterprise SSO, दो steps से बना है
- शुरुआत का step, जिसमें user को कंपनी के Identity Provider पर redirect किया जाता है
- processing step, जिसमें यह verify करके login कराया जाता है कि user कौन है
- login शुरू करने के लिए Get SAML Redirect URL endpoint का इस्तेमाल होता है
organizationExternalIdमें आप product में इस्तेमाल होने वाली अपनी पसंद की ID डाल सकते हैं, जैसे organization, workspace, team आदि- यह ID SSOReady के अंदर set की जाती है, और SSOReady उस organization की SAML·SCIM settings की tracking संभालता है
- login process करने के लिए Redeem SAML Access Code endpoint का इस्तेमाल होता है
/ssoready-callbackके handler मेंsamlAccessCodeexchange करकेemailऔरorganizationExternalIdमिलते हैं- product को returned email को उस organization के अंदर login करा देना चाहिए
/ssoready-callbackendpoint URL SSOReady में set किया जाता है
SCIM implementation flow
- SCIM, यानी Enterprise Directory Sync, ग्राहक के employees की सूची offline लाने के तरीके के रूप में पेश किया गया है
- ग्राहक के employees लाने के लिए List SCIM Users endpoint का इस्तेमाल होता है
- request में
organizationExternalIdइस्तेमाल होता है, और response मेंscimUsersऔरnextPageTokenशामिल होते हैं - हर SCIM user में
email,deleted,attributesजैसी values शामिल होती हैं, और product इनके आधार पर users बना या process कर सकता है
Enterprise features और project philosophy
- Enterprise plan में extended features इस्तेमाल किए जा सकते हैं
- Custom Domains & Branding: SSOReady को user-controlled domain पर चलाना और SAML·SCIM experience को brand के अनुसार customize करना
- Management API: SAML और SCIM से जुड़े tasks को programmatic तरीके से बड़े पैमाने पर automate करना
- Enterprise Support: self-hosting deployment सहित SLA support
- project का premise यह है कि business software बेचने वाले हर product को Enterprise SSO support करना चाहिए, और यह customers के लिए बड़ा security benefit है
- मौजूदा open source SAML libraries में documentation की कमी और confusion होने की समस्या मानी गई है, और SSOReady का लक्ष्य एक स्पष्ट और default रूप से सुरक्षित implementation experience देना है
- security software की कीमत मनमाने ढंग से बहुत ज्यादा बढ़ाना स्वीकार्य नहीं है—इस रुख के तहत SSOReady MIT license के तहत उपलब्ध है
- security issues
security@ssoready.comपर report करने के लिए कहा गया है
1 टिप्पणियां
Hacker News की राय
शुभकामनाएँ ही दे सकता हूँ। पहले मैंने खुद एक IdP बनाया था, और single login, single logout, user provisioning जैसी कई सुविधाएँ implement की थीं; जब यह सच में काम करता है तो यह इतना जादू जैसा लगता है कि हँसी आ जाती है
कई service providers और अलग-अलग IdP तक हर तरह के integration किए, और features भी अच्छे थे, लेकिन एक बात पक्की थी कि यह कभी भी बिना दर्द वाला काम नहीं था
आप दुनिया का सबसे अच्छा IdP बना लें, फिर भी सामने वाला पक्ष black box होता है, इसलिए payload शून्य में भेजे जाने के बाद वह क्यों consume हुआ, यह कई बार पता नहीं चलता
ऊपर से, integration वाला दूसरा पक्ष अक्सर SAML के flow, payload, अपने stack की SAML capability तक नहीं जानता, इसलिए आपको उन्हें सिखाते हुए साथ-साथ उस system को भी सीखना पड़ता है
signature या format जैसी चिंताओं से ज़्यादा, ज़्यादातर काम black box diagnostics और अंतहीन certificate management के black hole जैसा था
खासकर IPSec ने गहरे घाव दिए; VPN tunnel ज़िंदा है या नहीं यह check करने के लिए एक TCP connection तक नहीं खोल पाने वाले “network engineer” के साथ काम करते हुए अंदर ही अंदर जलता रहा कि “क्या उधर से integration हो भी पाएगा?”
आखिरकार जितनी जल्दी हो सके सामने वाले system को सीखना पड़ा, यह समझने के लिए कि configuration सही है या नहीं, और unavoidable integration issues ढूँढने पड़े। लगभग हमेशा कहीं न कहीं firewall ही कारण होता था
Enterprise devices का standard terms को अपने ही नए शब्दों में बदलकर बुलाना भी समस्या है, इसलिए ज़्यादातर learning सामने वाले “appliance” में किस term को क्या कहा जाता है, इसका दिमाग़ में Rosetta Stone बनाने जैसा बन जाता है
कुछ mail servers अच्छी तरह accept करते हैं, लेकिन कुछ अजीब policies और सख्त block lists चलाते हैं और domain या sender-wise reputation अलग से manage करते हैं
शायद इरादा revenue बनाने का होगा, और अपने आप में वह ठीक है, लेकिन अगली बार wording को थोड़ा refine करना बेहतर होगा
अच्छा लग रहा है। SAML implement कर चुके व्यक्ति के तौर पर यह सच में दर्दनाक था, लेकिन यह tool काफ़ी ज़्यादा आसान लगता है
हालांकि pricing को लेकर थोड़ी चिंता है। हमें अपना system इस tool के ऊपर बनाना होगा, इसलिए बाद में अगर company बंद हो जाए या pricing policy बदलकर हमारे लिए unfavorable हो जाए, तो SSO को फिर से लिखने का बड़ा engineering काम अचानक पैदा हो जाएगा
अगर hosted product free में दे रहे हैं, तो आखिरकार company के बंद होने या pricing बदलने की संभावना काफ़ी ज़्यादा लगती है
अगले 6–12 महीनों में current project में SSO जोड़ने की स्थिति में, “अभी free है” और “पता नहीं, email दे दीजिए” के बजाय, अगर कोई sustainable दिखने वाला paid plan हो तो team को convince करना बहुत आसान होगा
यह भी न भूलें कि options में से एक “founder को call करें” है
ऐसी reality में, अगर company में किसी को SAML चाहिए, तो शायद single SaaS app में सिर्फ इसी feature के लिए चुकाई जाने वाली cost का लगभग आधा देना ठीक हो सकता है
[1]: https://sso.tax/
इसका मतलब यह नहीं कि open source से मजबूत business नहीं बनाया जा सकता। Red Hat ने किया, लेकिन model वही होना चाहिए; seed-stage VC funding model नहीं, मेरे हिसाब से
हो सकता है commercial logic समझा न पाऊँ, लेकिन हम यह calculated bet लगा रहे हैं कि उदार free offering लंबी अवधि में लाभदायक होगी
हमें लगता है कि यह product developer trust बनाएगा और भविष्य में efficient distribution channel बनेगा। शुरुआती दौर में monetization न करने वाली commercial open source strategy काफ़ी common है
सौभाग्य से कुछ venture investors भी हैं जो popular commercial open source products वाली companies को खुशी से support करते हैं
हम अभी शुरुआती stage की company हैं, मौजूदा product को और गहरा बनाएँगे और समय के साथ नए products भी देंगे। नई features और नए products पर charge करेंगे, और meaningful revenue या cash flow तक कुछ साल लगें तो भी हमें ठीक लगता है
Open source में release करना और इस्तेमाल में आसान service launch करना तारीफ़ के काबिल है
अतिरिक्त रूप से, अगर यह popular और high-quality implementation बन जाता है, तो दूसरे service providers के लिए भी इस software के users के साथ integrate करना आसान हो सकता है
F500 SSO integrations कई बार scratch से implement किए हैं, और सबने अपनी-अपनी customization कर रखी थी, इसलिए “SAML” कहा जाने पर भी ज़रूरी नहीं कि वे interoperable हों। ऐसा software हो तो शायद default रूप से काम कर जाए
Free hosted SSO देते समय customers उस रास्ते से compromise न हों, इसके लिए आप कितनी अच्छी तरह security maintain कर पाएँगे, यह जानने की उत्सुकता है
साथ ही यह सभी customers के लिए single point of failure बनेगा, तो free tier में भी uptime guarantee है या नहीं, यह जानना चाहूँगा। जिन startups को hosting चाहिए लेकिन SLA भी चाहिए, उन्हें affordable pricing पर दे पाएँगे या नहीं, यह भी सवाल है
SOC2 के लिए हम Oneleet के साथ काम कर रहे हैं, और हम सब जानते हैं कि SOC2 काफी हद तक नाटक है, लेकिन काफ़ी thorough penetration testing भी चल रही है। चाहें तो results email से भेज सकते हैं
वास्तविकता यह है कि हम ऐसी company हैं जिसे ये चीज़ें सही तरीके से करनी ही होंगी
Free tier की uptime guarantee case-by-case agree करने की योजना है, और यह जरूरतों पर निर्भर करेगा। हम guarantees को काफ़ी गंभीरता से लेते हैं, इसलिए commitments में सावधान रहते हैं
हम services business करने नहीं निकले हैं और “premium support” से पैसे भी नहीं कमाना चाहते। लेकिन अगर SLA चाहिए, तो थोड़ी लागत होगी
“क्या cloud provider इस software का इस्तेमाल करने वाले customers को ले जाएगा” वाले सवाल को फिर से phrasing कर दें तो अच्छा होगा
आजकल SAML की सबसे बड़ी बाधा शायद SaaS product integration है। कई बार support team के साथ ईमेल आगे-पीछे करने पड़े, और कुछ vendors तो सिर्फ SSO setup पर 204-page PDF वैसी की वैसी भेज देते थे
Attribute mapping अभी भी गड़बड़ है, और यह हैरानी की बात है कि user experience अब भी इतना खराब है
संयोग से हमने इसी समस्या के लिए एक feature launch किया है। 204-page PDF बनाने की ज़रूरत नहीं; SSOReady में setup URL generate करके customer को दे दें, और customer उस URL पर जाकर product के साथ SAML connection को self-service UI से configure कर सकता है
https://ssoready.com/docs/idp-configuration/enabling-self-se...
सबसे बड़ी मुश्किलों में से एक यह थी कि user को असली SSO system own करने वाली दूसरी department को शामिल करना पड़ता था, और उस department के पास इसे जल्दी चलाने की बहुत motivation नहीं होती थी, इसलिए ticket लंबे समय तक खिंचते रहते थे
customer से कुछ खास जानकारी मांगनी पड़ती थी, जिससे हम भी बुरे दिखते थे
बढ़िया। “जटिल जरूरतों वाली बड़ी कंपनियों के लिए add-on features बनाकर आगे चलकर monetization करने की योजना” वाला हिस्सा दिलचस्प है
जानना चाहूंगा कि YC application process में क्या इतना ही accept होने के लिए काफी था, और investment के लिए उन्होंने business model को कितना importance दिया
generous free offering को लेकर comfortable होने की एक वजह यह basic fact है कि SaaS companies को SAML login support करने में मदद करना इतना बड़ा market नहीं है। वैसे भी हमें किसी और product से पैसे कमाने होंगे
“add-on feature monetization” अभी वाले SAML product के बारे में है, लेकिन हम दूसरे products भी launch करने वाले हैं
long-term goal Auth0 जैसी, लेकिन open source और developer-friendly company बनाना है
WorkOS से ज्यादा cost-effective alternative खोज रहे हैं, इसलिए यह सही समय पर आया। हम enterprise data verification portal बना रहे हैं और इसे try करने वाले हैं
Entra ID के साथ integrate करते ही follow करने के लिए कोई guidelines हैं? क्या सच में बस API endpoint ही चाहिए?
हां। जो code लिखना है वह सभी IdPs को cover करता है, और IdP-specific differences हर customer के configuration values में handle होते हैं
उदाहरण के लिए, कुछ समय पहले हमने Entra-specific docs तैयार किए हैं: https://ssoready.com/docs/idp-configuration/guides-for-commo...
जानना चाहूंगा कि क्या इससे आपकी जरूरत पूरी होती है
usage-based users के लिए automatic volume discounts हैं, और annual plans या custom contracts में और कम pricing भी possible है। early-stage companies के लिए free credits भी देते हैं
अगर बात करना चाहें तो mg@workos.com पर contact कर सकते हैं
अभी कई startups सहित सैकड़ों companies WorkOS इस्तेमाल कर रही हैं: https://workos.com/startups
पिछली company में SSO integration implement किया था, लेकिन SAML इतना painful लगा कि हमने सिर्फ OIDC2 किया
अब भी ऐसा है या नहीं पता नहीं, लेकिन कुछ समय तक Okta, SCIM इस्तेमाल करने वाले Okta integration में SSO के लिए OIDC allow नहीं करता था, और SSO के लिए SAML इस्तेमाल करना पड़ता था
हमने workaround के तौर पर SSO और SCIM के लिए दो अलग-अलग Okta integrations बनाए। customer IT department को समझाना हमेशा annoying था, लेकिन किसी ने issue नहीं बनाया, इसलिए SAML implement करने की जरूरत नहीं पड़ी
अच्छा लग रहा है। क्या SCIM जोड़ने की planning है?
SAML अच्छा है, लेकिन experience के मुताबिक enterprise customers के SSO चाहने की मुख्य वजहों में से एक automated deprovisioning है, ताकि employee के leave करने पर सभी apps से access एक साथ हट जाए। इसके लिए SCIM चाहिए
SAML के साथ SCIM भी, या SCIM का छोटा subset भी हो, तो यह लगभग बिना सोचे चुनने लायक हो जाएगा। बाकी services closed-source हैं और absurdly expensive हैं, और खुद implement करना बहुत painful है
सच कहूं तो IETF ने SCIM को अपने आप में काफी अच्छा बनाया है। यह SAML जैसा अजीब नहीं है। experience के मुताबिक SCIM integration का सबसे कठिन हिस्सा IdP-specific configuration सही करना है
SAML की तरह ही Okta, Microsoft, OneLogin exact same चीजों को बिल्कुल अलग terminology में बुलाते हैं
जिन features का इंतजार है, उनमें से एक customer को देने के लिए configuration link generate button है। उस link के जरिए customer SAML+SCIM configuration self-service तरीके से setup कर सकेगा
अभी SAML में यह already काम कर रहा है, और अच्छा यह है कि हर product की अजीब terminology और quirky UI समझाने के लिए अलग-अलग IdP-specific docs नहीं लिखने पड़ते
launch के लिए congratulations। BoxyHQ के SAML Jackson[1] से तुलना करें तो यह कैसा है?
[1]: https://github.com/boxyhq/jackson
हमारा approach पसंद करने की मूलतः दो वजहें हैं
पहली, BoxyHQ SAML-over-OAuth चाहता है। हम इसे खासकर NextAuth compatibility के लिए support करते हैं, लेकिन हमें नहीं लगता कि यह हमेशा मददगार होता है
दूसरी, हमें लगता है कि हमारी service इस्तेमाल में आसान है। users और customers से सबसे ज्यादा जो complaint सुनते हैं वह complexity की है, इसलिए हमने SAML को clear और simple बनाने पर काफी मेहनत की है। आखिरकार यह तय करना users का काम है कि यह उस standard पर खरी उतरती है या नहीं
Microsoft के B2C IdP के लिए पहली custom policy लिख रहा हूँ, और यह काफ़ी दर्दनाक प्रक्रिया है
authentication और SSO को कम दर्दनाक बनाया जाए तो सच में दुनिया बेहतर हो सकती है। apps ज़्यादा सुरक्षित हो जाएँगे, लोगों को इस्तेमाल करते समय कम झुंझलाहट होगी, और मेरे जैसे लोगों का stress भी कम होगा
http://id.atlassian.com