标签: gooddata

iframe - 使用 iframe 执行 SSO 并访问身份验证墙后面的页面

我有 2 个域,一个托管我的应用程序 - myapp,另一个托管 gooddata 仪表板 - analytics.myapp。我想将gooddata仪表板嵌入到我的应用程序的页面中。我已将frame-src设置为允许来自仪表板所在域的请求:

set $CSP "${CSP}; frame-src https://analytics.myapp.com/";

add_header Content-Security-Policy ${CSP};
Run Code Online (Sandbox Code Playgroud)

我还在CORS主机上设置了analytics.myapp允许来自myapp域的请求:

ingress:
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-origin: "http://localhost:10000, https://myapp.com"
Run Code Online (Sandbox Code Playgroud)

我想将包含来自域的内容的 iframe 嵌入到域的analytics.myapp页面中,只有在您通过身份验证后才能看到该内容myapp。现在,当我加载内容时,iframe 正在显示登录页面,如果我尝试通过 iframe 登录,则会收到错误消息:

Blocked autofocusing on a <input> element in a cross-origin subframe.
Run Code Online (Sandbox Code Playgroud)

如果我使用不同选项卡中的用户登录,analytics.myapp则无法正常工作,因为 cookie 不会发送到域myapp。我发现可以通过他们的文档中的 api 进行身份验证。他们还有关于如何嵌入仪表板的文档,但为了查看嵌入式仪表板文档说:

用户必须是工作区成员才能查看嵌入式仪表板。

我还没有实现 SSO(单点登录),但我想知道一旦实现它,CORS 还会有问题吗?我可以想象,一旦我实现了这个,来自myapp域的用户进入一个页面,其中我有一个带有嵌入式仪表板的 iframe analytics.myapp,他们将被重定向到一个身份验证端点,在该端点上myapp用户将通过 SSO 进行身份验证 …

iframe single-sign-on gooddata cross-origin-embedder-policy cross-origin-resource-policy

10
推荐指数
0
解决办法
1458
查看次数

在写入所有字节之前无法关闭流(GoodData API)

我已经做了一些搜索,大多数人似乎在发送大量数据时遇到这种情况,但我不是.

我正在向API发出以下请求:

            request.Method = "POST";
            request.ContentType = "application/json";
            request.Accept = "application/json";
            request.Headers.Add("Cookie", "$Version=0; GDCAuthTT=" + TToken + "; $Path=/gdc/account");

            //generate request parameters
            ReportRequest.RootObject reportRequest = new ReportRequest.RootObject();
            reportRequest.report_req = new ReportRequest.ReportReq();
            reportRequest.report_req.reportDefinition = ReportLink;
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(serializer.Serialize(reportRequest));
            request.ContentLength = byteArray.Length;

            using (var writer = new System.IO.StreamWriter(request.GetRequestStream(), Encoding.UTF8, byteArray.Length))
            {
                writer.Write(byteArray);
            }
Run Code Online (Sandbox Code Playgroud)

最后一个结束括号发生异常:

在写入所有字节之前无法关闭流.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.IO.IOException:在写入所有字节之前无法关闭流.

来源错误:

第176行:{第177行:
writer.Write(byteArray); 第178行:}第179行:
字符串responseContent; 第180行:使用(var response = request.GetResponse()as System.Net.HttpWebResponse)

源文件:c:\ Users\james.billings\Documents\Visual Studio 2012\Projects\PhoneMonitor\PhoneMonitor\GoodData\DataRetriever.cs
Line:178

堆栈跟踪:

[IOException:在写入所有字节之前无法关闭流.]
System.Net.ConnectStream.CloseInternal(Boolean internalCall,Boolean aborting)+604 …

.net c# asp.net gooddata

7
推荐指数
3
解决办法
2万
查看次数

如何对GoodData API进行身份验证?

我正在尝试使用GoodData API进行身份验证/登录,但我遇到了麻烦.在GoodData API文档站点(docs.gooddata.apiary.io)上,它说POST到:

网址:

https://secure.gooddata.com/gdc/account/login

头:

Accept: application/json
Content-Type: application/json
Run Code Online (Sandbox Code Playgroud)

JSON正文:

{ "postUserLogin":{ "登录": "user@company.com", "密码": "你的密码", "记忆":1}}

我收到响应"私有API,请提供私有哈希." 有任何想法吗?

authentication api gooddata

5
推荐指数
1
解决办法
1594
查看次数

如何使用Gooddata API上传图表?

我正在尝试通过api将在Cloud Connect中制作/编辑的图表上传到GoodData.我一直试图使用这个电话:http://docs.gooddata.apiary.io/#cloudconnectprocesses

我正在制作的实际电话有json {"process": {"path": "/uploads/Bonobos_v6-1.grf", "name": "Bonobos Prod"}}

但是,当我尝试运行它时,它失败了

{
    "error": {
        "errorClass": "com.gooddata.msf.processes.InvalidProcessException",
        "trace": "",
        "message": "Can not read from file \"/uploads/Bonobos_v6-1.grf\"",
        "component": "MSF",
        "errorId": "83090caa-31c9-4ce2-bb79-040d5c4d2421",
        "errorCode": "gdc1151",
        "parameters": []
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有一种特定的方法来创建一个需要上传到服务器的"流程"?我已经尝试了多个图形和单个.grf文件的zip文件,但无济于事.我也假设错误并不意味着GoodData看不到文件,但这肯定会解释一些事情.

etl business-intelligence gooddata

5
推荐指数
1
解决办法
409
查看次数