[{"data":1,"prerenderedAt":339},["ShallowReactive",2],{"project-20326931":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":43,"post_text":45,"what":46,"said":62,"maker_in_thread":159,"shape":172,"grid":175,"attempts":302,"same_week":303,"maker_shows":41,"maker_hidden":331,"reader_version":332,"card":333},"20326931","Hydra","Open-Source OAuth2 Server","title","Show HN: Hydra – Open-Source OAuth2 Server","https:\u002F\u002Fgethydra.sh\u002Fhydra-1.0-stable-release","gethydra.sh","vwpolo3",1561998284,2019,190,51,205,2195,10,"notable","security_privacy","authentication server","api",[24,25,26,27,28],"oauth2 server","openid connect","oidc provider","authentication","open source","curious",0.103,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,15,0,2,20,{"design":38,"docs":39,"idea":40,"performance":42},{"positive":35,"critical":34},{"positive":34,"critical":34},{"positive":34,"critical":41},1,{"positive":34,"critical":34},[44,34,34,34,34,34,34,32,32,32,34,41,34,44,34,34,34,34,32,32,34,34,34,32,32,32,34,32,34,41,34,34,34,32,32,34,32,34,32,44],5,null,{"problem":47,"audience":45,"pricing":45,"motivation":45,"time_to_build":45,"stack":58,"openness":59,"stage":60,"team_size":61},{"value":48,"source":49,"evidence":50},"Running an OAuth2\u002FOIDC provider that issues tokens without bundling login and consent UI","commenter",[51,55],{"id":52,"by":53,"text":54},"20331429","unscaled","The difference is probably between \"can be made to run in a container\" (which is true for almost every app) and \"designed from day 1 to be containerized\" - which is obviously not…",{"id":56,"by":11,"text":57},"20327669","It leaves the implementation of the login (enter \u002Fpassword, ...) and consent (may application X have access to your pictures?) flows up to the developers using HTTP Redirection…",[],"open_source","launched","unknown",{"praise":63,"objections":77,"requests":92,"questions":111,"alternatives":129},[64,72],{"value":65,"source":49,"evidence":66},"Built from the start to be containerized",[67,71],{"id":68,"by":69,"text":70},"20327865","Ken_Adler","In my research, Hydra is the only OSS OIDC server implementation that is built from the start in a modern, containerized manner.",{"id":52,"by":53,"text":54},{"value":73,"source":74,"evidence":75},"Lightweight compared to Keycloak","maker",[76],{"id":56,"by":11,"text":57},[78,86],{"value":79,"source":49,"evidence":80},"Hydra leaves login and consent to the developer, so more work is needed",[81,82],{"id":52,"by":53,"text":54},{"id":83,"by":84,"text":85},"20328159","atonse","If we have to implement all those things, is there really much of a remaining lift in implementing OIDC, apart from bringing in a library into a web app?",{"value":87,"source":74,"evidence":88},"OAuth2 and OIDC are complex and overkill for small projects",[89],{"id":90,"by":11,"text":91},"20328530","Yes, implementing both OAuth2 as well as OIDC according to spec is a significant development effort and countless teams and companies fail at pushing through, shipping incomplete…",[93,100],{"value":94,"source":49,"evidence":95},"Load test reports and scale data",[96],{"id":97,"by":98,"text":99},"20334999","argd678","Are there any load test reports? How well does it scale?",{"value":101,"source":49,"evidence":102},"Clearer high-level explanation of what it does",[103,107],{"id":104,"by":105,"text":106},"20335533","zild3d","Site doesn't seem to give a simple high level explanation. How does this compare to a service like auth0? Seems like a subset of a cognito\u002Fauth0\u002Fokta?",{"id":108,"by":109,"text":110},"20331247","quelltext","I'm not too familiar with this space, so please excuse my question. What is OAuth2 server is? I was under the impression that for a given service\u002FAPI typically OAuth2 is…",[112,119,123],{"value":113,"source":49,"evidence":114},"How does it compare to Keycloak and Dex",[115],{"id":116,"by":117,"text":118},"20327534","praseodym","How does Hydra compare to other OIDC server implementations like Dex and Keycloak?",{"value":120,"source":49,"evidence":121},"How it compares to Auth0 or Cognito",[122],{"id":104,"by":105,"text":106},{"value":124,"source":49,"evidence":125},"Whether it handles IdP mix-up mitigation",[126],{"id":127,"by":53,"text":128},"20331500","How do you deal with IdP\u002FAS mix-up? The BCP recommends either sending back client_id and iss (but that draft[1] is long expired, and nobody seems to support that implementation),…",[130,138,143,151],{"value":131,"source":49,"evidence":132},"Keycloak",[133,137],{"id":134,"by":135,"text":136},"20329459","manigandham","https:\u002F\u002Fidentityserver.io\u002F https:\u002F\u002Ffusionauth.io\u002F https:\u002F\u002Fwww.keycloak.org\u002F https:\u002F\u002Fwww.gluu.org\u002F Basically all of them can run in a container, it's just hosting a few endpoints…",{"id":116,"by":117,"text":118},{"value":139,"source":49,"evidence":140},"Dex",[141,142],{"id":52,"by":53,"text":54},{"id":116,"by":117,"text":118},{"value":144,"source":49,"evidence":145},"IdentityServer",[146,150],{"id":147,"by":148,"text":149},"20328632","mikece","I'm curious how https:\u002F\u002Fidentityserver.io\u002F doesn't meet that description.",{"id":134,"by":135,"text":136},{"value":152,"source":49,"evidence":153},"FusionAuth",[154,155],{"id":134,"by":135,"text":136},{"id":156,"by":157,"text":158},"20338723","robotdan","+1 for FusionAuth. FusionAuth has some example k8s and helm configurations available as well. Full disclosure I work for FusionAuth. We support all of these configurations.",{"comments":160,"answered":161,"key":162},7,4,[163,166,169],{"id":164,"text":165},"20329753","Yes, not only on a roadmap but in high priority and under active development (not in the public eye yet)",{"id":167,"text":168},"20327772","While not explicitly mentioned, PKCE is supported! And yes, that draft was an important guide during implementation.",{"id":170,"text":171},"20329126","The blog posts and discussion was long ago (the video is 6 years old). Since then, that particular author acknowledged that (iirc) OpenID Connect solves many of the things he…",{"commenters":173,"max_depth":160,"maker_replies":160,"first_comment_mins":15,"lifespan_hours":174},29,70,[176,178,182,183,185,187,190,193,195,197,199,202,204,207,210,213,215,219,222,225,228,231,234,238,239,240,242,245,246,248,253,255,257,259,261,262,264,266,267,269,272,274,277,280,283,286,288,291,294,296,299],[68,34,44,177,69,34],"project\u002Fpositive\u002Fdesign",[179,34,34,180,181,34],"20328353","commenter\u002Fneutral\u002Fnone","longsleep",[147,34,34,180,148,34],[134,34,34,184,135,34],"commenter\u002Fcritical\u002Fdesign",[52,34,34,186,53,34],"commenter\u002Fneutral\u002Fdesign",[188,34,34,180,189,34],"20351417","segmondy",[191,34,34,180,192,34],"20332405","hans0l074",[194,34,34,180,135,34],"20332426",[156,34,34,196,157,34],"other\u002Fneutral\u002Fnone",[108,41,32,198,109,34],"project\u002Fneutral\u002Fdocs",[200,41,32,198,201,34],"20331348","mnutt",[203,41,32,198,135,34],"20332053",[205,41,34,206,109,34],"20332706","commenter\u002Fpositive\u002Fnone",[208,41,34,209,157,34],"20338737","other\u002Fneutral\u002Fdocs",[211,35,41,212,135,34],"20329538","project\u002Fcritical\u002Fnone",[164,35,34,214,11,41],"maker\u002Fneutral\u002Fnone",[216,35,44,217,218,34],"20333654","project\u002Fpositive\u002Fnone","KitDuncan",[220,32,34,196,221,34],"20330870","jolmg",[223,32,34,196,224,34],"20331131","flowcont",[226,32,34,196,227,34],"20331283","sattoshi",[229,32,34,196,230,34],"20331837","gravypod",[232,32,34,196,233,34],"20331920","anamexis",[235,161,32,236,237,34],"20327743","project\u002Fneutral\u002Fnone","webhamster",[167,161,34,214,11,41],[127,161,32,236,53,34],[241,161,34,180,237,34],"20332955",[243,44,34,196,244,34],"20328920","cookiecaper",[170,44,34,180,11,41],[247,44,34,196,237,34],"20332951",[249,250,32,251,252,34],"20336152",6,"project\u002Fneutral\u002Fidea","asjo",[254,250,32,251,135,34],"20338009",[256,250,32,251,252,34],"20346383",[258,250,32,251,135,34],"20346845",[260,250,34,180,252,34],"20355027",[116,160,32,236,117,34],[56,160,34,263,11,41],"project\u002Fneutral\u002Fdesign",[83,160,41,265,84,34],"project\u002Fcritical\u002Fidea",[90,160,34,265,11,41],[268,160,34,180,84,34],"20328980",[270,160,34,271,135,34],"20329511","commenter\u002Fcritical\u002Fidea",[273,160,34,180,11,41],"20333163",[275,160,34,276,135,34],"20339931","commenter\u002Fpositive\u002Fidea",[278,160,32,251,279,34],"20329867","wikibob",[281,160,32,251,282,34],"20330915","kronin",[284,160,34,271,285,34],"20330120","plange",[287,160,34,180,11,41],"20333158",[289,160,32,251,290,34],"20337227","dashwav",[292,160,34,293,135,34],"20339919","other\u002Fneutral\u002Fidea",[104,295,32,198,105,34],8,[97,297,32,298,98,34],9,"project\u002Fneutral\u002Fperformance",[300,18,44,177,301,34],"20331457","RocketSyntax",[],[304,309,314,319,322,326],{"id":305,"name":306,"points":307,"category":308},"20317840","URL Pages",377,"dev_tools",{"id":310,"name":311,"points":312,"category":313},"20334779","Vector",322,"infrastructure",{"id":315,"name":316,"points":317,"category":318},"20292104","Nearby-Shops-End-User-Android-app",227,"web_saas",{"id":320,"name":321,"points":317,"category":318},"20292638","comntr",{"id":323,"name":324,"points":325,"category":308},"20339766","A tiny JS library for real-time localization of eye pupils",153,{"id":327,"name":328,"points":329,"category":330},"20314255","DICOM",142,"languages",false,"v2",{"id":334,"name":5,"line":6,"ai":331,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":335,"top":18,"kw":336,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":337,"url":9,"mix":338,"praise":65,"objection":79,"sub":21},20326931,0.1,[24,25,26,27,28],"5000000333010500003300033303010003303035",[32,33,34,35],1794036578777]