Ошибка CoreSAMLSignOn: не удалось преобразовать строку в кодировке base-64 в XML

Я установил Identity Provider для подтверждения SAML с помощью corePHP. Я использую curl для отправки запроса подтверждения поставщику услуг.

Мой провайдер идентификации на основном php использует curl.

Сервис-провайдер сделан с использованием пространства компонентов saml2.0 в asp.net

Вот мой код:

$url = "https://sp.name.com/sso/saml";

$filename = "saml1.xml";
$read = fopen($filename, "r");
$XML = fread($read, filesize($filename));
fclose($read);

$XML_utf8 = utf8_encode($XML);
$XML64 = base64_encode($XML_utf8);

$data = "SAMLResponse=".$XML64."&RelayState=https://sp.name.com/sso/saml";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);

Когда я запускаю этот скрипт на моем поставщике услуг, появляются следующие сообщения об ошибках:

Ошибка SAMLSignOn: не удалось преобразовать строку в кодировке base-64 в XML.
[Исключение: сбой SAMLSignOn: не удалось преобразовать строку в кодировке base-64 в XML.] [SAMLSerializationException: не удалось преобразовать строку в кодировке base-64 в XML.]

Я уже потратил много времени на эту проблему.

0

Решение

Возникли проблемы с несоответствием сертификата и форматом утверждения saml. Поэтому мы перешли на asp.net и перестали использовать PHP для этой задачи. Сейчас мы используем библиотеку COMPONENTSPACE SAML2.0 в asp.net

Вопрос: Как нам удается запустить PHP-код с asp.net

ANS: Мы отправляем запрос API в код asp.net с учетными данными для входа в систему, а asp.net звонит поставщику услуг и возвращает нам URL перенаправления.

Надеюсь, что это может помочь

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]