Skip to content

samlifySAML 2.0 SSO 库

单点登录 (SSO) 和单点注销 (SLO) 的高级 API

快速示例

typescript
import { ServiceProvider, IdentityProvider } from 'samlesa'
import { readFileSync } from 'fs'

const sp = ServiceProvider({
  metadata: readFileSync('./sp-metadata.xml'),
  privateKey: readFileSync('./sp-key.pem'),
  signingCert: readFileSync('./sp-cert.cer'),
})

const idp = IdentityProvider({
  metadata: readFileSync('./idp-metadata.xml'),
})

// 创建登录请求
const { context, entityEndpoint } = sp.createLoginRequest(idp, 'redirect')

// 重定向用户到 IdP
res.redirect(`${entityEndpoint}?SAMLRequest=${encodeURIComponent(context)}`)
typescript
import { IdentityProvider, ServiceProvider } from 'samlesa'
import { readFileSync } from 'fs'

const idp = IdentityProvider({
  metadata: readFileSync('./idp-metadata.xml'),
  privateKey: readFileSync('./idp-key.pem'),
})

// 创建登录响应
const { context } = await idp.createLoginResponse({
  sp,
  requestInfo: { extract },
  binding: 'post',
  user: { NameID: 'user@example.com' },
})

// 发送响应到 SP
res.send(`
  <form method="POST" action="${acsUrl}">
    <input type="hidden" name="SAMLResponse" value="${context}"/>
  </form>
`)

支持的算法

签名算法

算法安全性推荐度
RSA-SHA256⭐ 推荐
ECDSA-SHA256⭐ 推荐
EdDSA-Ed25519很高⭐ 推荐
RSA-SHA384/512✅ 支持
RSA-SHA1🚫 已弃用

加密算法

算法模式推荐度
AES-256-GCMGCM⭐ 推荐
AES-128-GCMGCM✅ 支持
AES-256-CBCCBC✅ 支持
TripleDESCBC🚫 已弃用

查看所有支持的算法 →

安装

bash
npm install samlesa

查看安装指南 →

集成示例

samlify 支持与主流身份提供商集成:

提供商类型难度
OneLogin企业 IdP🟢 简单
Okta身份平台🟢 简单
Azure ADMicrosoft Entra ID🟡 中等
AWS SSOAWS IAM Identity Center🟡 中等
Keycloak开源 IAM🟡 中等
GitLabDevOps 平台🟢 简单
火山云中国云服务🟡 中等

查看所有集成示例 →

社区


基于 MIT 许可证 发布

Released under the MIT License.