#angular #spring #spring-security #oauth #single-sign-on
#angular #spring #spring-безопасность #oauth #единый вход
Вопрос:
Есть spring-web (приложение безопасности).
Вот конфигурация:
security:
oauth2:
client:
registration:
*auth:
provider: *auth
client-name: Login with the Identity Server
client-id: ${app.auth-client.client-id}
client-secret: ${app.auth-client.client-secret}
authorization-grant-type: authorization_code
redirect-uri: ?????
provider:
*auth:
token-uri: ${app.auth-client.server-url}/${app.auth-client.realm}/${app.auth-client.server-url-postfix}/token
authorization-uri: ${app.auth-client.server-url}/${app.auth-client.realm}/${app.auth-client.server-url-postfix}/auth
user-info-uri: ${app.auth-client.server-url}/${app.auth-client.realm}/${app.auth-client.server-url-postfix}/userinfo
jwk-set-uri: ${app.auth-client.server-url}/${app.auth-client.realm}/${app.auth-client.server-url-postfix}/certs
Основной вопрос заключается в том, как разрешить перенаправление uri для пользовательского интерфейса?
Существует 2 приложения: back (spring) и front (angular)
Он работает с redirect-uri: {baseUrl}/login/oauth2/code/{registrationId}
Но это работает только с REST-API и серверным приложением.
На самом деле, я хочу открыть страницу пользовательского интерфейса — если пользователь не указан — перенаправить на auth-сервер с помощью back. После входа в систему — перенаправление обратно (перенаправление-пользовательский интерфейс ???) на страницу пользовательского интерфейса с учетными данными.
Классический способ. Но это не работает с отдельным пользовательским интерфейсом. Для тестов я использую keycloak.
Ответ №1:
Здесь есть подвох:
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
...
@Override
protected void configure(HttpSecurity http) throws Exception {
http
...
.oauth2Login()
.successHandler((request, response, authentication) -> response.sendRedirect(clientProperties.getRedirectUriSuccess()))
Необходимо определить перенаправление-uri в пользовательский интерфейс после успешной авторизации. Это не тот же uri перенаправления из конфигурации единого входа.