Tag: saml

Saml实现不同的后端技术

我需要在具有多种后端技术的Angular应用程序中实现SAML,例如java,node,esb和一些。 有太多的应用程序,不能重写后端,所以实现SAML的良好体系结构是什么?

Node.js passport-saml一直redirect到localhost:3000 / login / callback

我正在使用来自www.npmjs.org/package/passport-saml的SAML教程。 我是SAML的初学者。 教程说 SAML身份提供商会将您redirect到pathconfiguration提供的URL 我已经有一个OpenIdp帐户。 似乎我可以成功login,但redirectURL总是把我发送到localhost:3000 / login / callback ,因为我把'path'改为'/ users / login-user-db-saml'或' www.passporttoken.com:1234/users/login-user-db-saml' (两者都不起作用,仍然将我发送到默认login/回叫 )。 我有下面的代码。 我做错了什么? /**start FOR SAML**/ passport.use(new SamlStrategy( { path: '/users/login-user-db-saml', entryPoint: 'https://openidp.feide.no/simplesaml/saml2/idp/SSOService.php', issuer: 'passport-saml' }, function(profile, done) { findByEmail(profile.email, function(err, user) { if (err) { return done(err); } return done(null, user); }); }) ); app.post('/users/login-user-db-sam', passport.authenticate('saml', { failureRedirect: […]

Passport-saml实现

我试图让任何战略的护照工作,但最终我想得到它与SAML实施工作。 现在看来,只要策略被调用,它总是失败。 我想知道如果也许我的服务器处理链设置错了? ` 'use strict'; // ———————————- BEGIN MODULE SCOPE VARIABLES ———————————- var http = require('http'), express = require('express'), session = require('express-session'), path = require("path"), samlStrategy = require('passport-saml').Strategy, passport = require('passport'), //flash = require('connect-flash'), morgan = require('morgan'), app = express(), server = http.createServer(app); // ———————————- END MODULE SCOPE VARIABLES ———————————— // ———————————- BEGIN SERVER […]

redirect本地主机而不是myserver.org:3000/login/callback

被redirect到我的本地主机服务器,而不是 myserver.org:3000/login/callback 至 本地主机:3000 /login/callback 不明白为什么,从哪里 这里是我的代码的一部分: app.get('/', function(req, res){ res.render('index', { user: req.user }); }); app.get('/account', ensureAuthenticated, function(req, res){ res.render('account', { user: req.user }); }); app.get('/login', passport.authenticate('saml', { failureRedirect: '/', failureFlash: true }), function(req, res) { console.log('so far worked out – =) 2'); res.redirect('/'); } ); console.log('so far worked out – =) 1'); app.post('/login/callback', […]

Node.js / SAML:如何解密RequestedSecurityToken的内容

我正在使用passport-wsfed-saml2 ,WS-fed和SAML2协议的护照策略。 逻辑的WS-fed部分似乎不处理其内容是<xenc:EncryptedData>元素的RequestedSecurityToken元素。 这使得该策略与具有指定encryption证书的ADFS 2.0依赖方不兼容。 我想用一些解密逻辑对策略的WsFederation.extractToken方法进行修补。 下面是我想要预处理的RequestSecurityTokenResponse xml示例。 我应该如何去解密令牌? 具体来说,如何将<KeyInfo>元素中提供的信息与<xenc:CipherData>元素结合使用来访问明文标记数据。 <?xml version="1.0" encoding="UTF-8"?> <t:RequestSecurityTokenResponse xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"> <t:Lifetime> <wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2017-01-05T21:02:07.193Z</wsu:Created> <wsu:Expires xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2017-01-05T22:02:07.193Z</wsu:Expires> </t:Lifetime> <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Address>https://localhost</wsa:Address> </wsa:EndpointReference> </wsp:AppliesTo> <t:RequestedSecurityToken> <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <e:EncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#"> <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> </e:EncryptionMethod> <KeyInfo> <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <X509Data> <X509IssuerSerial> <X509IssuerName>CN=token-signing, OU=SomeOrg, O=EvilCorp, L=Williston, S=VT, […]

NodeJS&Express身份validation中间件无法正常运行

我试图运行函数isUserAuthenticated每个请求到服务器通过要求它在app.js和'使用'它是这样的: app.use(authenticate.isUserAuthenticated) 。 我有一个/authenticatecallback路由,由我们的SAML身份提供商POSTED,其中包含validation用户和会话所需的信息。 这是我的authenticate.js文件中的内容: module.exports = router; module.exports.isUserAuthenticated = function(req, res, next) { console.log(req.cookies.subject); if (req.cookies.subject) { console.log(req.cookies.subject) return next(); } res.redirect("LINK TO IDP FOR VERIFICATION, callback func. is then ran to get value of user and session"); } 正如所引用的,这个authentication函数在app.js需要和使用: authenticate = require('./routes/authenticate')和app.use(authenticate.isUserAuthenticated) 。 问题:无论if语句的哪个变体validation请求中是否存在主题cookie,身份validation检查都不会被触发,redirect到IDP身份validation路由也不会被redirect。 上面的代码中的console.log检查正在返回: undefined和{} 。 当我使用isUserAuthenticated函数像这样: router.use('/', isUserAuthenticated, function(req, res, next) […]

我怎样才能保护与多个租户的SAML?

我正在谈论IDP发起的工作stream程。 我正在使用saml的这个 passport策略。 在“ 安全和签名 ”标题下,它build议提供IDP的证书。 当我定义战略AFAIK时将插入此证书。 在多租户应用程序的情况下,我将无法知道使用哪个证书,直到用户尝试login,并且在那时使用证书将会迟到,是不是? 如果在SAML请求进来之前我无法知道使用哪个证书,那么如何与多个租户validationSAML请求呢? 我想我需要这样的东西: 用户发送标识他们尝试login的租户的信息 SAML策略是使用正确的证书创build的。 SAML过程开始。 或者,也许我只是在想它错了,没有一个是真正需要有一个相对安全的login过程? 如果这个问题太广泛,如果你留下意见来帮助我缩小范围,或者指导我阅读资源,我将非常感激。 如果不清楚,我正在储存: SSOurl 发行人url 公共证书 这个信息与租户相关联,所以一旦我从IDP获得了个人资料信息,我就可以确定用户应该被引导到哪个租户。 在确定承租人确认事物之后,我也可以使用这些信息。 也许我可以使用公共证书做一些“事后”validation?

如何在openidp中创build和注册服务提供者元数据文件

我是saml协议的新手,这是我的第一个saml实现,因此对saml没有深入的了解。 我想知道我应该如何在nodejs中创buildsp元数据对象? 目前我使用nodejs,passport,passport-saml来实现sp和IDP中的saml 2.0协议我使用的是openidp( https://openidp.feide.no ),我也想知道如何注册sp元数据文件或者在idp中的对象。 要问的原因是因为我读了,发现sp应该使用元数据注册IDP(反之亦然),这里是链接: http://samlcomponent.net/how-to-create-saml-metadata-xml-for-service-provider/ “如果你有一个提供SAML 2.0支持的服务提供商,你可以使用自我pipe理界面将你的服务提供商连接到Feide OpenIdP”你可以在openidp网站上查看它。

响应者错误与Shibboleth和Node.js

我在服务器上build立了一个shibboleth服务提供者,40.78.18.242。 当我尝试访问http://40.78.18.242/secure/index.html时 ,一切都按计划进行。 我被redirect到我的身份提供者,然后,一旦我login,我能够访问我的安全目录中的资源。 我试图通过这个Shibboleth服务提供程序安装程序来保护node.js应用程序。 我已经查看了passport-saml模块,并且正在运行testing项目@ https://github.com/gbraad/passport-saml-example/ ,并对configuration文件进行了以下更改: 但是,无论何时我被redirect到IdP的login页面,响应都会给我这个错误: 我有一种感觉,我不正确理解护照的要求,因为这个错误消息只有在谷歌1-2结果。 我是否input了不正确的入口点或发行人 ? 或者,你可以收集这些会是什么,给我的shibboleth2.xml文件 ? 我的shibboleth文件的片段如下所示: <?xml version="1.0" encoding="ISO-8859-1"?> <SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config" xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" logger="/etc/shibboleth/syslog.logger" clockSkew="180"> <!– The OutOfProcess section contains properties affecting the shibd daemon. –> <OutOfProcess logger="/etc/shibboleth/shibd.logger"> <!– <Extensions> <Library path="odbc-store.so" fatal="true"/> </Extensions> –> </OutOfProcess> <InProcess logger="/etc/shibboleth/native.logger" /> <UnixListener address="shibd.sock" /> <!– This […]

NodeJS SAML Lib

有NodeJS的任何SAML库吗? 似乎有大量的代码可用于节点,但没有SAML库。 如果不是,有没有原因呢?