SharePoint Online allows sharing with external users. However, once the item is shared with the external users they can also share the item again.
These are the steps we used so that internal users can share items with external users and prevent the external users from sharing those items with other users.
We created another site collection to use for sharing. We enabled external sharing on the site collection.
Then under site settings > Site Permissions > Access request settings, untick the box that says “Allow members to share the site and individual files and folders”.
Now on the Site owners group add the users that you want allow to share files.
Once a file is shared with a user by the site owner, the user can access the file with the relevant permissions given and that user can no longer share the file to another user.