API 参考
来自 index.ts 的主要公开导出有:
ServiceProviderServiceProviderInstanceIdentityProviderIdentityProviderInstanceSPMetadataIdPMetadataUtilitySamlLibConstantsExtractorSoapvalidatevalidateMetadatasetSchemaValidatorsetDOMParserOptionssaml2-enhancements中的导出
先选哪一层 API
Section titled “先选哪一层 API”第一层:高层实体
Section titled “第一层:高层实体”优先使用:
ServiceProvider()IdentityProvider()
它们覆盖绝大多数真实接入场景。
第二层:Metadata 与低层模块
Section titled “第二层:Metadata 与低层模块”当你需要更多控制时,再使用:
SPMetadataIdPMetadataExtractorSoapUtilityvalidate()
第三层:协议级操作
Section titled “第三层:协议级操作”只有在你确定要处理签名、解密、模板和单独验签时,再深入:
SamlLib
ServiceProvider
Section titled “ServiceProvider”工厂函数:
import { ServiceProvider } from 'samlesa';
const sp = ServiceProvider(config);createLoginRequest(idp, binding, customTagReplacement?)
Section titled “createLoginRequest(idp, binding, customTagReplacement?)”生成登录请求。
常用 binding:
redirectpostsimpleSignartifact
parseLoginResponse(idp, binding, request)
Section titled “parseLoginResponse(idp, binding, request)”解析登录响应。
Artifact 模式下会自动进入 Artifact 解析链路。
createArtifactResolveRequest(idp, artifact)
Section titled “createArtifactResolveRequest(idp, artifact)”生成 ArtifactResolve SOAP 请求。
createArtifactResolveResponse(idp, config?)
Section titled “createArtifactResolveResponse(idp, config?)”生成 ArtifactResponse SOAP 响应。
parseArtifactResolveRequest(idp, xml)
Section titled “parseArtifactResolveRequest(idp, xml)”解析收到的 ArtifactResolve 请求。
parseArtifactResolveResponse(idp, xml, inResponseTo?)
Section titled “parseArtifactResolveResponse(idp, xml, inResponseTo?)”解析收到的 ArtifactResponse 响应。
getMetadata()
Section titled “getMetadata()”返回当前 SP metadata XML。
exportMetadata(filePath)
Section titled “exportMetadata(filePath)”把 metadata 导出到文件。
getEntitySetting()
Section titled “getEntitySetting()”读取当前实体最终生效的配置对象。
IdentityProvider
Section titled “IdentityProvider”工厂函数:
import { IdentityProvider } from 'samlesa';
const idp = IdentityProvider(config);createLoginResponse(params)
Section titled “createLoginResponse(params)”生成登录响应,支持:
postredirectsimpleSignartifact
parseLoginRequest(sp, binding, request)
Section titled “parseLoginRequest(sp, binding, request)”解析来自 SP 的登录请求。
createArtifactResolveRequest(sp, artifact)
Section titled “createArtifactResolveRequest(sp, artifact)”生成 ArtifactResolve SOAP 请求。
createArtifactResolveResponse(params)
Section titled “createArtifactResolveResponse(params)”生成 ArtifactResponse SOAP 响应。
parseArtifactResolveRequest(sp, xml)
Section titled “parseArtifactResolveRequest(sp, xml)”解析收到的 ArtifactResolve 请求。
parseArtifactResolveResponse(sp, xml, inResponseTo?)
Section titled “parseArtifactResolveResponse(sp, xml, inResponseTo?)”解析收到的 ArtifactResponse 响应。
getMetadata()
Section titled “getMetadata()”返回当前 IdP metadata XML。
exportMetadata(filePath)
Section titled “exportMetadata(filePath)”把 metadata 导出到文件。
getEntitySetting()
Section titled “getEntitySetting()”读取当前实体最终生效的配置对象。
登录与注销公共能力
Section titled “登录与注销公共能力”Entity 基类中还提供这些能力给 SP / IdP 复用:
createLogoutRequest()createLogoutResponse()parseLogoutRequest()parseLogoutResponse()verifyFields()
如果你需要 SLO,优先从这些高层入口开始。
SPMetadata / IdPMetadata
Section titled “SPMetadata / IdPMetadata”适合:
- 解析 metadata XML
- 获取 endpoint
- 获取证书
- 读取
NameIDFormat - 生成或导出 metadata
SPMetadata
Section titled “SPMetadata”getMetadata()exportMetadata()isAuthnRequestSigned()isWantAssertionsSigned()getAssertionConsumerService(binding)getSingleLogoutService(binding)getArtifactResolutionService(binding)
IdPMetadata
Section titled “IdPMetadata”getMetadata()exportMetadata()isWantAuthnRequestsSigned()getSingleSignOnService(binding)getSingleLogoutService(binding)getArtifactResolutionService(binding)
validate() / validateMetadata()
Section titled “validate() / validateMetadata()”validate(xml, isSoap?)
Section titled “validate(xml, isSoap?)”做普通消息或 SOAP 消息的 schema 校验。
validateMetadata(xml, isParse?)
Section titled “validateMetadata(xml, isParse?)”做 metadata 的 XSD 校验,并可选返回:
metadataType: 'IdP' | 'SP' | 'both' | 'unknown'
setSchemaValidator() / setDOMParserOptions()
Section titled “setSchemaValidator() / setDOMParserOptions()”这两个是全局上下文级别的定制入口:
setSchemaValidator({ validate })setDOMParserOptions(options)
更适合:
- 测试
- 封装库
- 统一接管底层校验或解析行为
Extractor
Section titled “Extractor”负责低层字段提取,不负责完整认证决策。
适用场景:
- 登录请求 / 响应调试
- Artifact SOAP 消息字段提取
- metadata 低层映射
当前主要包含:
sendArtifactResolve()sendArtifactResponse()createArt()parseArt()encodeXmlToIso88591()
主要用于 Artifact Binding。
Utility
Section titled “Utility”当前常见实用方法:
base64Encode()base64Decode()inflateString()readPrivateKey()normalizeCertificates()validateCertificate()validateRelayState()sanitizeLog()
SamlLib
Section titled “SamlLib”如果你要直接处理协议层,可以重点看这些方法:
verifySignature()constructSAMLSignature()verifyMessageSignature()encryptAssertion()decryptAssertion()replaceTagsByValue()attributeStatementBuilder()createKeySection()getDigestMethod()
这层能力很强,但也意味着你需要自己承担更多协议细节和错误处理责任。