GitLab 7.11: 2FA, publicly viewable Enterprise Edition
about.gitlab.com
about.gitlab.com
How do you leverage 2FA with LDAP/AD accounts? Do you store/check the key in gitlab and then auth the users against LDAP/AD - or store the key in LDAP/AD?
Instead of extracting keys don't you want to use backup codes (that we provide)?
2FA for LDAP accounts is an additional safety measure that you need to unlock the account. The key is stored in the same place as with non-LDAP account I think.
Perhaps my opinion is wrong - but if I replace my OTP generating device (such as my phone) I don't want to use recovery codes I just want to restore FreeOTP and be on my way. Recovery codes to me is "oh shit I need to get to my account right now because of some important reason X and I don't have my phone with me". To give you some background of why - I have about 20 OTP keys in FreeOTP right now - being able to have root access and restore FreeOTP from Titanium Backup is very important to me.
This was particularly annoying when a service does not provide recovery codes. Or even worse (Symantec VIP OTP) they generate a random key generated based on the device - so even if you reinstall it you can't get the same key back (according to reviews in the play store - updates have even triggered a regen of keys) - locking people out of their accounts because many services who use Symantec VIP access don't offer recovery codes.
This all goes back to the idea of exporting keys from apps like FreeOTP and Google auth. People have asked numerous times but no one wants to implement it in those applications (there is a 3rd party OTP app that claims to store the keys encrypted in dropbox...but last time I used it the automatic backup stopped working....).
To make a long story short - if you present the QR Code I can get the key by using it a barcode scanner - but just tell me what it is so I can throw it in my password manager in the event I need to get into my account without my phone or have to replace my phone.
We can talk offline if you are interested and I can explain how I do 2FA for SVN and Mercurial.
> I highly recommend showing users the key for their storage - I've had to extract the keys from FreeOTP and Google Authenticator a number of times.
I'm curious, in what situation would you need to extract the key while you still have access to it in one of your apps? We have recovery codes for the situation where you've lost the key in your app, but that doesn't seem to be what you're describing. If you're moving from one app or phone to another, you can just turn off 2FA on GitLab and then turn it on again—you'll get a new key.
> How do you leverage 2FA with LDAP/AD accounts? Do you store/check the key in gitlab and then auth the users against LDAP/AD - or store the key in LDAP/AD?
The 2FA flow is the same for regular GitLab users and those backed by LDAP. After the initial username/password auth step, they are presented with the 2FA form. In both cases, the key is only in GitLab.
I use FreeOTP on Android to store and generated OTPs. Many years ago I had an HTC One (old version). I was listening to music one day and it just died - wouldn't turn on. Thankfully I extracted most of my OTP keys and was able to setup FreeOTP from scratch. If I didn't - I would be in a world of hurt for the ~20 services that may or may not provide recovery codes (I know you do - but just keep in mind phone dying or theft).
Like I mentioned in the previous post - to me a recovery key isn't to be used lightly, in my opinion it should only be used for "oh crap I need to login right now and I don't have my phone".
I'm not saying I don't trust you and recovery codes - I already got burned once and I don't want to be in that position again. My solution is to squirrel away the OTP keys. Besides - I can already get it by using a barcode scanner on the QR code you generate so I'm not sure what we are arguing about.
Regarding improvements, I don't really have any specific examples. Just keep at it and I'm sure that, over time, you'll refine it until it's perfect. It's really great as it is.
https://about.gitlab.com/2015/05/20/gitlab-gitorious-free-software/It will be interesting to see.
BTW I hate the open core model. http://en.wikipedia.org/wiki/Open_core
Looking at the EE code is fine but you can't use the code. So merge requests that add EE code into CE will not be accepted.
Even if I hadn't copied code from EE, the claim could be made and would be destructive to the ability of community members to fork and improve the open source codebase
If someone independently implements all of the EE functions without looking at or using the EE code, will the core team reject the patch due to the fact that it would give a reason for customers to stop paying for EE? Is there any scenario where the core team would accept such a patch?
And this is why I think that Open Core software unfairly appropriates peoples' work.
Yes this is exactly what I was getting at. Thank you for putting it more succinctly.
It's a real downside.
Having said that, thank you for GitLab. Even though this post is about the Enterprise Edition, it is good to see some high quality open source alternatives to GitHub (i.e. the Community Version). We moved F-Droid there and have had mostly a very positive experience.
I ask, because our company recently killed of a Gitorious instance that worked fine for ~5 years, to 'upgrade' us to TFS and there are quite some .. issues and limitations with that idea. Looking for a way to make IT happy ('yes, code is stored in TFS') and keep a usable/productive environment.
Actually that link DOES look quite interesting..
Frankly, I'm torn and might spin up a test instance on Monday (it's a day off here) to give it a try. Can't do jack about TFS hosting the sources, but anything that gives me a saner/better interface and usable issues etc. on top would be .. awesome.
As a long time user (nearly 3 years now), it really is amazing that you guys manage to release dead on the 22nd EVERY month and always with new features! Amazing.
Actually, our release cycle is open source as well[1], so you can see EXACTLY how we do it every month ;-)
[1] https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/rele...