节点 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。
我想构建示例应用程序,它将使用我尝试使用的 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。