As you know, external sharing can be controlled at site collection level to allow or not sharing with external users. However, until now, if you allow sharing, it is by default with the entire world. The sharing invitation will be sent to the e-mail address of the person you're sharing the site/document with. When that person clicks on the invite, she is invited to login with either a Microsoft Account, either an Organizational Account which is created in the AAD. Afterwards, the user is added to the group/assigned direct permissions.
Office 365 & SharePoint Online - Control sharing with External Users, uggly but effective workaround
At the time of writing, Office 365 is a great solution that is ready to use and usually a perfect platform for small to mid-sized enterprises having not too many constraints regarding data confidentiality, data sharing etc..For larger enterprises or "sector senstiive" (bank, pharma...), things can be a little more challenging when it comes to collaboration with external partners.
As of now, the only way to collaborate with partners in 365 is to enable external sharing. However, external sharing is often seen as a problem by sensitive companies because:
Fifty years ago, Friedrich Nietzsche prononced this famous statement, I doubt he would have something to say about SharePoint if he was still alive but I like the formula! Many customers and folks wonder about the future of SharePoint and especially, the on-premises version and I must admit that there are good reasons to be worried.
If like me, you have several Office 365 accounts, you might be annoyed when deploying Apps from Visual Studio if you checked the option "Maintian my connection" when Visual Studio prompts you for credentials.
As soon as you do that, if you switch to another Office 365 instance, Visual Studio keeps sign in you with the previously entered credentials which results in a failure since you are not a member of this new instance and it does not you offer the option to sign in as a different user.