OATH HOTP JAAS Plugin
Предыстория
Стек технологий Java EE Платформа для разработки корпоративного ПО на языке Java является одним из самых популярных на сегодняшний день для создания корпоративных информационных систем и WEB-приложений. На практике нередко приходится сталкиваться с классом приложений, для которых интеграция с LDAP невозможна или затруднительна. Это могут быть либо сторонние приложения с закрытыми исходными текстами, либо унаследованные (legacy) приложения, работающие исключительно с СУБД. В то же время, существует необходимость обеспечить для таких приложений двухфакторную аутентификацию с использованием одноразовых паролей.
Задача
Пусть имеется приложение, написанное в стандарте Java EE, развѐрнутое в Java EE-совместимом контейнере. При этом вся аутентификационная информация хранится в реляционной СУБД. Аутентификация реализуется контейнером при помощи стандартных механизмов. Необходимо обеспечить приложение механизмом аутентификации по стандарту OATH HOTP, не модифицируя само приложение (модификация схем БД допускается).
Решение
Вопросы аутентификации в стеке Java EE покрываются технологией JAAS Технология для настраиваемой аутентификации в рамках платформы Java EE (Java Authentication and Authorization Services). В том числе, допускается создание собственных механизмов аутентификации в виде загружаемых модулей. JAAS поддерживается большинством популярных Java EE-контейнеров: Tomcat Открытый сервер приложений стандарта Java EE, являющийся частью проекта Apache , GlassFish Открытый сервер приложений, разрабатываемый Oracle и являющийся стандартной реализацией Java EE , JBoss Открытый сервер приложений стандарта Java EE, разрабатываемый RedHat , Resin Сервер приложений стандарта Java EE, разрабатываемый Caucho Technology в открытой и коммерческой версиях и прочие. Поэтому нами был реализован механизм аутентификации по стандарту OATH HOTP в виде JAAS-модуля. Для работы с СУБД применяется JPA — технология ORM, стандартная для JavaEE.
Распространяется по GNU GPL, версия 3.0.