Сервис Oauth для аутентификации LDAP
У нас есть сценарий, где мы должны аутентифицировать пользователя на сервере LDAP
Поток 1:
client --> application server --> LDAP server
В вышеописанном потоке клиент вводит учетные данные LDAP, которые поступают на сервер приложений, и затем, используя python-ldap, мы можем сразу аутентифицировать пользователя. Поскольку учетные данные пользователя LDAP поступают на сервер приложений, организация может не пожелать такого потока по понятным причинам.
Поток 2:
client --> oauth2 --> LDAP server
Здесь лучше всего подходит сценарий Oauth, поскольку аутентификация пользователя является обязанностью oauth, и серверу приложений не нужно знать учетные данные пользователя.
Кто-нибудь сталкивался с таким случаем, если да, то как вы с ним справились? Есть ли какой-либо Oauth-клиент для LDAP бесплатный и платный?
3 ответа
Если вы не хотите, чтобы учетные данные пользователя доходили до сервера приложений, тогда вам нужна аутентификация по периметру. Вам нужен внешний поставщик аутентификации, скажем Oracle Access Manager, который будет выполнять аутентификацию и устанавливать определенный токен в запросе. Сервер приложений может утвердить этот токен и предоставить пользователю доступ к ресурсам. Эта модель также поддерживает SSO.
Ресурсы, которые требуют авторизованного доступа, настроены как защищенные URL-адреса в OAM.
Когда пользователь пытается получить доступ к защищенному ресурсу, его запрашивают учетные данные.
OAM аутентифицирует пользователя по каталогу LDAP (который настроен в OAM).
Маркер, соответствующий аутентифицированному пользователю, устанавливается в запросе. Также установлен файл cookie для единого входа.
Сервер приложений (Weblogic) может установить (проверить) этот токен и разрешить пользователю доступ к ресурсу.
Примечание. Oracle Access Manager также поддерживает oAuth.
Ори Гидра https://ory.sh/hydra может быть тем, о чем просил оригинальный плакат. Этому вопросу уже несколько лет, но в интересах помощи всем, кто это видит... проверьте Ори Гидра. Он предоставляет части OAuth2/OpenID и может быть связан с сервером LDAP за кулисами.
canaille — это бесплатная и легкая служба OAuth2/OpenID через серверную часть LDAP, написанная на python. (канальный разработчик здесь)