Мы используем OpenSAML, который достаточно гибок и не так сложен для изучения / использования. Я использовал его для написания сервис-провайдеров (включая некоторые настроенные для клиента версии), обработки как запрашиваемого, так и незапрошенного SAMLResponse XML, отправки AuthnRequests провайдеру идентификации, вызова службы IdP AttributeQuery и симуляции SAMLResponse XML провайдера идентификации (для тестирования).
Я думаю, из вашего описания, что вы будете писать часть провайдера идентификации? Если вы просто делаете простой незапрашиваемый SAMLResponse XML, OpenSAML, вероятно, для вас излишне. Если ваши XML-сообщения в основном одинаковы, при этом всего несколько элементов содержимого меняются от запроса к запросу, вы можете просто использовать простой шаблон строки и заполнить несколько изменяющихся элементов, никаких специальных библиотек SAML не требуется.
Одна вещь, которую вы говорите, смущает меня:
наш клиент уже имеет ответчик / сервер SAML, который получает запрос SAML и отправляет ответ SAML с профилями пользователей
Если они являются поставщиком услуг, и это SSO SAML, то они получают SAMLResponse XML через запрос браузера и отвечают, отображая контент в браузере пользователя. Они не отправляют вам ответ с профилями пользователей. У вас может не быть времени на эксперименты, но я бы посоветовал вам потратить немного времени на чтение документов SAML - даже простое чтение SAMLOverview должно дать вам немного больше оснований.