Если мой сервер приложений аутентифицирует доступ через SPNEGO, что мой код приложения знает о пользователе? - PullRequest
0 голосов
/ 06 июня 2018

То, что я хочу сделать, - это аутентифицировать пользователя на уровне веб-страницы, используя аутентификацию сервера приложений (WAS) с помощью службы единого входа SPNEGO.

Как только пользователь прошел аутентификацию тамЗатем я хотел бы иметь возможность ограничить действия, которые пользователь может выполнять, в зависимости от того, в какую группу он входит, в Active Directory.

Что я не знаю, так это если пользователь прошел аутентификациючерез SSO, что может сам код приложения знать о пользователе и в каких группах он находится?Как он получает эту информацию?

1 Ответ

0 голосов
/ 13 декабря 2018

Из комментария @ Gas

SPNEGO не имеет к этому никакого отношения.Вы можете войти как обычно, и эффект будет таким же.Группы пользователей читаются из реестра пользователей (скорее всего, AD).Чтобы ограничить действия, вы можете создать роли безопасности в своем приложении, сопоставить роли с группами, а затем выполнить проверку в приложении через isUserInRole ('abc').Это очень краткое резюме.Ищите статьи об аутентификации / авторизации Java EE.

Поэтому приложению не нужно знать имя пользователя для авторизации.вам нужен доступ к идентификатору пользователя аутентифицированного пользователя, вы можете использовать метод request.getRemoteUser ().Подробности здесь https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRemoteUser()

...