4 ms·
Auth. If you can stomach it, back it up with a real directory service. JumpCloud is a great way to do it. It's free up to 10 users. You can use it with Google H
by stuntkite 8y ago
Auth. If you can stomach it, back it up with a real directory service. JumpCloud is a great way to do it. It's free up to 10 users. You can use it with Google Hosted Apps as your user backend. You can set it up in 10 minutes. It has TONS of features, you probably won't look at them all once you can use it as an SSO/LDAP provider, you can forget about all that until you need more. Also you can easily replace it with something self hosted if you grow to the point of needing to do something else.
Determine if you need organization level RBAC (Role Based Access Control). Does your app need to have account managers at the customer level? You probably know from the outset if you'll face this problem. It's a big pain if you get someone to implement your product somewhere, then they lose that person and they have trouble accessing their account. Not that you can't provide support to solve it, but the legal side can get tricky and no matter what you lose face with the customer over the frustration. DockerHub messed this up IMO and that's why they haven't added it, because it's too complicated to add now.
You can easily have a simple SSO layer on top of it so your super admins come from the LDAP(or other) and user/customers are a separate DB in your existing app. It can be really expensive to add complex auth or change how it works later, but a stitch in time makes it easy to grow and adapt. This helps tremendously for DevOps, deployment security, managing things like white label licenses, and a host of other things.
Once you have it, it keeps you from writing terrible solutions to dance around having things like user account profiles. API keys if you need to offer them become easier and control of important assets are much less scary. Also you are ready to implement things like IAM management or whatever to keep track of deployment keys before you end up with a giant pile of security holes. JumpCloud offers a pretty turnkey IAM integration for AWS and others.
After that, getting paid. Figure out how to take money as fast as possible with the least friction. If you have auth and the ability to take money easy, pivots come a lot easier too. Since you have proper auth, things like subscription management becomes an easy reality without leaning on 3rd party vendors. Though just using stripe for that can be good enough, still you'll need to tie it to accounts. Especially if it's enterprise.
Something I've done recently that is now a part of my "get started fast" kit is automated DNS and TLS (via letsencrypt) with kubernetes. Might not be for everyone, but now that I'm on the other side, I'm not going back. I can tie a feature branch deploy via helm chart to it's own DNS endpoint defined as the host in the config, protect the ingress via LDAP, and make sure QA has an endpoint to review that won't be interrupted until the ticket is closed. One command and it's deployed and secure. Also this enables devs to deploy their own workspaces for effortless experimentation without disrupting dev/staging/prod, which shouldn't be used as sandboxes for features or QA IMO.
* http://www.jumpcloud.com http://www.jumpcloud.com
* https://www.keycloak.org/ https://www.keycloak.org/
* https://github.com/kubernetes/charts/tree/master/stable/external-dns https://github.com/kubernetes/charts/tree/master/stable/exte...
* https://github.com/kubernetes/charts/tree/master/stable/cert-manager https://github.com/kubernetes/charts/tree/master/stable/cert...
* https://github.com/kubernetes/charts/tree/master/incubator/keycloak-proxy https://github.com/kubernetes/charts/tree/master/incubator/k...