Я пытаюсь внедрить службу единого входа для приложений Node.js с использованием сервера идентификации WSO2.Я новичок в домене SSO.
Я локально развернул сервер идентификации WSO2.
Я использую это приложение простого узла в качестве поставщика услуг.
var express = require("express");
var passport = require("passport");
var SamlStrategy = require('passport-saml').Strategy;
var bodyParser = require("body-parser");
var session = require("express-session");
var app = express();
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(session({ secret: 'this shit hits'}));
app.use(passport.initialize());
app.use(passport.session());
var redirectLogin = function (req,res,next) {
if (!req.isAuthenticated()) {
res.redirect("/myapp/login");
}
next();
}
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
passport.use(new SamlStrategy({
entryPoint: 'https://localhost:9443/samlsso',
issuer: 'MyAppExpress'
},
function(profile, done) {
var myUser = {
email : profile.nameID
}
done(null, myUser);
}));
app.get('/myapp/login',
passport.authenticate('saml', {
successRedirect: "/myapp",
failureRedirect: "/myapp/login",
}));
app.post('/myapp/saml', passport.authenticate('saml', {
failureRedirect: "/myapp/login",
failureFlash: true
})
,
function(req, res) {
res.redirect("/myapp");
}
);
app.get("/myapp",redirectLogin, function(req, res) {
res.send("you're authenticated !!!! "+ JSON.stringify(req.user));
});
app.listen(process.env.PORT || 1234);
СервисКонфигурации провайдера на сервере идентификации WSO2:
Я следовал инструкциям, приведенным по этой ссылке. Аутентификация SAML с WSO2 / LDAP / PASSPORT / EXPRESS
В настоящее время я сталкиваюсь со следующими проблемами:
- ALERT: неверное значение URL-адреса получателя подтверждения 'http://localhost:1234/saml/consume' в сообщении AuthnRequest от эмитента «MyAppExpress».Возможно попытка спуфинговой атаки.Это происходит, когда я пытаюсь войти в систему с правами администратора [имя пользователя: admin, пароль: admin].Этот пользователь существует в источнике данных пользователя.
- Контекст не существует.Вероятно, из-за аннулированного кэша.Это происходит, когда я пытаюсь войти в систему с неверным пользователем
Вопросы:
- Есть ли проблема внутри приложения узла.
- илипроблема с настройками поставщика услуг.