我正在为我的公司开发 wsFederation POC。该解决方案也应该适用于 MVC 应用程序和 webapi 服务。我想出了如何使用新的 OWIN 身份验证中间件让它在 MVC 应用程序上运行。那时我得到了 SAML2 令牌。
我现在想进行 ajax 调用以从 webapi 控制器调用方法,在 javascript 中像这样在授权标头中传递 SAML 令牌:
var token = '@ViewBag.Token';
var request = {
url: 'https://localhost:44305/api/test/GetStrings',
cache: false,
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'bearer ' + token);
},
type: 'GET',
crossDomain: true,
success: function () {
alert('ok');
},
error: function () {
alert('ko');
}
};
$.ajax(request);
在 Firebug(或等价物)中,我可以看到标头很好地填充了令牌。
在服务器端,我正在尝试使用 Thinktecture 的 Owin 扩展方法来检索和检查令牌:
app.UseSaml2BearerAuthentication(
new Uri("urn:relyingparty2"),
"3AA702552....643E27150591A9",
"http://localSTS")
;
正如我在这里读到的:http: //leastprivilege.com/2013/10/31/adding-saml11-and-saml2-support-to-katanaowin/
但似乎什么都没有发生。
我想避免添加消息处理程序,因为这个方法看起来应该做我正在寻找的......
任何想法 ?