I had an interesting scenario for this. I was developing a site on a DEV tenant which the customer is no where related to. During the course of time, I want the customers to have a look on the site and play around the site with full access, so that we can ensure that we are on the same track. To do that, I cannot add the client to my tenant or I cannot create an Office 365 license for my client.
For that also, Microsoft is providing a solution. Let us see how to enable that.
1. Go to the tenant admin URL. https://MYTENANT-admin.sharepoint.com/_layouts/15/online/SiteCollections.aspx
2. Select the site want to share and click on Sharing.
3. We have a lot of options on the popup. Select the appropriate option as below.
4. In my case, I wanted the external users should accept the invitation and they should sign in for the authentication using their own credentials.
5. By this way, we are not sharing any credentials to the external users and at the same time we are not enabling anonymous access as well.
6. There are lot more options as well available on the same popup and am leaving it to the readers to explore.
7. One interesting option is, we can restrict the external user based on their domain. That will be more useful.
8. Now, coming back to the site collection and add the user appropriately in the corresponding user group.
A simple and much needed feature.