this is what zot, the protocol #hubzilla is running on does.
It stores contacts etc. as keypares.
You can move those keys to any server you want, and by that remain always connected. Incl. having the publishing setting etc. stored within a #nomadicidentity.
It is also supporting #OAuth to authenticate with other services/apps using that identity.