У меня есть два приложения Spring Boot, защищенные расширением SAML Spring Security. Эти два приложения уже запущены. Первый (web-ui-app) - это интерфейс пользователя ко второму (services-app), REST API.SSO и SAML - поставщики нескольких услуг
После успешного доступа к веб-ui-приложению, правильно аутентифицированному поставщиком удостоверений, я пытаюсь получить доступ к некоторым способам-приложениям.
Однако, вместо того, чтобы получать правильный ответ из службы-приложения, ответ JSON, я получаю что-то вроде этого:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<body onload="document.forms[0].submit()">
<noscript>
<p>
<strong>Note:</strong> Since your browser does not support JavaScript, you must press the Continue button once to proceed.
</p>
</noscript>
<form action="https://ServiceProvider.com/SAML/SLO/Browser" method="post">
<div>
<input type="hidden" name="RelayState" value="0043bfc1bc45110dae17004005b13a2b"/>
<input type="hidden" name="SAMLRequest" value="PHNhbWxwOkxvZ291dFJlcXVlc3QgeG1sbnM6c2FtbHA9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpwcm90b2NvbCIgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphc3NlcnRpb24iDQogICAgSUQ9ImQyYjdjMzg4Y2VjMzZmYTdjMzljMjhmZDI5ODY0NGE4IiBJc3N1ZUluc3RhbnQ9IjIwMDQtMDEtMjFUMTk6MDA6NDlaIiBWZXJzaW9uPSIyLjAiPg0KICAgIDxJc3N1ZXI+aHR0cHM6Ly9JZGVudGl0eVByb3ZpZGVyLmNvbS9TQU1MPC9Jc3N1ZXI+DQogICAgPE5hbWVJRCBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OnBlcnNpc3RlbnQiPjAwNWEwNmUwLWFkODItMTEwZC1hNTU2LTAwNDAwNWIxM2EyYjwvTmFtZUlEPg0KICAgIDxzYW1scDpTZXNzaW9uSW5kZXg+MTwvc2FtbHA6U2Vzc2lvbkluZGV4Pg0KPC9zYW1scDpMb2dvdXRSZXF1ZXN0Pg=="/>
</div>
<noscript>
<div>
<input type="submit" value="Continue"/>
</div>
</noscript>
</form>
</body>
</html>
Это разговор SSO. Разве это не должно быть прозрачным обменом ключами между сервисом-приложением и поставщиком услуг, поскольку я уже зарегистрирован в веб-ui-app?
Что мне не хватает?
У вас есть оба проекта, настроенные как Поставщики услуг? Используете ли вы безопасность или сеансы без гражданства? Можете ли вы рассказать о том, что вы имеете в виду, когда говорите «обеспечено с помощью расширения SAML Spring Security»? Было бы правильным сказать, что и передняя, и задняя часть являются отдельными поставщиками услуг? – blur0224
Да, передняя часть и задняя часть - оба поставщика услуг. Выяснилось, что службы без гражданства, остальные api, не могут быть защищены SAML. Лучшим подходом в этом случае будет использование SAML во внешнем приложении и OpenID с аутентификацией токена в остальном api, правильно? –