Я использую oauth2 и LDAP для аутентификации API. Поток аутентификации приведен ниже.
- Пользователь отправляет имя пользователя и пароль LDAP (с большим типом пароля) на сервер.
- Сервер проверяет пароль для связи с сервером LDAP
- Если допустимо, сервер возвращает токен доступа и токен обновления.
- Пользователь продолжает получать доступ к API с токеном до истечения срока действия. По истечении срока действия токен обновления можно использовать для получения нового токена доступа и нового токена обновления.
Пользователь может постоянно получать доступ к API, постоянно обновляя токены.
Другое требование - сделать токены недействительными при изменении пароля пользователя или когда пользователь отключен на сервере LDAP. Есть ли в любом случае, чтобы сделать это ?
Пока я пробовал следующий подход:
- Сохранять хэш пароля LDAP на сервере, когда пользователь изначально отправляет их
- При обновлении токена извлекайте хэш пароля пользователя с сервера LDAP и сравнивайте его с сохраненным на сервере
Но похоже, что не всегда можно получить хеш. Это зависит от конфигурации LDAP, каталога и прав доступа