Klaus1: Keine XML-Antwort bei Rest API Zugriff über cURL

Beitrag lesen

Hallo,

ich versuche über die Rest API unseres Cisco ISE Daten abzufragen. Mit einem Rest-Client (Firefox-Addon) bekomme ich die Daten sauber zurückgeliefert. Der cURL-Aufruf aus dem Rest-Client sieht wie folgt aus:

curl -X GET -k -H 'Accept: application/vnd.com.cisco.ise.identity.adminuser.1.0+xml' -H 'Authorization: Basic AAJzBBRtaW12SksjCCJzKzIeMaE=' -i 'https://x.x.x.x:9060/ers/config/adminuser'

Als Antwort erhalte ich dann korrekt (gekürzt):

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns3:searchResult total="4" xmlns:ns5="ers.ise.cisco.com" xmlns:ers-v2="ers-v2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns3="v2.ers.ise.cisco.com">
  <ns3:resources>
    <ns5:resource description="Default Admin User" id="f2a1124e-2c49-1851-9880-23c3811cece7" name="admin">

Das versuche ich wie folgt in PHP nachzubauen:

$url = "https://x.x.x.x:9060/ers/config/adminuser";
$headers = array('Accept: application/vnd.com.cisco.ise.identity.adminuser.1.0+xml');
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLAUTH_BASIC);
curl_setopt($handle, CURLOPT_USERPWD, $username.':'.$password);
curl_setopt($handle, CURLOPT_HEADER, 1);
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($handle);
print_r ($response);

Anstatt einer erwarteten XML-Antwort mit allen angelegten Admin-Usern, erhalte ich:

HTTP/1.1 200 OK Cache-Control: no-cache, no-store, must-revalidate Expires: Thu, 01 Jan 1970 00:00:00 GMT Set-Cookie: JSESSIONIDSSO=9AFFE13A0A686133CCD10C57A2CF5B90; Path=/; Secure; HttpOnly Set-Cookie: APPSESSIONID=C4B2DF214523E6F78CC3D66570A00361; Path=/ers; Secure; HttpOnly Pragma: no-cache X-Frame-Options: SAMEORIGIN Strict-Transport-Security: max-age=31536000; includeSubDomains X-Content-Type-Options: nosniff X-Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; X-WebKit-CSP: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; X-XSS-Protection: 1; mode=block Date: Wed, 05 Jan 2022 07:18:00 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.2.0+xml;charset=utf-8 Transfer-Encoding: chunked Server:

Ebenso über

exec("curl -X GET -k -H 'Accept: application/vnd.com.cisco.ise.identity.adminuser.1.0+xml' -H 'Authorization: Basic AAJzBBRtaW12SksjCCJzKzIeMaE=' -i 'https://x.x.x.x:9060/ers/config/adminuser'",$out);
print_r($out);

Hat jemand eine Idee was ich falsch mache bzw. wie ich die Daten auch über PHP sauber gelesen bekomme?

LG Klaus