2016-12-20 2 views
0

У меня установлен Identity Provider для утверждения SAML с использованием corePHP. Я использую curl для отправки запроса подтверждения поставщику услуг.CorePHP - SAMLSignOn не удалось: не удалось преобразовать строку с кодировкой base-64 в XML

Мой поставщик удостоверений находится на основной php, используя завиток.

Поставщик услуг производится с использованием componentspace 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 не удалось:. Не удалось преобразовать базовый-64 закодированный строку в XML]
[SAMLSerializationException:. Не удалось преобразовать базовый-64 закодированный строку в XML]

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

+0

за одно именами параметров должны быть случай с поправкой: SAMLResponse и RelayState –

+0

@HansZ. Спасибо за ответ, я также использовал SAMLResponse и RelayState для отправки запроса. Но поставщик услуг по-прежнему показывает ту же ошибку. Есть ли другой способ кодирования XML как base64? –

+0

Распечатайте сгенерированную закодированную форму и подтвердите ее извне –

ответ

0

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

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

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

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

Смежные вопросы