To "name" a player that activated a trigger you would target
!activator and send the output
AddOutput with the parameter
targetname whatevername. Then you could use filter_activator_name to make it so only a player with a certain "name" could activate something.
You could give this a graphical representation by using
SetParent !activator with something such as a sprite, and
SetParentAttachment with a parameter of
head to position an image of a key over the player's head.
It would also be possible to use item_teamflag as keys. The way that I would do this would be to put a point_proximity_sensor by the door. Its target would be the name of an item_teamflag. A
logic_compare could then Enable or Disable a door-opening trigger_multiple based on the distance from the door to the flag. This is similar to the method
described here.