Okta Identity Provider (IdP) 是一个基于云的身份管理解决方案,它允许企业集中管理用户身份和访问权限。通过 Okta IdP 发起登录,用户可以使用单一的登录 (SSO) 体验访问多个应用程序。
passport-saml
)。const express = require('express');
const passport = require('passport');
const SamlStrategy = require('passport-saml').Strategy;
const app = express();
// 配置 passport 使用 SAML 策略
passport.use(new SamlStrategy({
entryPoint: 'https://your-okta-domain.com/app/your-app-id/sso/saml',
issuer: 'https://your-okta-domain.com',
callbackUrl: 'https://your-app-domain.com/auth/saml/callback',
cert: '-----BEGIN CERTIFICATE-----\nYOUR OKTA CERTIFICATE\n-----END CERTIFICATE-----'
}, (profile, done) => {
return done(null, profile);
}));
// 初始化 passport
app.use(passport.initialize());
app.use(passport.session());
// SAML 登录路由
app.get('/auth/saml',
passport.authenticate('saml', { failureRedirect: '/login' }),
(req, res) => {
res.redirect('/');
});
// SAML 回调路由
app.post('/auth/saml/callback',
passport.authenticate('saml', { failureRedirect: '/login' }),
(req, res) => {
res.redirect('/');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
通过以上步骤和示例代码,你应该能够成功实现通过 Okta IdP 发起的登录,并将其集成到你的应用程序中。
领取专属 10元无门槛券
手把手带您无忧上云