我想先说这个,直到现在,我甚至没有听过SAML,更不用说涉及它的SSO策略了.这一点,加上我几乎没有做节点一年的事实,就是一个光荣的新手三明治.目前,我有一个客户端使用SAML和ADFS作为他们的SSO提供商.我已经使用passport.js进行本地登录,因此使用passport-saml似乎是使用SAML/ADFS实现SSO的方法.在进行我的研究时,我发现了几个不同的实现指南,但由于我完全不了解这个过程,我可以使用一些指针.
在passport-saml文档中,我找到了以下证明适用于ADFS的策略(根据文档):
{
entryPoint: 'https://ad.example.net/adfs/ls/',
issuer: 'https://your-app.example.net/login/callback',
callbackUrl: 'https://your-app.example.net/login/callback',
cert: 'MIICizCCAfQCCQCY8tKaMc0BMjANBgkqh ... W==',
identifierFormat: null
}
Run Code Online (Sandbox Code Playgroud)
我想我的主要问题是这个证书来自哪里?这是我通过SSL在我的服务器上生成的证书吗?提供商是否提供此服务?
在我的搜索中,我也发现了这个:https://github.com/auth0/passport-wsfed-saml2,它基于passport-saml.为ADFS建议以下配置:
{
path: '/login/callback',
realm: 'urn:node:app',
homeRealm: '', // optionally specify an identity provider
identityProviderUrl: 'https://auth10-dev.accesscontrol.windows.net/v2/wsfederation',
cert: 'MIIDFjCCAf6gAwIBAgIQDRRprj9lv5 ... ='
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,路径对象是显而易见的,我的提供者已经给了我一个providerURL.但是对我来说,境界毫无意义,而且还有那种证明.
有人能为我提供一个在node.js网站上实现SAML/ADFS SSO的"类似于解释的方式"吗?或者帮助我对我概述的两个解决方案所要求的论证对象做出正面或反面的讨论?非常感谢提前!
这是我现在的工作流程:
在按钮单击事件中,我将搜索结果导出到.csv文件,该文件将保存到服务器.保存文件后,我想将其发送到浏览器下载.使用此问题如何在meteor.js中处理条件文件下载,我创建了一个在保存文件返回的方法之后调用的方法.这是方法:
exportFiles: function(file_to_export) {
console.log("to export = "+file_to_export);
Meteor.Router.add('/export', 'GET', function() {
console.log('send '+file_to_export+' to browser');
return [200,
{
'Content-type': 'text/plain',
'Content-Disposition': "attachment; filename=" + this.request.query.file
}, fs.readFileSync( save_path + this.request.query.file )];
});
}
Run Code Online (Sandbox Code Playgroud)
然而,我的问题是如何调用该路线?使用.Router.to('/export?file=filename.ext')不起作用,并导致用户离开当前页面.我希望这对用户来说是无缝的,我不希望他们知道他们被重定向.在任何人问之前save_path,在方法之外声明,所以它确实存在.