From implementation standpoint, I frequently use Google Auth and a bunch of their APIs. At least for Python, I can confidently say that they are not at all painful. Yes, there is fragmentation between different oAuth providers but unless you are writing oAuth library yourself, you may not need to face these problems ever.
Fyi, I am not using any oAuth lib but then I only use google auth for my app, not fb or twitter.
ownCloud would be perfect for this case. Users can share files, have disk quotas to avoid misuse, share contacts and calendar events. If you want you can user ownCloud user management or integrate with AD or OpenLDAP.
Both community and commercial support is also available.
To be honest, I won't say that you can run a lot of users on it and expect amazing performance.
It is mostly for evaluation and hobby usage. I suppose that it would be good for 2-3 users. I am thinking of removing certain extra things that are running on it and create a lean image. Hopefully it'll improve the performance.