Most people set up their Asana implementation as an Organization (as opposed to a Workspace), and for good reason - there are many benefits to an Organization over a Workspace.
One property of an Organization is that anyone who has an email address based on the email domain of the Organization can join that Organization without asking for or obtaining any sort of approval.
In some cases this can be viewed as a good thing in terms of convenience and ease of onboarding. However, it’s important to realize that in a paid-subscription Organization, the person joining will use up a license slot and thus becomes a user who must be paid for. As a result, people administering an Organization may want to have control over who in their company (i.e. who have an email address using the company domain) can and who cannot join their Asana instance.
The traditional answer often seen is, “You can’t; anyone with the email domain can join!” However, there is a technique you can use, that @Julien_RENAUD and I recently learned about, so as to have control over new users.
Here’s how it works:
First, you set up the Asana Organization as a free Organization; i.e. it’s not on any paid Asana plan.
Then you set up a Division within that free Organization where the Division is at the paid subscription level you want (Premium, Business, or Enterprise). Note that you need to have Asana Sales set up a Division for you; it’s not something users can do on their own.
The key here is that by their nature, Divisions are closed to new users joining without being invited. People can only join a Team within a Division if they are specifically invited to join it; there is no automatic joining based on email domain.
Note that this doesn’t completely eliminate all possible issues; a Team member within the Division can still invite someone to the Team which might put the Division over their allocated number of licensed seats. But it’s a much more manageable situation than the alternative.
This technique isn’t something I’ve seen documented anywhere, but an Asana Sales rep should be able to set it up for you on request.