Я пытаюсь войти в qlik auth через php со следующим скриптом.
<?php $proxyRestUri = 'https://instance'; $userDirectory = 'QVNCYCLES'; $xrfToken = '0MwkYLX*********'; $url = $proxyRestUri . '/ticket?xrfkey=' . $xrfToken; $cert_file = '.\client.pem'; $keyFile = '.\client_key.pem'; $selectedUser = 'user'; $userPassword = 'pass'; $cert_password = 'dev'; $req_fields = array( 'UserDirectory' => $userDirectory, 'UserId' => $selectedUser, 'Attributes' => array(), ); $request = curl_init(); $options = array( CURLOPT_URL => $url, CURLOPT_SSLCERT => $cert_file, CURLOPT_SSLCERTPASSWD => $cert_password, CURLOPT_SSLKEY => $keyFile, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_HTTPHEADER => array('X-qlik-xrfkey: ' . $xrfToken, 'Content-Type: application/json'), CURLOPT_POSTFIELDS => json_encode($req_fields) ); curl_setopt_array($request , $options); $response = curl_exec($request); if (!$response) { echo "Curl Error : " . curl_error($request); curl_close($request); die(); } else { $ticket = json_decode($response, true); echo json_encode(array('ticket' => $ticket["Ticket"])); }
и даже если я получаю доступ к test.php, как к регулярному попаданию в браузер, я получаю следующую ошибку.
Error 403 - Forbidden. The initial authentication request must be a "GET" request in order to be redirected to the authentication module.
Я хочу реализовать вышеуказанный код в php-скрипте, который плохо переносит и просто извлекает билет в json-объекте. Как я могу это сделать и что я делаю неправильно?
Спасибо.