Skip to content

API 参考

来自 index.ts 的主要公开导出有:

  • ServiceProvider
  • ServiceProviderInstance
  • IdentityProvider
  • IdentityProviderInstance
  • SPMetadata
  • IdPMetadata
  • Utility
  • SamlLib
  • Constants
  • Extractor
  • Soap
  • validate
  • validateMetadata
  • setSchemaValidator
  • setDOMParserOptions
  • saml2-enhancements 中的导出

优先使用:

  • ServiceProvider()
  • IdentityProvider()

它们覆盖绝大多数真实接入场景。

当你需要更多控制时,再使用:

  • SPMetadata
  • IdPMetadata
  • Extractor
  • Soap
  • Utility
  • validate()

只有在你确定要处理签名、解密、模板和单独验签时,再深入:

  • SamlLib

工厂函数:

import { ServiceProvider } from 'samlesa';
const sp = ServiceProvider(config);

createLoginRequest(idp, binding, customTagReplacement?)

Section titled “createLoginRequest(idp, binding, customTagReplacement?)”

生成登录请求。

常用 binding:

  • redirect
  • post
  • simpleSign
  • artifact

解析登录响应。

Artifact 模式下会自动进入 Artifact 解析链路。

createArtifactResolveRequest(idp, artifact)

Section titled “createArtifactResolveRequest(idp, artifact)”

生成 ArtifactResolve SOAP 请求。

createArtifactResolveResponse(idp, config?)

Section titled “createArtifactResolveResponse(idp, config?)”

生成 ArtifactResponse SOAP 响应。

解析收到的 ArtifactResolve 请求。

parseArtifactResolveResponse(idp, xml, inResponseTo?)

Section titled “parseArtifactResolveResponse(idp, xml, inResponseTo?)”

解析收到的 ArtifactResponse 响应。

返回当前 SP metadata XML。

把 metadata 导出到文件。

读取当前实体最终生效的配置对象。

工厂函数:

import { IdentityProvider } from 'samlesa';
const idp = IdentityProvider(config);

生成登录响应,支持:

  • post
  • redirect
  • simpleSign
  • artifact

解析来自 SP 的登录请求。

createArtifactResolveRequest(sp, artifact)

Section titled “createArtifactResolveRequest(sp, artifact)”

生成 ArtifactResolve SOAP 请求。

生成 ArtifactResponse SOAP 响应。

解析收到的 ArtifactResolve 请求。

parseArtifactResolveResponse(sp, xml, inResponseTo?)

Section titled “parseArtifactResolveResponse(sp, xml, inResponseTo?)”

解析收到的 ArtifactResponse 响应。

返回当前 IdP metadata XML。

把 metadata 导出到文件。

读取当前实体最终生效的配置对象。

Entity 基类中还提供这些能力给 SP / IdP 复用:

  • createLogoutRequest()
  • createLogoutResponse()
  • parseLogoutRequest()
  • parseLogoutResponse()
  • verifyFields()

如果你需要 SLO,优先从这些高层入口开始。

适合:

  • 解析 metadata XML
  • 获取 endpoint
  • 获取证书
  • 读取 NameIDFormat
  • 生成或导出 metadata
  • getMetadata()
  • exportMetadata()
  • isAuthnRequestSigned()
  • isWantAssertionsSigned()
  • getAssertionConsumerService(binding)
  • getSingleLogoutService(binding)
  • getArtifactResolutionService(binding)
  • getMetadata()
  • exportMetadata()
  • isWantAuthnRequestsSigned()
  • getSingleSignOnService(binding)
  • getSingleLogoutService(binding)
  • getArtifactResolutionService(binding)

做普通消息或 SOAP 消息的 schema 校验。

做 metadata 的 XSD 校验,并可选返回:

  • metadataType: 'IdP' | 'SP' | 'both' | 'unknown'

setSchemaValidator() / setDOMParserOptions()

Section titled “setSchemaValidator() / setDOMParserOptions()”

这两个是全局上下文级别的定制入口:

  • setSchemaValidator({ validate })
  • setDOMParserOptions(options)

更适合:

  • 测试
  • 封装库
  • 统一接管底层校验或解析行为

负责低层字段提取,不负责完整认证决策。

适用场景:

  • 登录请求 / 响应调试
  • Artifact SOAP 消息字段提取
  • metadata 低层映射

当前主要包含:

  • sendArtifactResolve()
  • sendArtifactResponse()
  • createArt()
  • parseArt()
  • encodeXmlToIso88591()

主要用于 Artifact Binding。

当前常见实用方法:

  • base64Encode()
  • base64Decode()
  • inflateString()
  • readPrivateKey()
  • normalizeCertificates()
  • validateCertificate()
  • validateRelayState()
  • sanitizeLog()

如果你要直接处理协议层,可以重点看这些方法:

  • verifySignature()
  • constructSAMLSignature()
  • verifyMessageSignature()
  • encryptAssertion()
  • decryptAssertion()
  • replaceTagsByValue()
  • attributeStatementBuilder()
  • createKeySection()
  • getDigestMethod()

这层能力很强,但也意味着你需要自己承担更多协议细节和错误处理责任。