According to the docs configuring Openfire to auth from an external database is about as easy as plugging in the database info and telling it where the password hash is stored:
<jdbcAuthProvider> <passwordSQL>SELECT password FROM user_account WHERE username=?</passwordSQL> <passwordType>sha256</passwordType> </jdbcAuthProvider>
SELECT data FROM xf_user_authenticate FULL OUTER JOIN xf_user ON xf_user_authenticate.user_id = xf_user.user_id WHERE username=?
I can't test any of this immediately because I'm trying to get bcrypt support working for Openfire and make sure it can read the binary database field the XenForo password hashes are stored in.
I'm curious if anyone else has had success using a straight connection to the XenForo MySQL tables to serve external auth purposes and how those experiences went.