节点 JS 和 SAML 示例

Node JS and SAML example

我想构建示例应用程序,它将使用我尝试使用的 SAML 进行保护passport-saml

我在网上找到了很多示例程序。但是无法帮助完成我的示例程序。

是否有可以直接跟进的带有分步说明的示例。

我将 SSOCircle 用作 IDP,它将我重定向到 SSOCircle 的 SSO 登录页面,但登录后显示错误消息

Error occurred Reason: Unable to do Single Sign On or Federation.

以下是我在节点中的代码。

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>

您需要将您的 SP 的 SAML 元数据导入到信任的 SSOCircle 中。这是在 "Manage Metadata" 下的 SSOCircle Admin UI 中完成的。

我已经这样做了,但仍然没有用。最后,我使用了 wso2 身份提供程序并使用了相同的代码。

我遇到了同样的问题,然后意识到 SSOCircle 的入口点 url 是错误的。

对于 SSOCircle 你应该使用这个 url,

entryPoint: 'https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&spEntityID=Your-Entity-ID'

Your-Entity-ID 替换为您的实体 ID。