I haven’t worked with Active Directory much, it’s one of those things that I always steer away from (due to the proprietary nature of it) and encourage others to go with something else as well. That said, I do understand that it’s often not the case that you can simply not use AD, because at that particular organization that decision is often made for you before you even start working there.
When I did join an Ubuntu server to AD a long time ago, there was a third-party solution that we used, and it worked well. I don’t remember the name of it, and honestly, I’m not even sure if it still exists. Starting with Ubuntu 20.10, it has built-in Active Directory support now, so that may be worth a look. I would recommend not using a non-LTS release, but the built-in support didn’t make it in time for 20.04.
Alternatively, you can look into “389 Directory Server”, as well as FreeIPA and Zentyal as potential replacements for proprietary Active Directory. I haven’t used those myself, but I’ve worked with individuals who has had success with them. That was several years ago though, so newer (and possibly better) solutions may have come out since then.
I agree with BigBunny. Samba is a good solution. My only hesitation there is that it may take less time to consider one of the ones I’ve mentioned (or similar) that are more “turn-key” solutions. Samba is probably the best option overall, but you’d likely find yourself spending more time tweaking the settings than you would with an out of the box solution. If you do have the extra time though, Samba is the way to go.
It’s probably not a bad idea to at least try the built-in support in 20.10, if you haven’t already. I’ve not had a chance to try it myself though.