Qlik с приложениями для поиска аутентификации заголовка - PullRequest
0 голосов
/ 10 апреля 2019

Я использую Qlik Sense с аутентификацией заголовка, но по какой-то причине, когда я запускаю запросы к qrs / apps / full? Xrftoken = lskadjfalkjd, я получаю только общедоступные приложения. Как установить атрибуты пользователя для получения всех приложений для пользователя?

Ниже моя имплантация запроса qlik в php:

private static function getRequestHeaders($email)
{
    $user = AuthClass::getUser();

    $id   = $user['UserId'];
    $dir  = $user['UserDirectory'];
    $atts = $user['Attributes'];

    $securityHeaders = 'SecureRequest=true; Context=AppAccess;';

    foreach ($atts as $attr)
    {
        $key              = key($attr);
        $val              = $attr[$key];
        $securityHeaders .= "{$key}={$val}; ";
    }

    return [
        'headers' => 
        [
            'X-Qlik-xrfkey: ' . self::$xrfToken,
            'hdr-usr: Users\\' . $email,
            'Accept: application/json',
            'Content-Type: application/json',
            "X-Qlik-Security: $securityHeaders",
            "X-Qlik-User: UserDirectory={$dir};UserId={$id}",
        ]
    ];
}

$res = CurlHelper::get(
   'server/qps/app/full?Xrftoken=039498543', 
   self::getRequestHeaders($email)
);

1 Ответ

2 голосов
/ 10 апреля 2019

Несколько заметок от человека, который не имеет опыта работы с PHP:

  • Вы звоните qps/app/full, а не qrs/app/full
  • Это должен быть Xrfkey, а не Xrftoken, например qrs/app/full?Xrfkey=01234567890123456
  • Xrfkey должен состоять из 16 буквенно-цифровых символов
  • Предполагается, что https://server.company.com имеет виртуальный прокси с аутентификацией заголовка без префикса
  • Для внутренних интеграций предпочтительно вызывать QRS напрямую через порт 4242, что требует немного больше:
    • Передача внутреннего клиентского сертификата с ключом
    • Изменение параметров с использованием заголовка в виртуальном прокси на X-Qlik-User: UserDirectory=<directory>; UserId=<userid>

Рекомендации:

...