2013-11-25 215 views
1

我在PHP Web應用程序中嵌入Tableau視圖。我們一直在使用基本上允許進行匿名身份驗證的Tableau Server使用啓用的訪客帳戶。在這個方案下,響應式嵌入非常簡單,並且使用Javascript解決方案(如fitvids.js/fluidvids.js)運行得非常好。響應iframe + Tableau受信任身份驗證

最近,我們對受信任的身份驗證進行了更改,該身份驗證通過Web應用程序將特定用戶傳遞給Tableau Server,生成唯一的一次性受信任憑單並呈現視圖。使用標準的固定嵌入,一切都按預期工作。但是,在執行fitvids.js或fluidvids.js時,我們會遇到令人生畏的Tableau錯誤:Could not locate unexpired trusted ticket

我最好的猜測是細分爲兩種:

  1. PHP的票代和URL創建的JavaScript
  2. 處理順序(最有可能)
  3. 的Tableau服務器限制

由於iframe中的內容是動態的,因此只有css解決方案無法工作。

作爲參考,這裏是有問題的PHP:

<?php 
/** 
* Implementation of Tableau trusted auth for php 
* 
* http://onlinehelp.tableausoftware.com/v8.1/server/en-us/trusted_auth_webURL.htm 
*/ 
function get_trusted_url($user, $server, $view_url, $site) { 
    $params = ':embed=yes&:toolbar=yes:tabs=no'; 
    $ticket = get_trusted_ticket($server, $user, $_SERVER['REMOTE_ADDR'], $site); 

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

// Note that this function requires the pecl_http extension. 
// See: http://pecl.php.net/package/pecl_http 

// the client_ip parameter isn't necessary to send in the POST unless you have 
// wgserver.extended_trusted_ip_checking enabled (it's disabled by default) 
function get_trusted_ticket($wgserver, $user, $remote_addr, $site) { 
    $params = array(
    'username' => $user, 
    'client_ip' => $remote_addr, 
    'target_site' => $site 
); 

    return http_parse_message(http_post_fields("http://$wgserver/trusted", $params))->body; 
} 
?> 

和示例嵌入:

<iframe src="<?php echo get_trusted_url($user,$server,$view_url,$site);?>"></iframe> 
+0

聽起來像API問題,也許你應該聯繫tableausoftware.com的支持? – DanFromGermany

回答

0

運行的Fiddler跟蹤,表明該問題是與JavaScript執行。

使用固定比例的嵌入,存在單個請求到受信任票網址:

1. /content/demo-tableau-trusted 
2. /trusted/Sz1y2Beu6Wr2EZnIg37-7oPm/t/education/views/Attendance/AttendanceDashboard?:embed=yes&:toolbar=yes:tabs=no 
3. /t/education/views/Attendance/AttendanceDashboard?:embed=yes&:toolbar=yes:tabs=no 

,然後用JavaScript的溶液(在此情況下FluidVids),有兩個請求到相同受信任的票url:

1. /content/demo-tableau-trusted 
2. /trusted/eg93TnSj0SQuhoCdHJbh0t94/t/education/views/Attendance/AttendanceDashboard?:embed=yes&:toolbar=yes:tabs=no 
3. /trusted/eg93TnSj0SQuhoCdHJbh0t94/t/education/views/Attendance/AttendanceDashboard?:embed=yes&:toolbar=yes:tabs=no 
+0

Fiddler在哪裏可以看到這個?我看不到一個網址可以使用受信任的網址,儘管它可以很好地處理另一個網址,唯一的區別就是報告名稱 – pee2pee