In general, there is an operation mode of most business-level access points called something like "dynamic VLAN assignment" (it is a Cisco-branded term, others may name it differently). The basic idea is that a WLAN client is put in a VLAN depending on the authentication credentials sent. Your infrastructure, including the RADIUS server, must provide for this.
The "dynamic VLANs" feature (again a Cisco-branded term) mainly targeted at wired infrastructure is also pretty close to what you are looking for.
If you don't have Cisco gear, there is also the term of MAC-based VLANs for VLANs not built by 802.1q tags, but simply defined by MAC addresses of the clients. As MAC adresses can be arbitrarily set by the clients, this technique is obviously insecure, but might be useful nontheless. Pre-802.1q VLAN implementations supported this kind of VLANs (about 12-15 years ago), but have gone mostly extinct nowadays.
But a recently published patch for the mainstream 3.2.1 kernel sources introduces a new "source" mode for the "macvlan" module as an implementation of the very same MAC-based VLAN feature of the olden days. The patch has not yet been merged into the Kernel souces as it still needs some work, but you obviously can apply it yourself if the need is pressing. Or just wait for the official merger to happen - if the code is any good, it would not take long.