Not being a programmer, I would think a separate license keys table that could be associated between licenses, devices, and users. The parent license itself would / could be tied back to the vendor. It might also help license reporting.
So from the contact or asset when you 'link to' a license with a key, a sub-modal pops with the available keys.
With an optional text field beside each user and device, especially a client with 70 contacts and 416 assets, they would get lost in the weeds.
Now the question moves to how to enter x number of license keys? Maybe like the Tickets / Assignment / Additional Assets box? Copy and paste each key?
Just tossing some idea's.