2015-10-15 220 views
0

对于我们的新报告工具,我们使用的是Tableau,但我们希望我们的用户只需登录我们的网站即可查看信息。Tableau受信任的身份验证不起作用/无错误

在画面的服务器端似乎一切正常,但我似乎无法从我的网站上的Tableau得到任何数据。可悲的是我也没有收到任何错误。我不是后端专家,我知道一些基本的PHP,所以我可能忽略了一些东西。任何帮助都会受到伤害!

注意到我们的网站是安全的SSL可能很重要,我不知道这会对此产生多大影响。

所以这是我加载什么之后用户已经成功地登录到我们的系统:

$server = "our server ip"; 
$view_url = "tableau view url"; 
$user = 'admin'; 

function get_trusted_url($user,$server,$view_url) { 

    $params = ':embed=yes&:toolbar=yes'; 

    $ticket = get_trusted_ticket($server, $user, $_SERVER['REMOTE_ADDR']); 

    if (strcmp($ticket, "-1") != 0) { 

    return "http://$server/trusted/$ticket/$view_url?$params"; 

    } 

    else 

    return 0; 

} 

function get_trusted_ticket($wgserver, $user, $remote_addr) { 

    $params = array(

    'username' => $user, 

    'client_ip' => $remote_addr 

); 

    return do_post_request("https://$wgserver/trusted", $params); 

} 

function do_post_request($url, $data, $optional_headers = null) 
{ 
    $params = array('http' => array(
       'method' => 'POST', 
       'content' => http_build_query($data) 
      )); 
    if ($optional_headers !== null) { 
    $params['http']['header'] = $optional_headers; 
    } 
    $ctx = stream_context_create($params); 
    $fp = @fopen($url, 'rb', false, $ctx); 
    if (!$fp) { 
    throw new Exception("Problem with $url, $php_errormsg"); 
    } 
    $response = @stream_get_contents($fp); 
    if ($response === false) { 
    throw new Exception("Problem reading data from $url, $php_errormsg"); 
    } 
    return $response; 
} 

这是我在哪里尝试显示数据:

<script type="text/javascript" src="http://IP/javascripts/api/viz_v1.js"></script> 
<object class="tableauViz" width="1519" height="693" style="display:none;"> 
    <param name="path" value="<?php echo get_trusted_url($user,$server,$view_url)?>" /> 
</object> 

回答

0

受信任的身份验证涉及从Tableau Server请求票证,然后兑换该票证。解决发生的任何问题因此归结为确定该进程的哪一部分失败,然后解决问题。

作为第一步,我会建议通过Troubleshoot Trusted Authentication页面运行。

这就是说,我注意到您的脚本用于显示数据是通过http而不是https拉动viz_v1.js文件。这是一个错字吗?