The most natural way to connect user identities with addresses is via a stream.
If you trust users to identify themselves, you can create an open stream to which they publish directly, and then retrieve identity information using liststreampublisheritems.
If you prefer some trusted party to perform the identification, use a closed stream and have that trusted party (which has per-stream write permissions) publish to the stream. The user addresses can be used as the key for stream items, allowing retrieval of identity information via liststreamkeyitems.