Можно ли иметь аутентификацию SAML 2.0 и аутентификацию JWT в одном приложении? - PullRequest
0 голосов
/ 06 июня 2019

Наше приложение в настоящее время имеет собственный процесс аутентификации с использованием JWT.

Мы хотим добавить вход в систему единого входа (SSO) только для определенной роли пользователей в нашем приложении с использованием SAML 2.0 (Azure AD).

Возможно ли иметь два отдельных протокола аутентификации в одном приложении Spring-Boot?

1 Ответ

1 голос
/ 06 июня 2019

Да.Это возможно.

Идея состоит в том, что вы можете зарегистрировать множество AuthenticationProvider, где каждый AuthenticationProvider отвечает за определенный тип механизма аутентификации (т. Е. Один для JWT, один для Azure AD в ваших случаях).

После этого Spring Security последовательно перебирает эти AuthenticationProvider, чтобы проверить, кто из них может успешно аутентифицировать запрос.Он прекратит зацикливание, как только обнаружит, что AuthenticationProvider может успешно аутентифицироваться.

Это означает, что в каждом из ваших AuthenticationProvider вы можете получить информацию о роли для текущего запрошенного пользователя, а затем проверить, есть ли у него требуемыероли для этого механизма аутентификации.Просто бросьте AuthenticationException, если у него нет необходимых ролей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...