如何捕获存在隐藏SAML POST的请求的SAML响应?

问题描述 投票:0回答:2

我想从使用隐藏SAML身份验证的URL请求中捕获SAML响应。我能够看到Fiddler的反应,但如何保存它以供进一步分析。通过URL发布重定向请求,SAML响应“200 OK”到达fiddler并且我想捕获它。是否有任何可用于执行相同操作的Powershell实用程序,或者我是否必须使用某个模块自动化Fiddler本身。请建议是否还有其他选项。

我在Powershell中尝试了一些带有“Invoke-WebRequest”的片段,但是无法重现SAML响应。

authentication saml-2.0 browser-automation
2个回答
0
投票

嘟嘟我自己的号角,但我的chrome plugin将帮助你。它为开发工具控制台添加了一个ta。然后选项卡显示所有流量并突出显示与saml消息相关的内容。单击一个时,它将以明文形式显示saml xml。


0
投票

我已经尝试了很多东西,最后在phantomjs的帮助下完成了它。

var page = require('webpage').create();
page.customHeaders={'Authorization': 'Basic '+btoa('USER:PASSWORD')};

// hook into initial request
page.onResourceRequested = function(request) {
    //console.log("Request: "+ JSON.stringify(request, undefined, 4));
    var req_json = JSON.stringify(request, undefined, 4);
    if (request.method == "POST" && request.postData != null){
            //console.log("Request: "+ JSON.stringify(request, undefined, 4));
            console.log("SAML Req/Resp: \n" + request.postData);
    }
};

// hook to response
page.onResourceReceived = function(response) {
 //console.log("Response: "+ JSON.stringify(response, undefined, 4));
 var resp_json = JSON.stringify(response, undefined, 4);
};

page.open("https://yourURLwithhiddenSAML");

现在,我可以使用SAML请求和SAML响应获取发布数据,并将输出重定向到某个文件。但是,还有一件事我注意到了。如果我加

phantom.exit();

在函数内部,我无法获得包含SAML的完整请求/响应生命周期。

© www.soinside.com 2019 - 2024. All rights reserved.