我想构建将使用SAML保护的示例应用,我尝试使用passport-saml
。
我在网上发现了很多示例程序。但无法完成我的示例程序。
是否有可以逐步解释的样本,我可以直接跟进。
我使用SSOCircle作为IDP,将我重定向到SSOCircle的SSO登录页面但登录后显示错误消息
发生错误原因:无法执行单点登录或联盟。
以下是我在节点中的代码。
passport.use(new SamlStrategy(
{
path: '/login/callback',
entryPoint: 'https://idp.ssocircle.com:443/sso/SSORedirect/metaAlias/publicidp',
issuer: 'comuteAWS',
cert: ''
},
function (profile, done) {
return done(null,
{
id: profile.uid,
email: profile.email,
displayName: profile.cn,
firstName: profile.givenName,
lastName: profile.sn
});
})
);
我的SP元数据正在关注
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><EntityDescriptor entityID="comuteAWS" xmlns="urn:oasis:names:tc:SAML:2.0:metadata"><SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat><AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://192.168.254.38:3000/vehicles"/></SPSSODescriptor></EntityDescriptor>
答案 0 :(得分:1)
我遇到了同样的问题,然后意识到SSOCircle的entryPoint网址是错误的。
对于SSOCircle,您应该使用此网址
entryPoint: 'https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&spEntityID=Your-Entity-ID'
将Your-Entity-ID
替换为您的实体ID。
答案 1 :(得分:0)
您需要将SP的SAML元数据导入信任的SSOCircle。这是在“管理元数据”下的SSOCircle Admin UI中完成的。
答案 2 :(得分:0)
我已经这样做但仍然无法正常工作。最后,我使用了wso2身份提供程序,并使用了相同的代码。