Я не уверен, что вижу, почему любая из альтернатив лучше, если совершенство включает ясность или пригодность для обслуживания.
Отличное руководство, объясняющее, как работает OpenID, можно найти здесь:
Enterprise Java: Использование OpenID
и показывает, как реализовать его с помощью OpenID4Java (поддерживается на code.google.com)
У них есть удобный небольшой раздел для добавления его в ваш сайт
Что бы вы ни делали, используйте существующую библиотеку. Мало кто прочитал спецификации и дожил до того, чтобы рассказать историю.