У меня есть заказчик, который хочет внедрить систему единого входа с использованием подхода на основе утверждений SAML2. Заказчик будет поставщиком удостоверений (IDP), а мое приложение будет фактически поставщиком услуг (SP).
Раньше я реализовывал решения SSO, где IDP был Oracle Access Manager, и поэтому нам был предоставлен файл idp.xml, который позволил нам настроить нашу среду SP с помощью поставляемого Fedlet. Это удобно создало соответствующий файл WAR, который после развертывания позволил мне передать файл sp.xml клиенту, который импортировал его в свой IDP. Все это работало нормально, и я понимаю концепции, т.е. мы получаем первоначальный запрос, Fedlet обрабатывает это и отправляет пользователя к IDP, где они проходят аутентификацию, а затем они передаются обратно нашему SP с ответом SAML, который Fedlet позволяет нам проанализировать и извлечь некоторые данные, идентифицирующие пользователя. Затем я делаю то, что требуется, чтобы подписать их в нашем приложении.
Однако текущее требование не использует какую-либо внутреннюю структуру для предоставления IDP, они заявили, что она создана специально. Они предоставили мне URL-адрес IDP и файл сертификата и запрашивают наши «AssertionConsumerServiceURL» и «AudienceURI».
Приложение, для которого я включаю SSO, в основном основано на Java. Мое расследование до сих пор привело меня к решению OpenAM от Forgerock, а также к OpenSAML от Shibboleth. Однако я борюсь с первым шагом, по сути, с того, где я начинаю создавать пользовательское приложение SP, подключающееся к стороннему IDP с помощью OpenAM / Shibboleth / AnotherFramework.
Любые указатели были бы очень полезны.
Спасибо, Ли