samlesa 4.0.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +2 -0
- package/build/src/binding-artifact.js +5 -0
- package/build/src/binding-post.js +5 -1
- package/build/src/binding-redirect.js +15 -0
- package/build/src/libsaml.js +0 -4
- package/build/src/saml2-enhancements-integration.js +146 -0
- package/build/src/saml2-enhancements.js +405 -0
- package/build/src/urn.js +4 -0
- package/package.json +2 -2
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/src/binding-artifact.d.ts.map +1 -1
- package/types/src/binding-post.d.ts +0 -1
- package/types/src/binding-post.d.ts.map +1 -1
- package/types/src/binding-redirect.d.ts.map +1 -1
- package/types/src/libsaml.d.ts.map +1 -1
- package/types/src/saml2-enhancements-integration.d.ts +24 -0
- package/types/src/saml2-enhancements-integration.d.ts.map +1 -0
- package/types/src/saml2-enhancements.d.ts +286 -0
- package/types/src/saml2-enhancements.d.ts.map +1 -0
- package/types/src/types.d.ts +105 -0
- package/types/src/types.d.ts.map +1 -1
- package/types/src/urn.d.ts +4 -0
- package/types/src/urn.d.ts.map +1 -1
package/build/index.js
CHANGED
|
@@ -13,6 +13,8 @@ import * as Soap from './src/soap.js';
|
|
|
13
13
|
import { validate, validateMetadata } from './src/schemaValidator.js';
|
|
14
14
|
// exposed methods for customizing samlify
|
|
15
15
|
import { setSchemaValidator, setDOMParserOptions } from './src/api.js';
|
|
16
|
+
// SAML 2.0 enhancements
|
|
17
|
+
export * from './src/saml2-enhancements.js';
|
|
16
18
|
export { Constants, Extractor,
|
|
17
19
|
// temp: resolve the conflict after version >= 3.0
|
|
18
20
|
IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance,
|
|
@@ -15,6 +15,7 @@ import postBinding from './binding-post.js';
|
|
|
15
15
|
import { artifactResolveFields, extract, loginRequestFields, loginResponseFields, logoutRequestFields, logoutResponseFields } from "./extractor.js";
|
|
16
16
|
import { verifyTime } from "./validator.js";
|
|
17
17
|
import { sendArtifactResolve } from "./soap.js";
|
|
18
|
+
import { applyAuthnRequestEnhancements } from './saml2-enhancements-integration.js';
|
|
18
19
|
const binding = wording.binding;
|
|
19
20
|
/**
|
|
20
21
|
* Get default extractor fields based on parser type
|
|
@@ -99,6 +100,10 @@ function soapLoginRequest(referenceTagXPath, entity, customTagReplacement) {
|
|
|
99
100
|
NameIDFormat: selectedNameIDFormat
|
|
100
101
|
});
|
|
101
102
|
}
|
|
103
|
+
// 应用 AuthnRequest 增强功能
|
|
104
|
+
if (spSetting.authnRequestEnhancements) {
|
|
105
|
+
rawSamlRequest = applyAuthnRequestEnhancements(rawSamlRequest, spSetting.authnRequestEnhancements);
|
|
106
|
+
}
|
|
102
107
|
const { privateKey, privateKeyPass, requestSignatureAlgorithm: signatureAlgorithm, transformationAlgorithms } = spSetting;
|
|
103
108
|
let signedAuthnRequest;
|
|
104
109
|
if (metadata.idp.isWantAuthnRequestsSigned()) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file binding-post.ts
|
|
3
|
-
* @author tngan
|
|
4
3
|
* @desc Binding-level API, declare the functions using POST binding
|
|
5
4
|
*/
|
|
6
5
|
import { wording, namespace, StatusCode } from './urn.js';
|
|
7
6
|
import { randomUUID } from 'node:crypto';
|
|
8
7
|
import libsaml from './libsaml.js';
|
|
9
8
|
import utility, { get } from './utility.js';
|
|
9
|
+
import { applyAuthnRequestEnhancements } from './saml2-enhancements-integration.js';
|
|
10
10
|
const binding = wording.binding;
|
|
11
11
|
/**
|
|
12
12
|
* @desc Generate a base64 encoded login request
|
|
@@ -41,6 +41,10 @@ function base64LoginRequest(referenceTagXPath, entity, customTagReplacement) {
|
|
|
41
41
|
NameIDFormat: selectedNameIDFormat
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
|
+
// 应用 AuthnRequest 增强功能(包括 ForceAuthn, IsPassive, Consent, ProviderName 等)
|
|
45
|
+
if (spSetting.authnRequestEnhancements) {
|
|
46
|
+
rawSamlRequest = applyAuthnRequestEnhancements(rawSamlRequest, spSetting.authnRequestEnhancements);
|
|
47
|
+
}
|
|
44
48
|
if (metadata.idp.isWantAuthnRequestsSigned()) {
|
|
45
49
|
const { privateKey, privateKeyPass, requestSignatureAlgorithm: signatureAlgorithm, transformationAlgorithms } = spSetting;
|
|
46
50
|
return {
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import utility, { get } from './utility.js';
|
|
7
7
|
import libsaml from './libsaml.js';
|
|
8
8
|
import { namespace, wording } from './urn.js';
|
|
9
|
+
import { applyAuthnRequestEnhancements } from './saml2-enhancements-integration.js';
|
|
9
10
|
const binding = wording.binding;
|
|
10
11
|
const urlParams = wording.urlParams;
|
|
11
12
|
/**
|
|
@@ -87,6 +88,10 @@ function loginRequestRedirectURL(entity, customTagReplacement) {
|
|
|
87
88
|
AllowCreate: spSetting.allowCreate,
|
|
88
89
|
});
|
|
89
90
|
}
|
|
91
|
+
// 应用 AuthnRequest 增强功能(包括 ForceAuthn, IsPassive, Consent, ProviderName 等)
|
|
92
|
+
if (spSetting.authnRequestEnhancements) {
|
|
93
|
+
rawSamlRequest = applyAuthnRequestEnhancements(rawSamlRequest, spSetting.authnRequestEnhancements);
|
|
94
|
+
}
|
|
90
95
|
return {
|
|
91
96
|
id,
|
|
92
97
|
context: buildRedirectURL({
|
|
@@ -124,6 +129,12 @@ function loginRequestRedirectURLArt(entity, customTagReplacement) {
|
|
|
124
129
|
const nameIDFormat = spSetting.nameIDFormat;
|
|
125
130
|
const selectedNameIDFormat = Array.isArray(nameIDFormat) ? nameIDFormat[0] : nameIDFormat;
|
|
126
131
|
id = spSetting.generateID();
|
|
132
|
+
// 构建 AuthnRequest 增强属性
|
|
133
|
+
const authnEnhancements = spSetting.authnRequestEnhancements || {};
|
|
134
|
+
const forceAuthn = authnEnhancements.forceAuthn !== undefined ? String(authnEnhancements.forceAuthn) : '';
|
|
135
|
+
const isPassive = authnEnhancements.isPassive !== undefined ? String(authnEnhancements.isPassive) : '';
|
|
136
|
+
const consent = authnEnhancements.consent || '';
|
|
137
|
+
const providerName = authnEnhancements.providerName || '';
|
|
127
138
|
rawSamlRequest = libsaml.replaceTagsByValue(libsaml.defaultLoginRequestTemplate.context, {
|
|
128
139
|
ID: id,
|
|
129
140
|
Destination: base,
|
|
@@ -133,6 +144,10 @@ function loginRequestRedirectURLArt(entity, customTagReplacement) {
|
|
|
133
144
|
AssertionConsumerServiceURL: metadata.sp.getAssertionConsumerService(binding.post),
|
|
134
145
|
EntityID: metadata.sp.getEntityID(),
|
|
135
146
|
AllowCreate: spSetting.allowCreate,
|
|
147
|
+
ForceAuthn: forceAuthn,
|
|
148
|
+
IsPassive: isPassive,
|
|
149
|
+
Consent: consent,
|
|
150
|
+
ProviderName: providerName
|
|
136
151
|
});
|
|
137
152
|
}
|
|
138
153
|
const { privateKey, privateKeyPass, requestSignatureAlgorithm: signatureAlgorithm, transformationAlgorithms } = spSetting;
|
package/build/src/libsaml.js
CHANGED
|
@@ -574,10 +574,6 @@ xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="{ID}"
|
|
|
574
574
|
}
|
|
575
575
|
else if (opts.metadata) {
|
|
576
576
|
const certificateNode = select(".//*[local-name() = 'X509Certificate']", signatureNode);
|
|
577
|
-
console.log(opts.metadata.getX509Certificate);
|
|
578
|
-
console.log(certUse.signing);
|
|
579
|
-
console.log("执行情况");
|
|
580
|
-
console.log(opts);
|
|
581
577
|
let metadataCert = opts.metadata.getX509Certificate(certUse.signing);
|
|
582
578
|
metadataCert = normalizeCertificates(metadataCert);
|
|
583
579
|
if (certificateNode.length === 0 && metadataCert.length === 0) {
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file saml2-enhancements-integration.ts
|
|
3
|
+
* @desc SAML 2.0 增强功能集成 - 自动应用到绑定和元数据生成
|
|
4
|
+
*/
|
|
5
|
+
import { buildScoping, buildRequestedAuthnContext, buildOneTimeUse, buildProxyRestriction, buildOrganization, buildContactPerson, xmlToString, AuthnContextClassRef, Consent, } from './saml2-enhancements.js';
|
|
6
|
+
import { DOMParser, XMLSerializer } from '@xmldom/xmldom';
|
|
7
|
+
/**
|
|
8
|
+
* 将增强功能应用到 AuthnRequest
|
|
9
|
+
*/
|
|
10
|
+
export function applyAuthnRequestEnhancements(rawSamlRequest, enhancements) {
|
|
11
|
+
const doc = new DOMParser().parseFromString(rawSamlRequest, 'application/xml');
|
|
12
|
+
const authnRequestElement = doc.documentElement;
|
|
13
|
+
if (!authnRequestElement) {
|
|
14
|
+
throw new Error('Invalid AuthnRequest XML');
|
|
15
|
+
}
|
|
16
|
+
// 1. 添加可选属性(仅当配置了值时)
|
|
17
|
+
if (enhancements.forceAuthn !== undefined) {
|
|
18
|
+
authnRequestElement.setAttribute('ForceAuthn', String(enhancements.forceAuthn));
|
|
19
|
+
}
|
|
20
|
+
if (enhancements.isPassive !== undefined) {
|
|
21
|
+
authnRequestElement.setAttribute('IsPassive', String(enhancements.isPassive));
|
|
22
|
+
}
|
|
23
|
+
if (enhancements.consent) {
|
|
24
|
+
authnRequestElement.setAttribute('Consent', enhancements.consent);
|
|
25
|
+
}
|
|
26
|
+
if (enhancements.attributeConsumingServiceIndex !== undefined) {
|
|
27
|
+
authnRequestElement.setAttribute('AttributeConsumingServiceIndex', String(enhancements.attributeConsumingServiceIndex));
|
|
28
|
+
}
|
|
29
|
+
if (enhancements.providerName) {
|
|
30
|
+
authnRequestElement.setAttribute('ProviderName', enhancements.providerName);
|
|
31
|
+
}
|
|
32
|
+
// 2. 添加 Scoping 元素
|
|
33
|
+
if (enhancements.scoping) {
|
|
34
|
+
const scopingElement = buildScopingElement(enhancements.scoping, doc);
|
|
35
|
+
authnRequestElement.appendChild(scopingElement);
|
|
36
|
+
}
|
|
37
|
+
// 3. 添加 RequestedAuthnContext 元素
|
|
38
|
+
if (enhancements.requestedAuthnContext) {
|
|
39
|
+
const contextElement = buildRequestedAuthnContextElement(enhancements.requestedAuthnContext, doc);
|
|
40
|
+
authnRequestElement.appendChild(contextElement);
|
|
41
|
+
}
|
|
42
|
+
return new XMLSerializer().serializeToString(doc);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 将增强功能应用到 Conditions 元素
|
|
46
|
+
*/
|
|
47
|
+
export function applyConditionsEnhancements(rawSamlResponse, enhancements) {
|
|
48
|
+
const doc = new DOMParser().parseFromString(rawSamlResponse, 'application/xml');
|
|
49
|
+
const conditionsElements = doc.getElementsByTagName('saml:Conditions');
|
|
50
|
+
if (conditionsElements.length > 0) {
|
|
51
|
+
const conditionsElement = conditionsElements[0];
|
|
52
|
+
// 1. 添加 OneTimeUse
|
|
53
|
+
if (enhancements.oneTimeUse?.enabled) {
|
|
54
|
+
const oneTimeUseElement = buildOneTimeUseElement(doc);
|
|
55
|
+
conditionsElement.appendChild(oneTimeUseElement);
|
|
56
|
+
}
|
|
57
|
+
// 2. 添加 ProxyRestriction
|
|
58
|
+
if (enhancements.proxyRestriction) {
|
|
59
|
+
const proxyRestrictionElement = buildProxyRestrictionElement(enhancements.proxyRestriction, doc);
|
|
60
|
+
conditionsElement.appendChild(proxyRestrictionElement);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return new XMLSerializer().serializeToString(doc);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 将增强功能应用到 SubjectConfirmationData 元素
|
|
67
|
+
*/
|
|
68
|
+
export function applySubjectConfirmationEnhancements(rawSamlResponse, enhancements) {
|
|
69
|
+
const doc = new DOMParser().parseFromString(rawSamlResponse, 'application/xml');
|
|
70
|
+
const subjectConfirmationDataElements = doc.getElementsByTagName('saml:SubjectConfirmationData');
|
|
71
|
+
if (subjectConfirmationDataElements.length > 0) {
|
|
72
|
+
const element = subjectConfirmationDataElements[0];
|
|
73
|
+
if (enhancements.address) {
|
|
74
|
+
element.setAttribute('Address', enhancements.address);
|
|
75
|
+
}
|
|
76
|
+
if (enhancements.notBefore) {
|
|
77
|
+
element.setAttribute('NotBefore', enhancements.notBefore);
|
|
78
|
+
}
|
|
79
|
+
if (enhancements.inResponseTo) {
|
|
80
|
+
element.setAttribute('InResponseTo', enhancements.inResponseTo);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return new XMLSerializer().serializeToString(doc);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 将增强功能应用到元数据
|
|
87
|
+
*/
|
|
88
|
+
export function applyMetadataEnhancements(rawMetadata, enhancements) {
|
|
89
|
+
const doc = new DOMParser().parseFromString(rawMetadata, 'application/xml');
|
|
90
|
+
const entityDescriptor = doc.documentElement;
|
|
91
|
+
if (!entityDescriptor) {
|
|
92
|
+
throw new Error('Invalid Metadata XML');
|
|
93
|
+
}
|
|
94
|
+
// 1. 添加 Organization
|
|
95
|
+
if (enhancements.organization) {
|
|
96
|
+
const orgElement = buildOrganizationElement(enhancements.organization, doc);
|
|
97
|
+
entityDescriptor.appendChild(orgElement);
|
|
98
|
+
}
|
|
99
|
+
// 2. 添加 ContactPerson
|
|
100
|
+
if (enhancements.contactPerson && enhancements.contactPerson.length > 0) {
|
|
101
|
+
enhancements.contactPerson.forEach(contact => {
|
|
102
|
+
const contactElement = buildContactPersonElement(contact, doc);
|
|
103
|
+
entityDescriptor.appendChild(contactElement);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return new XMLSerializer().serializeToString(doc);
|
|
107
|
+
}
|
|
108
|
+
// ============================================================================
|
|
109
|
+
// 辅助函数:构建 DOM 元素
|
|
110
|
+
// ============================================================================
|
|
111
|
+
function buildScopingElement(config, doc) {
|
|
112
|
+
const scoping = buildScoping(config);
|
|
113
|
+
return xmlObjectToElement(scoping, doc, 'samlp');
|
|
114
|
+
}
|
|
115
|
+
function buildRequestedAuthnContextElement(config, doc) {
|
|
116
|
+
const context = buildRequestedAuthnContext(config);
|
|
117
|
+
return xmlObjectToElement(context, doc, 'samlp');
|
|
118
|
+
}
|
|
119
|
+
function buildOneTimeUseElement(doc) {
|
|
120
|
+
const oneTimeUse = buildOneTimeUse();
|
|
121
|
+
return xmlObjectToElement(oneTimeUse, doc, 'saml');
|
|
122
|
+
}
|
|
123
|
+
function buildProxyRestrictionElement(config, doc) {
|
|
124
|
+
const proxyRestriction = buildProxyRestriction(config);
|
|
125
|
+
return xmlObjectToElement(proxyRestriction, doc, 'saml');
|
|
126
|
+
}
|
|
127
|
+
function buildOrganizationElement(config, doc) {
|
|
128
|
+
const organization = buildOrganization(config);
|
|
129
|
+
return xmlObjectToElement(organization, doc, 'md');
|
|
130
|
+
}
|
|
131
|
+
function buildContactPersonElement(config, doc) {
|
|
132
|
+
const contactPerson = buildContactPerson(config);
|
|
133
|
+
return xmlObjectToElement(contactPerson, doc, 'md');
|
|
134
|
+
}
|
|
135
|
+
// ============================================================================
|
|
136
|
+
// 工具函数:将 XML 对象转换为 DOM 元素
|
|
137
|
+
// ============================================================================
|
|
138
|
+
function xmlObjectToElement(xmlObj, doc, defaultNs) {
|
|
139
|
+
const xmlStr = xmlToString(xmlObj);
|
|
140
|
+
const tempDoc = new DOMParser().parseFromString(xmlStr, 'application/xml');
|
|
141
|
+
return doc.importNode(tempDoc.documentElement, true);
|
|
142
|
+
}
|
|
143
|
+
// ============================================================================
|
|
144
|
+
// 导出常量
|
|
145
|
+
// ============================================================================
|
|
146
|
+
export { AuthnContextClassRef, Consent };
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file saml2-enhancements.ts
|
|
3
|
+
* @desc SAML 2.0 增强功能实现 - 补充核心库中缺失的可选功能
|
|
4
|
+
*
|
|
5
|
+
* 根据 SAML 2.0 规范 (OASIS Standard, 2005-09) 实现以下功能:
|
|
6
|
+
* - Scoping 元素 (用于代理 SSO)
|
|
7
|
+
* - RequestedAuthnContext 完整支持
|
|
8
|
+
* - OneTimeUse 条件
|
|
9
|
+
* - ProxyRestriction 条件
|
|
10
|
+
* - SubjectConfirmation 的 Address/NotBefore 属性
|
|
11
|
+
* - Organization 和 ContactPerson 元数据
|
|
12
|
+
*/
|
|
13
|
+
import xml from 'xml';
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// XML 构建函数
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* 构建 Scoping 元素
|
|
19
|
+
* @param config Scoping 配置
|
|
20
|
+
* @returns Scoping XML 元素
|
|
21
|
+
*/
|
|
22
|
+
export function buildScoping(config) {
|
|
23
|
+
const scoping = {
|
|
24
|
+
'samlp:Scoping': [{
|
|
25
|
+
_attr: {
|
|
26
|
+
'xmlns:samlp': 'urn:oasis:names:tc:SAML:2.0:protocol'
|
|
27
|
+
}
|
|
28
|
+
}]
|
|
29
|
+
};
|
|
30
|
+
if (config.proxyCount !== undefined) {
|
|
31
|
+
scoping['samlp:Scoping'][0]._attr.ProxyCount = config.proxyCount.toString();
|
|
32
|
+
}
|
|
33
|
+
// 添加 RequesterID 元素
|
|
34
|
+
if (config.requesterID && config.requesterID.length > 0) {
|
|
35
|
+
config.requesterID.forEach(id => {
|
|
36
|
+
scoping['samlp:Scoping'].push({
|
|
37
|
+
'samlp:RequesterID': [{ _attr: { URI: id } }]
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
// 添加 IDPList 元素
|
|
42
|
+
if (config.idpList && config.idpList.length > 0) {
|
|
43
|
+
const idpList = { 'samlp:IDPList': [] };
|
|
44
|
+
config.idpList.forEach(entry => {
|
|
45
|
+
const idpEntry = { 'samlp:IDPEntry': [{}] };
|
|
46
|
+
const entryAttrs = { ProviderID: entry.providerID };
|
|
47
|
+
if (entry.name) {
|
|
48
|
+
entryAttrs.Name = entry.name;
|
|
49
|
+
}
|
|
50
|
+
if (entry.loc) {
|
|
51
|
+
entryAttrs.Loc = entry.loc;
|
|
52
|
+
}
|
|
53
|
+
idpEntry['samlp:IDPEntry'][0] = { _attr: entryAttrs };
|
|
54
|
+
idpList['samlp:IDPList'].push(idpEntry);
|
|
55
|
+
});
|
|
56
|
+
scoping['samlp:Scoping'].push(idpList);
|
|
57
|
+
}
|
|
58
|
+
return scoping;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 构建 RequestedAuthnContext 元素
|
|
62
|
+
* @param config RequestedAuthnContext 配置
|
|
63
|
+
* @returns RequestedAuthnContext XML 元素
|
|
64
|
+
*/
|
|
65
|
+
export function buildRequestedAuthnContext(config) {
|
|
66
|
+
const requestedAuthnContext = {
|
|
67
|
+
'samlp:RequestedAuthnContext': [{
|
|
68
|
+
_attr: {
|
|
69
|
+
'xmlns:samlp': 'urn:oasis:names:tc:SAML:2.0:protocol',
|
|
70
|
+
'xmlns:saml': 'urn:oasis:names:tc:SAML:2.0:assertion'
|
|
71
|
+
}
|
|
72
|
+
}]
|
|
73
|
+
};
|
|
74
|
+
if (config.comparison) {
|
|
75
|
+
requestedAuthnContext['samlp:RequestedAuthnContext'][0]._attr.Comparison = config.comparison;
|
|
76
|
+
}
|
|
77
|
+
// 添加 AuthnContextClassRef 元素
|
|
78
|
+
if (config.classRefs && config.classRefs.length > 0) {
|
|
79
|
+
config.classRefs.forEach(ref => {
|
|
80
|
+
requestedAuthnContext['samlp:RequestedAuthnContext'].push({
|
|
81
|
+
'saml:AuthnContextClassRef': [ref]
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
// 添加 AuthnContextDeclRef 元素
|
|
86
|
+
if (config.declRefs && config.declRefs.length > 0) {
|
|
87
|
+
config.declRefs.forEach(ref => {
|
|
88
|
+
requestedAuthnContext['samlp:RequestedAuthnContext'].push({
|
|
89
|
+
'saml:AuthnContextDeclRef': [{ _attr: { URI: ref } }]
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return requestedAuthnContext;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 构建 OneTimeUse 元素
|
|
97
|
+
* @returns OneTimeUse XML 元素
|
|
98
|
+
*/
|
|
99
|
+
export function buildOneTimeUse() {
|
|
100
|
+
return {
|
|
101
|
+
'saml:OneTimeUse': [{
|
|
102
|
+
_attr: {
|
|
103
|
+
'xmlns:saml': 'urn:oasis:names:tc:SAML:2.0:assertion'
|
|
104
|
+
}
|
|
105
|
+
}]
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* 构建 ProxyRestriction 元素
|
|
110
|
+
* @param config ProxyRestriction 配置
|
|
111
|
+
* @returns ProxyRestriction XML 元素
|
|
112
|
+
*/
|
|
113
|
+
export function buildProxyRestriction(config) {
|
|
114
|
+
const proxyRestriction = {
|
|
115
|
+
'saml:ProxyRestriction': [{
|
|
116
|
+
_attr: {
|
|
117
|
+
'xmlns:saml': 'urn:oasis:names:tc:SAML:2.0:assertion'
|
|
118
|
+
}
|
|
119
|
+
}]
|
|
120
|
+
};
|
|
121
|
+
if (config.count !== undefined) {
|
|
122
|
+
proxyRestriction['saml:ProxyRestriction'][0]._attr.Count = config.count.toString();
|
|
123
|
+
}
|
|
124
|
+
// 添加 Audience 元素
|
|
125
|
+
if (config.audience && config.audience.length > 0) {
|
|
126
|
+
config.audience.forEach(aud => {
|
|
127
|
+
proxyRestriction['saml:ProxyRestriction'].push({
|
|
128
|
+
'saml:Audience': [aud]
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return proxyRestriction;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 构建增强的 SubjectConfirmationData
|
|
136
|
+
* @param config SubjectConfirmationData 配置
|
|
137
|
+
* @returns SubjectConfirmationData XML 元素
|
|
138
|
+
*/
|
|
139
|
+
export function buildSubjectConfirmationData(config) {
|
|
140
|
+
const attributes = {
|
|
141
|
+
NotOnOrAfter: config.notOnOrAfter
|
|
142
|
+
};
|
|
143
|
+
if (config.address) {
|
|
144
|
+
attributes.Address = config.address;
|
|
145
|
+
}
|
|
146
|
+
if (config.notBefore) {
|
|
147
|
+
attributes.NotBefore = config.notBefore;
|
|
148
|
+
}
|
|
149
|
+
if (config.recipient) {
|
|
150
|
+
attributes.Recipient = config.recipient;
|
|
151
|
+
}
|
|
152
|
+
if (config.inResponseTo) {
|
|
153
|
+
attributes.InResponseTo = config.inResponseTo;
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
'saml:SubjectConfirmationData': [{ _attr: attributes }]
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* 构建 Organization 元素
|
|
161
|
+
* @param config Organization 配置
|
|
162
|
+
* @returns Organization XML 元素
|
|
163
|
+
*/
|
|
164
|
+
export function buildOrganization(config) {
|
|
165
|
+
const organization = {
|
|
166
|
+
'md:Organization': [{
|
|
167
|
+
_attr: {
|
|
168
|
+
'xmlns:md': 'urn:oasis:names:tc:SAML:2.0:metadata'
|
|
169
|
+
}
|
|
170
|
+
}]
|
|
171
|
+
};
|
|
172
|
+
// 组织名称
|
|
173
|
+
if (config.name) {
|
|
174
|
+
const nameAttrs = {};
|
|
175
|
+
if (config.name['xml:lang']) {
|
|
176
|
+
nameAttrs['xml:lang'] = config.name['xml:lang'];
|
|
177
|
+
}
|
|
178
|
+
organization['md:Organization'].push({
|
|
179
|
+
'md:OrganizationName': [
|
|
180
|
+
{ _attr: nameAttrs },
|
|
181
|
+
config.name.value
|
|
182
|
+
]
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// 组织显示名称
|
|
186
|
+
if (config.displayName) {
|
|
187
|
+
const displayNameAttrs = {};
|
|
188
|
+
if (config.displayName['xml:lang']) {
|
|
189
|
+
displayNameAttrs['xml:lang'] = config.displayName['xml:lang'];
|
|
190
|
+
}
|
|
191
|
+
organization['md:Organization'].push({
|
|
192
|
+
'md:OrganizationDisplayName': [
|
|
193
|
+
{ _attr: displayNameAttrs },
|
|
194
|
+
config.displayName.value
|
|
195
|
+
]
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
// 组织 URL
|
|
199
|
+
if (config.url) {
|
|
200
|
+
const urlAttrs = {};
|
|
201
|
+
if (config.url['xml:lang']) {
|
|
202
|
+
urlAttrs['xml:lang'] = config.url['xml:lang'];
|
|
203
|
+
}
|
|
204
|
+
organization['md:Organization'].push({
|
|
205
|
+
'md:OrganizationURL': [
|
|
206
|
+
{ _attr: urlAttrs },
|
|
207
|
+
config.url.value
|
|
208
|
+
]
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
return organization;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* 构建 ContactPerson 元素
|
|
215
|
+
* @param config ContactPerson 配置
|
|
216
|
+
* @returns ContactPerson XML 元素
|
|
217
|
+
*/
|
|
218
|
+
export function buildContactPerson(config) {
|
|
219
|
+
const contactPerson = {
|
|
220
|
+
'md:ContactPerson': [{
|
|
221
|
+
_attr: {
|
|
222
|
+
'xmlns:md': 'urn:oasis:names:tc:SAML:2.0:metadata',
|
|
223
|
+
contactType: config.contactType
|
|
224
|
+
}
|
|
225
|
+
}]
|
|
226
|
+
};
|
|
227
|
+
if (config.company) {
|
|
228
|
+
contactPerson['md:ContactPerson'].push({
|
|
229
|
+
'md:Company': [config.company]
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
if (config.givenName) {
|
|
233
|
+
contactPerson['md:ContactPerson'].push({
|
|
234
|
+
'md:GivenName': [config.givenName]
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
if (config.surName) {
|
|
238
|
+
contactPerson['md:ContactPerson'].push({
|
|
239
|
+
'md:SurName': [config.surName]
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
if (config.emailAddress) {
|
|
243
|
+
contactPerson['md:ContactPerson'].push({
|
|
244
|
+
'md:EmailAddress': [config.emailAddress]
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
if (config.telephoneNumber) {
|
|
248
|
+
contactPerson['md:ContactPerson'].push({
|
|
249
|
+
'md:TelephoneNumber': [config.telephoneNumber]
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
return contactPerson;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* 构建增强的 AuthnRequest 内容
|
|
256
|
+
* @param baseAuthnRequest 基础 AuthnRequest XML 对象
|
|
257
|
+
* @param enhancedConfig 增强配置
|
|
258
|
+
* @returns 增强后的 AuthnRequest XML 对象
|
|
259
|
+
*/
|
|
260
|
+
export function enhanceAuthnRequest(baseAuthnRequest, enhancedConfig) {
|
|
261
|
+
const authnRequest = JSON.parse(JSON.stringify(baseAuthnRequest));
|
|
262
|
+
const authnRequestContent = authnRequest['samlp:AuthnRequest'];
|
|
263
|
+
// 添加可选属性
|
|
264
|
+
if (enhancedConfig.forceAuthn !== undefined) {
|
|
265
|
+
if (!authnRequestContent[0]._attr) {
|
|
266
|
+
authnRequestContent[0]._attr = {};
|
|
267
|
+
}
|
|
268
|
+
authnRequestContent[0]._attr.ForceAuthn = enhancedConfig.forceAuthn.toString();
|
|
269
|
+
}
|
|
270
|
+
if (enhancedConfig.isPassive !== undefined) {
|
|
271
|
+
if (!authnRequestContent[0]._attr) {
|
|
272
|
+
authnRequestContent[0]._attr = {};
|
|
273
|
+
}
|
|
274
|
+
authnRequestContent[0]._attr.IsPassive = enhancedConfig.isPassive.toString();
|
|
275
|
+
}
|
|
276
|
+
if (enhancedConfig.consent) {
|
|
277
|
+
if (!authnRequestContent[0]._attr) {
|
|
278
|
+
authnRequestContent[0]._attr = {};
|
|
279
|
+
}
|
|
280
|
+
authnRequestContent[0]._attr.Consent = enhancedConfig.consent;
|
|
281
|
+
}
|
|
282
|
+
if (enhancedConfig.attributeConsumingServiceIndex !== undefined) {
|
|
283
|
+
if (!authnRequestContent[0]._attr) {
|
|
284
|
+
authnRequestContent[0]._attr = {};
|
|
285
|
+
}
|
|
286
|
+
authnRequestContent[0]._attr.AttributeConsumingServiceIndex =
|
|
287
|
+
enhancedConfig.attributeConsumingServiceIndex.toString();
|
|
288
|
+
}
|
|
289
|
+
if (enhancedConfig.providerName) {
|
|
290
|
+
if (!authnRequestContent[0]._attr) {
|
|
291
|
+
authnRequestContent[0]._attr = {};
|
|
292
|
+
}
|
|
293
|
+
authnRequestContent[0]._attr.ProviderName = enhancedConfig.providerName;
|
|
294
|
+
}
|
|
295
|
+
// 添加 Scoping 元素
|
|
296
|
+
if (enhancedConfig.scoping) {
|
|
297
|
+
authnRequestContent.push(buildScoping(enhancedConfig.scoping));
|
|
298
|
+
}
|
|
299
|
+
// 添加 RequestedAuthnContext 元素
|
|
300
|
+
if (enhancedConfig.requestedAuthnContext) {
|
|
301
|
+
authnRequestContent.push(buildRequestedAuthnContext(enhancedConfig.requestedAuthnContext));
|
|
302
|
+
}
|
|
303
|
+
return authnRequest;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* 构建增强的 Conditions 内容
|
|
307
|
+
* @param baseConditions 基础 Conditions XML 对象
|
|
308
|
+
* @param enhancedConfig 增强配置
|
|
309
|
+
* @returns 增强后的 Conditions XML 对象
|
|
310
|
+
*/
|
|
311
|
+
export function enhanceConditions(baseConditions, enhancedConfig) {
|
|
312
|
+
const conditions = JSON.parse(JSON.stringify(baseConditions));
|
|
313
|
+
const conditionsContent = conditions['saml:Conditions'];
|
|
314
|
+
// 添加 OneTimeUse 元素
|
|
315
|
+
if (enhancedConfig.oneTimeUse?.enabled) {
|
|
316
|
+
conditionsContent.push(buildOneTimeUse());
|
|
317
|
+
}
|
|
318
|
+
// 添加 ProxyRestriction 元素
|
|
319
|
+
if (enhancedConfig.proxyRestriction) {
|
|
320
|
+
conditionsContent.push(buildProxyRestriction(enhancedConfig.proxyRestriction));
|
|
321
|
+
}
|
|
322
|
+
return conditions;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* 构建增强的 SubjectConfirmation
|
|
326
|
+
* @param baseSubjectConfirmation 基础 SubjectConfirmation XML 对象
|
|
327
|
+
* @param enhancedConfig 增强配置
|
|
328
|
+
* @returns 增强后的 SubjectConfirmation XML 对象
|
|
329
|
+
*/
|
|
330
|
+
export function enhanceSubjectConfirmation(baseSubjectConfirmation, enhancedConfig) {
|
|
331
|
+
const subjectConfirmation = JSON.parse(JSON.stringify(baseSubjectConfirmation));
|
|
332
|
+
// 替换 SubjectConfirmationData 为增强版本
|
|
333
|
+
const subjectConfirmationDataIndex = subjectConfirmation['saml:SubjectConfirmation']
|
|
334
|
+
.findIndex((item) => item['saml:SubjectConfirmationData']);
|
|
335
|
+
if (subjectConfirmationDataIndex !== -1) {
|
|
336
|
+
subjectConfirmation['saml:SubjectConfirmation'][subjectConfirmationDataIndex] =
|
|
337
|
+
buildSubjectConfirmationData(enhancedConfig);
|
|
338
|
+
}
|
|
339
|
+
return subjectConfirmation;
|
|
340
|
+
}
|
|
341
|
+
// ============================================================================
|
|
342
|
+
// 工具函数
|
|
343
|
+
// ============================================================================
|
|
344
|
+
/**
|
|
345
|
+
* 将 XML 对象转换为字符串
|
|
346
|
+
* @param xmlObject XML 对象
|
|
347
|
+
* @returns XML 字符串
|
|
348
|
+
*/
|
|
349
|
+
export function xmlToString(xmlObject) {
|
|
350
|
+
return xml(xmlObject, { declaration: false });
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* 生成标准的 AuthnContextClassRef URI
|
|
354
|
+
*/
|
|
355
|
+
export const AuthnContextClassRef = {
|
|
356
|
+
/** 未指定认证 */
|
|
357
|
+
UNSPECIFIED: 'urn:oasis:names:tc:SAML:2.0:ac:classes:Unspecified',
|
|
358
|
+
/** 用户名/密码 */
|
|
359
|
+
PASSWORD: 'urn:oasis:names:tc:SAML:2.0:ac:classes:Password',
|
|
360
|
+
/** 密码保护传输 */
|
|
361
|
+
PASSWORD_PROTECTED_TRANSPORT: 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport',
|
|
362
|
+
/** X.509 证书 */
|
|
363
|
+
X509: 'urn:oasis:names:tc:SAML:2.0:ac:classes:X509',
|
|
364
|
+
/** PGP */
|
|
365
|
+
PGP: 'urn:oasis:names:tc:SAML:2.0:ac:classes:PGP',
|
|
366
|
+
/** SPKI */
|
|
367
|
+
SPKI: 'urn:oasis:names:tc:SAML:2.0:ac:classes:SPKI',
|
|
368
|
+
/** XML 数字签名 */
|
|
369
|
+
XMLDSIG: 'urn:oasis:names:tc:SAML:2.0:ac:classes:XMLDSig',
|
|
370
|
+
/** 智能卡 */
|
|
371
|
+
SMARTCARD: 'urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard',
|
|
372
|
+
/** Kerberos */
|
|
373
|
+
KERBEROS: 'urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos',
|
|
374
|
+
/** 生物识别 */
|
|
375
|
+
BIOMETRIC: 'urn:oasis:names:tc:SAML:2.0:ac:classes:Biometric',
|
|
376
|
+
/** 远程认证拨号用户服务 */
|
|
377
|
+
RADIUS: 'urn:oasis:names:tc:SAML:2.0:ac:classes:Radius',
|
|
378
|
+
/** 硬件令牌 */
|
|
379
|
+
HARDWARE_TOKEN: 'urn:oasis:names:tc:SAML:2.0:ac:classes:HardwareToken',
|
|
380
|
+
/** 时间同步令牌 */
|
|
381
|
+
TIME_SYNC_TOKEN: 'urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken',
|
|
382
|
+
/** 互联网协议 */
|
|
383
|
+
IP: 'urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol',
|
|
384
|
+
/** 先前会话 */
|
|
385
|
+
PREVIOUS_SESSION: 'urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession',
|
|
386
|
+
/** 共享秘密 */
|
|
387
|
+
SHARED_SECRET: 'urn:oasis:names:tc:SAML:2.0:ac:classes:SharedSecret',
|
|
388
|
+
};
|
|
389
|
+
/**
|
|
390
|
+
* 生成标准的 Consent URI
|
|
391
|
+
*/
|
|
392
|
+
export const Consent = {
|
|
393
|
+
/** 未指定 */
|
|
394
|
+
UNSPECIFIED: 'urn:oasis:names:tc:SAML:2.0:consent:unspecified',
|
|
395
|
+
/** 获得同意 */
|
|
396
|
+
OBTAINED: 'urn:oasis:names:tc:SAML:2.0:consent:obtained',
|
|
397
|
+
/** 先前的同意 */
|
|
398
|
+
PRIOR: 'urn:oasis:names:tc:SAML:2.0:consent:prior',
|
|
399
|
+
/** 隐式同意 */
|
|
400
|
+
IMPLICIT: 'urn:oasis:names:tc:SAML:2.0:consent:implicit',
|
|
401
|
+
/** 显式同意 */
|
|
402
|
+
EXPLICIT: 'urn:oasis:names:tc:SAML:2.0:consent:explicit',
|
|
403
|
+
/** 当前同意 */
|
|
404
|
+
CURRENT: 'urn:oasis:names:tc:SAML:2.0:consent:current',
|
|
405
|
+
};
|
package/build/src/urn.js
CHANGED
|
@@ -159,15 +159,19 @@ const tags = {
|
|
|
159
159
|
AttributeStatement: '{AttributeStatement}',
|
|
160
160
|
ConditionsNotBefore: '{ConditionsNotBefore}',
|
|
161
161
|
ConditionsNotOnOrAfter: '{ConditionsNotOnOrAfter}',
|
|
162
|
+
Consent: '{Consent}',
|
|
162
163
|
Destination: '{Destination}',
|
|
163
164
|
EntityID: '{EntityID}',
|
|
165
|
+
ForceAuthn: '{ForceAuthn}',
|
|
164
166
|
ID: '{ID}',
|
|
167
|
+
IsPassive: '{IsPassive}',
|
|
165
168
|
Issuer: '{Issuer}',
|
|
166
169
|
IssueInstant: '{IssueInstant}',
|
|
167
170
|
InResponseTo: '{InResponseTo}',
|
|
168
171
|
NameID: '{NameID}',
|
|
169
172
|
NameIDFormat: '{NameIDFormat}',
|
|
170
173
|
ProtocolBinding: '{ProtocolBinding}',
|
|
174
|
+
ProviderName: '{ProviderName}',
|
|
171
175
|
SessionIndex: '{SessionIndex}',
|
|
172
176
|
SubjectRecipient: '{SubjectRecipient}',
|
|
173
177
|
SubjectConfirmationDataNotOnOrAfter: '{SubjectConfirmationDataNotOnOrAfter}',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "samlesa",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "High-level API for Single Sign On (SAML 2.0) baseed on samlify ",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"keywords": [
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"vite-tsconfig-paths": "^6.1.1",
|
|
65
65
|
"xml": "^1.0.1",
|
|
66
66
|
"xml-crypto": "^6.1.2",
|
|
67
|
-
"xml-crypto-next": "^
|
|
67
|
+
"xml-crypto-next": "^8.0.0",
|
|
68
68
|
"xml-encryption-next": "^4.6.0",
|
|
69
69
|
"xml-escape": "^1.1.0",
|
|
70
70
|
"xml2js": "^0.6.2",
|
package/types/index.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ import * as Extractor from './src/extractor.js';
|
|
|
9
9
|
import * as Soap from './src/soap.js';
|
|
10
10
|
import { validate, validateMetadata } from './src/schemaValidator.js';
|
|
11
11
|
import { setSchemaValidator, setDOMParserOptions } from './src/api.js';
|
|
12
|
+
export * from './src/saml2-enhancements.js';
|
|
12
13
|
export { Constants, Extractor, IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance, setSchemaValidator, setDOMParserOptions, validate, validateMetadata, Soap };
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,EAAE,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,eAAe,EAAE,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,EACL,SAAS,EACT,SAAS,EAET,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EAEvB,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,IAAI,EAEL,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,EAAE,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,eAAe,EAAE,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEvE,cAAc,6BAA6B,CAAC;AAE5C,OAAO,EACL,SAAS,EACT,SAAS,EAET,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EAEvB,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,IAAI,EAEL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-artifact.d.ts","sourceRoot":"","sources":["../../src/binding-artifact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EACH,2BAA2B,IAAI,gBAAgB,EAC/C,0BAA0B,IAAI,eAAe,EAChD,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"binding-artifact.d.ts","sourceRoot":"","sources":["../../src/binding-artifact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EACH,2BAA2B,IAAI,gBAAgB,EAC/C,0BAA0B,IAAI,eAAe,EAChD,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AA2BvD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU,GAAG,MAAM,CAoBtF;AAED;;;;;;GAMG;AACH,iBAAS,gBAAgB,CACrB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE;IACJ,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,EACD,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAC5D,cAAc,CA2GhB;AAED;;;;GAIG;AACH,iBAAe,iBAAiB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAuE3F;AAED;;;;;;;GAOG;AACH,iBAAe,wBAAwB,CAAC,MAAM,EAAE;IAC5C,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,GAAG,CAAC,CA6Cf;AAED;;;;;;;GAOG;AACH,iBAAe,yBAAyB,CAAC,MAAM,EAAE;IAC7C,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,GAAG,CAAC,CAyJf;AAED,QAAA,MAAM,eAAe;;;;;;CAMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-post.d.ts","sourceRoot":"","sources":["../../src/binding-post.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"binding-post.d.ts","sourceRoot":"","sources":["../../src/binding-post.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAQhD,OAAO,EAAC,yBAAyB,EAAC,MAAM,YAAY,CAAC;AAMrD;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAsE/I;AAGD;;;;;;;;;GASG;AACH,iBAAe,mBAAmB,CAAC,EAAC,WAAgB,EAAE,MAAM,EAAE,IAAS,EAAE,oBAAoB,EAAE,eAAuB,EAAE,kBAAuB,EAAE,OAAO,EAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAuJ7M;AAED;;;;;;;GAOG;AACH,iBAAS,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,KAAA,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CA2D1K;AAED;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CA6DvI;AAED,QAAA,MAAM,WAAW;;;;;CAKhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-redirect.d.ts","sourceRoot":"","sources":["../../src/binding-redirect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,gBAAgB,IAAI,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,eAAe,IAAI,EAAE,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"binding-redirect.d.ts","sourceRoot":"","sources":["../../src/binding-redirect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,gBAAgB,IAAI,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,eAAe,IAAI,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAQrD,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAiED;;;;;GAKG;AAEH,iBAAS,uBAAuB,CAAC,MAAM,EAAE;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,GAAG,CAgDnE;AACD;;;;;GAKG;AAEH,iBAAS,0BAA0B,CAAC,MAAM,EAAE;IACxC,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC9B,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,GAAG,CAqGnE;AAID;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,EAAE,kBAAkB,UAAK,GAAG,cAAc,CAmG1M;AAED;;;;;;GAMG;AACH,iBAAS,wBAAwB,CAAC,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAwC9J;AAED;;;;;GAKG;AACF,iBAAS,yBAAyB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAyCnK;AAED,QAAA,MAAM,eAAe;;;;;;CAMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libsaml.d.ts","sourceRoot":"","sources":["../../src/libsaml.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"libsaml.d.ts","sourceRoot":"","sources":["../../src/libsaml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file saml2-enhancements-integration.ts
|
|
3
|
+
* @desc SAML 2.0 增强功能集成 - 自动应用到绑定和元数据生成
|
|
4
|
+
*/
|
|
5
|
+
import { AuthnContextClassRef, Consent } from './saml2-enhancements.js';
|
|
6
|
+
import type { AuthnRequestEnhancedConfig, ConditionsEnhancedConfig, SubjectConfirmationDataConfig, MetadataEnhancedConfig } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* 将增强功能应用到 AuthnRequest
|
|
9
|
+
*/
|
|
10
|
+
export declare function applyAuthnRequestEnhancements(rawSamlRequest: string, enhancements: AuthnRequestEnhancedConfig): string;
|
|
11
|
+
/**
|
|
12
|
+
* 将增强功能应用到 Conditions 元素
|
|
13
|
+
*/
|
|
14
|
+
export declare function applyConditionsEnhancements(rawSamlResponse: string, enhancements: ConditionsEnhancedConfig): string;
|
|
15
|
+
/**
|
|
16
|
+
* 将增强功能应用到 SubjectConfirmationData 元素
|
|
17
|
+
*/
|
|
18
|
+
export declare function applySubjectConfirmationEnhancements(rawSamlResponse: string, enhancements: SubjectConfirmationDataConfig): string;
|
|
19
|
+
/**
|
|
20
|
+
* 将增强功能应用到元数据
|
|
21
|
+
*/
|
|
22
|
+
export declare function applyMetadataEnhancements(rawMetadata: string, enhancements: MetadataEnhancedConfig): string;
|
|
23
|
+
export { AuthnContextClassRef, Consent };
|
|
24
|
+
//# sourceMappingURL=saml2-enhancements-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saml2-enhancements-integration.d.ts","sourceRoot":"","sources":["../../src/saml2-enhancements-integration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EASH,oBAAoB,EACpB,OAAO,EACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACR,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACzB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,wBAAgB,6BAA6B,CACzC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,0BAA0B,GACzC,MAAM,CAsCR;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACvC,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,wBAAwB,GACvC,MAAM,CAqBR;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAChD,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,6BAA6B,GAC5C,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACrC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,sBAAsB,GACrC,MAAM,CAuBR;AAkDD,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file saml2-enhancements.ts
|
|
3
|
+
* @desc SAML 2.0 增强功能实现 - 补充核心库中缺失的可选功能
|
|
4
|
+
*
|
|
5
|
+
* 根据 SAML 2.0 规范 (OASIS Standard, 2005-09) 实现以下功能:
|
|
6
|
+
* - Scoping 元素 (用于代理 SSO)
|
|
7
|
+
* - RequestedAuthnContext 完整支持
|
|
8
|
+
* - OneTimeUse 条件
|
|
9
|
+
* - ProxyRestriction 条件
|
|
10
|
+
* - SubjectConfirmation 的 Address/NotBefore 属性
|
|
11
|
+
* - Organization 和 ContactPerson 元数据
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Scoping 元素配置 - 用于代理 SSO 场景
|
|
15
|
+
* @see SAML Core 2.0, Section 3.4.1
|
|
16
|
+
*/
|
|
17
|
+
export interface ScopingConfig {
|
|
18
|
+
/** 代理计数限制 */
|
|
19
|
+
proxyCount?: number;
|
|
20
|
+
/** 请求者 ID 列表 */
|
|
21
|
+
requesterID?: string[];
|
|
22
|
+
/** IdP 列表 */
|
|
23
|
+
idpList?: IdpEntry[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* IdP 列表条目
|
|
27
|
+
*/
|
|
28
|
+
export interface IdpEntry {
|
|
29
|
+
/** IdP 提供者 ID */
|
|
30
|
+
providerID: string;
|
|
31
|
+
/** IdP 名称 (可选) */
|
|
32
|
+
name?: string;
|
|
33
|
+
/** IdP 位置 (可选) */
|
|
34
|
+
loc?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* RequestedAuthnContext 配置
|
|
38
|
+
* @see SAML Core 2.0, Section 3.3.2.2
|
|
39
|
+
*/
|
|
40
|
+
export interface RequestedAuthnContextConfig {
|
|
41
|
+
/** 比较方法: exact | minimum | maximum | better */
|
|
42
|
+
comparison?: 'exact' | 'minimum' | 'maximum' | 'better';
|
|
43
|
+
/** 认证上下文类引用 URI 列表 */
|
|
44
|
+
classRefs?: string[];
|
|
45
|
+
/** 认证上下文声明引用 (可选) */
|
|
46
|
+
declRefs?: string[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* OneTimeUse 条件配置
|
|
50
|
+
* @see SAML Core 2.0, Section 3.1.4.2
|
|
51
|
+
*/
|
|
52
|
+
export interface OneTimeUseConfig {
|
|
53
|
+
/** 启用一次性使用条件 */
|
|
54
|
+
enabled: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* ProxyRestriction 条件配置
|
|
58
|
+
* @see SAML Core 2.0, Section 3.1.4.3
|
|
59
|
+
*/
|
|
60
|
+
export interface ProxyRestrictionConfig {
|
|
61
|
+
/** 代理计数限制 */
|
|
62
|
+
count?: number;
|
|
63
|
+
/** 受众列表 */
|
|
64
|
+
audience?: string[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* SubjectConfirmation 增强配置
|
|
68
|
+
* @see SAML Core 2.0, Section 3.2.1
|
|
69
|
+
*/
|
|
70
|
+
export interface SubjectConfirmationDataConfig {
|
|
71
|
+
/** 客户端 IP 地址 (可选) */
|
|
72
|
+
address?: string;
|
|
73
|
+
/** 生效时间 (可选) */
|
|
74
|
+
notBefore?: string;
|
|
75
|
+
/** 过期时间 (必需) */
|
|
76
|
+
notOnOrAfter: string;
|
|
77
|
+
/** 接收者 (可选) */
|
|
78
|
+
recipient?: string;
|
|
79
|
+
/** 响应中的 ID (可选) */
|
|
80
|
+
inResponseTo?: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Organization 信息配置
|
|
84
|
+
* @see SAML Metadata 2.0, Section 2.3.4
|
|
85
|
+
*/
|
|
86
|
+
export interface OrganizationConfig {
|
|
87
|
+
/** 组织名称 */
|
|
88
|
+
name: {
|
|
89
|
+
/** 语言代码 (如 'en', 'zh-CN') */
|
|
90
|
+
'xml:lang'?: string;
|
|
91
|
+
/** 组织名称文本 */
|
|
92
|
+
value: string;
|
|
93
|
+
};
|
|
94
|
+
/** 组织显示名称 */
|
|
95
|
+
displayName?: {
|
|
96
|
+
'xml:lang'?: string;
|
|
97
|
+
value: string;
|
|
98
|
+
};
|
|
99
|
+
/** 组织 URL */
|
|
100
|
+
url?: {
|
|
101
|
+
'xml:lang'?: string;
|
|
102
|
+
value: string;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* ContactPerson 信息配置
|
|
107
|
+
* @see SAML Metadata 2.0, Section 2.3.5
|
|
108
|
+
*/
|
|
109
|
+
export interface ContactPersonConfig {
|
|
110
|
+
/** 联系人类型 */
|
|
111
|
+
contactType: 'technical' | 'support' | 'administrative' | 'billing' | 'other';
|
|
112
|
+
/** 公司名称 (可选) */
|
|
113
|
+
company?: string;
|
|
114
|
+
/** 名字 (可选) */
|
|
115
|
+
givenName?: string;
|
|
116
|
+
/** 姓氏 (可选) */
|
|
117
|
+
surName?: string;
|
|
118
|
+
/** 电子邮件 (可选) */
|
|
119
|
+
emailAddress?: string;
|
|
120
|
+
/** 电话号码 (可选) */
|
|
121
|
+
telephoneNumber?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* AuthnRequest 增强配置
|
|
125
|
+
*/
|
|
126
|
+
export interface AuthnRequestEnhancedConfig {
|
|
127
|
+
/** Scoping 配置 */
|
|
128
|
+
scoping?: ScopingConfig;
|
|
129
|
+
/** RequestedAuthnContext 配置 */
|
|
130
|
+
requestedAuthnContext?: RequestedAuthnContextConfig;
|
|
131
|
+
/** 强制认证 */
|
|
132
|
+
forceAuthn?: boolean;
|
|
133
|
+
/** 被动认证 */
|
|
134
|
+
isPassive?: boolean;
|
|
135
|
+
/** 用户同意状态 */
|
|
136
|
+
consent?: string;
|
|
137
|
+
/** 属性消费服务索引 */
|
|
138
|
+
attributeConsumingServiceIndex?: number;
|
|
139
|
+
/** 提供者名称 */
|
|
140
|
+
providerName?: string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Response 增强配置
|
|
144
|
+
*/
|
|
145
|
+
export interface ResponseEnhancedConfig {
|
|
146
|
+
/** 用户同意状态 */
|
|
147
|
+
consent?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Conditions 增强配置
|
|
151
|
+
*/
|
|
152
|
+
export interface ConditionsEnhancedConfig {
|
|
153
|
+
/** OneTimeUse 配置 */
|
|
154
|
+
oneTimeUse?: OneTimeUseConfig;
|
|
155
|
+
/** ProxyRestriction 配置 */
|
|
156
|
+
proxyRestriction?: ProxyRestrictionConfig;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 构建 Scoping 元素
|
|
160
|
+
* @param config Scoping 配置
|
|
161
|
+
* @returns Scoping XML 元素
|
|
162
|
+
*/
|
|
163
|
+
export declare function buildScoping(config: ScopingConfig): any;
|
|
164
|
+
/**
|
|
165
|
+
* 构建 RequestedAuthnContext 元素
|
|
166
|
+
* @param config RequestedAuthnContext 配置
|
|
167
|
+
* @returns RequestedAuthnContext XML 元素
|
|
168
|
+
*/
|
|
169
|
+
export declare function buildRequestedAuthnContext(config: RequestedAuthnContextConfig): any;
|
|
170
|
+
/**
|
|
171
|
+
* 构建 OneTimeUse 元素
|
|
172
|
+
* @returns OneTimeUse XML 元素
|
|
173
|
+
*/
|
|
174
|
+
export declare function buildOneTimeUse(): any;
|
|
175
|
+
/**
|
|
176
|
+
* 构建 ProxyRestriction 元素
|
|
177
|
+
* @param config ProxyRestriction 配置
|
|
178
|
+
* @returns ProxyRestriction XML 元素
|
|
179
|
+
*/
|
|
180
|
+
export declare function buildProxyRestriction(config: ProxyRestrictionConfig): any;
|
|
181
|
+
/**
|
|
182
|
+
* 构建增强的 SubjectConfirmationData
|
|
183
|
+
* @param config SubjectConfirmationData 配置
|
|
184
|
+
* @returns SubjectConfirmationData XML 元素
|
|
185
|
+
*/
|
|
186
|
+
export declare function buildSubjectConfirmationData(config: {
|
|
187
|
+
notOnOrAfter: string;
|
|
188
|
+
address?: string;
|
|
189
|
+
notBefore?: string;
|
|
190
|
+
recipient?: string;
|
|
191
|
+
inResponseTo?: string;
|
|
192
|
+
}): any;
|
|
193
|
+
/**
|
|
194
|
+
* 构建 Organization 元素
|
|
195
|
+
* @param config Organization 配置
|
|
196
|
+
* @returns Organization XML 元素
|
|
197
|
+
*/
|
|
198
|
+
export declare function buildOrganization(config: OrganizationConfig): any;
|
|
199
|
+
/**
|
|
200
|
+
* 构建 ContactPerson 元素
|
|
201
|
+
* @param config ContactPerson 配置
|
|
202
|
+
* @returns ContactPerson XML 元素
|
|
203
|
+
*/
|
|
204
|
+
export declare function buildContactPerson(config: ContactPersonConfig): any;
|
|
205
|
+
/**
|
|
206
|
+
* 构建增强的 AuthnRequest 内容
|
|
207
|
+
* @param baseAuthnRequest 基础 AuthnRequest XML 对象
|
|
208
|
+
* @param enhancedConfig 增强配置
|
|
209
|
+
* @returns 增强后的 AuthnRequest XML 对象
|
|
210
|
+
*/
|
|
211
|
+
export declare function enhanceAuthnRequest(baseAuthnRequest: any, enhancedConfig: AuthnRequestEnhancedConfig): any;
|
|
212
|
+
/**
|
|
213
|
+
* 构建增强的 Conditions 内容
|
|
214
|
+
* @param baseConditions 基础 Conditions XML 对象
|
|
215
|
+
* @param enhancedConfig 增强配置
|
|
216
|
+
* @returns 增强后的 Conditions XML 对象
|
|
217
|
+
*/
|
|
218
|
+
export declare function enhanceConditions(baseConditions: any, enhancedConfig: ConditionsEnhancedConfig): any;
|
|
219
|
+
/**
|
|
220
|
+
* 构建增强的 SubjectConfirmation
|
|
221
|
+
* @param baseSubjectConfirmation 基础 SubjectConfirmation XML 对象
|
|
222
|
+
* @param enhancedConfig 增强配置
|
|
223
|
+
* @returns 增强后的 SubjectConfirmation XML 对象
|
|
224
|
+
*/
|
|
225
|
+
export declare function enhanceSubjectConfirmation(baseSubjectConfirmation: any, enhancedConfig: SubjectConfirmationDataConfig): any;
|
|
226
|
+
/**
|
|
227
|
+
* 将 XML 对象转换为字符串
|
|
228
|
+
* @param xmlObject XML 对象
|
|
229
|
+
* @returns XML 字符串
|
|
230
|
+
*/
|
|
231
|
+
export declare function xmlToString(xmlObject: any): string;
|
|
232
|
+
/**
|
|
233
|
+
* 生成标准的 AuthnContextClassRef URI
|
|
234
|
+
*/
|
|
235
|
+
export declare const AuthnContextClassRef: {
|
|
236
|
+
/** 未指定认证 */
|
|
237
|
+
readonly UNSPECIFIED: "urn:oasis:names:tc:SAML:2.0:ac:classes:Unspecified";
|
|
238
|
+
/** 用户名/密码 */
|
|
239
|
+
readonly PASSWORD: "urn:oasis:names:tc:SAML:2.0:ac:classes:Password";
|
|
240
|
+
/** 密码保护传输 */
|
|
241
|
+
readonly PASSWORD_PROTECTED_TRANSPORT: "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport";
|
|
242
|
+
/** X.509 证书 */
|
|
243
|
+
readonly X509: "urn:oasis:names:tc:SAML:2.0:ac:classes:X509";
|
|
244
|
+
/** PGP */
|
|
245
|
+
readonly PGP: "urn:oasis:names:tc:SAML:2.0:ac:classes:PGP";
|
|
246
|
+
/** SPKI */
|
|
247
|
+
readonly SPKI: "urn:oasis:names:tc:SAML:2.0:ac:classes:SPKI";
|
|
248
|
+
/** XML 数字签名 */
|
|
249
|
+
readonly XMLDSIG: "urn:oasis:names:tc:SAML:2.0:ac:classes:XMLDSig";
|
|
250
|
+
/** 智能卡 */
|
|
251
|
+
readonly SMARTCARD: "urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard";
|
|
252
|
+
/** Kerberos */
|
|
253
|
+
readonly KERBEROS: "urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos";
|
|
254
|
+
/** 生物识别 */
|
|
255
|
+
readonly BIOMETRIC: "urn:oasis:names:tc:SAML:2.0:ac:classes:Biometric";
|
|
256
|
+
/** 远程认证拨号用户服务 */
|
|
257
|
+
readonly RADIUS: "urn:oasis:names:tc:SAML:2.0:ac:classes:Radius";
|
|
258
|
+
/** 硬件令牌 */
|
|
259
|
+
readonly HARDWARE_TOKEN: "urn:oasis:names:tc:SAML:2.0:ac:classes:HardwareToken";
|
|
260
|
+
/** 时间同步令牌 */
|
|
261
|
+
readonly TIME_SYNC_TOKEN: "urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken";
|
|
262
|
+
/** 互联网协议 */
|
|
263
|
+
readonly IP: "urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol";
|
|
264
|
+
/** 先前会话 */
|
|
265
|
+
readonly PREVIOUS_SESSION: "urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession";
|
|
266
|
+
/** 共享秘密 */
|
|
267
|
+
readonly SHARED_SECRET: "urn:oasis:names:tc:SAML:2.0:ac:classes:SharedSecret";
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* 生成标准的 Consent URI
|
|
271
|
+
*/
|
|
272
|
+
export declare const Consent: {
|
|
273
|
+
/** 未指定 */
|
|
274
|
+
readonly UNSPECIFIED: "urn:oasis:names:tc:SAML:2.0:consent:unspecified";
|
|
275
|
+
/** 获得同意 */
|
|
276
|
+
readonly OBTAINED: "urn:oasis:names:tc:SAML:2.0:consent:obtained";
|
|
277
|
+
/** 先前的同意 */
|
|
278
|
+
readonly PRIOR: "urn:oasis:names:tc:SAML:2.0:consent:prior";
|
|
279
|
+
/** 隐式同意 */
|
|
280
|
+
readonly IMPLICIT: "urn:oasis:names:tc:SAML:2.0:consent:implicit";
|
|
281
|
+
/** 显式同意 */
|
|
282
|
+
readonly EXPLICIT: "urn:oasis:names:tc:SAML:2.0:consent:explicit";
|
|
283
|
+
/** 当前同意 */
|
|
284
|
+
readonly CURRENT: "urn:oasis:names:tc:SAML:2.0:consent:current";
|
|
285
|
+
};
|
|
286
|
+
//# sourceMappingURL=saml2-enhancements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saml2-enhancements.d.ts","sourceRoot":"","sources":["../../src/saml2-enhancements.ts"],"names":[],"mappings":"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"}
|
package/types/src/types.d.ts
CHANGED
|
@@ -43,6 +43,101 @@ export type AttributeConsumingService = {
|
|
|
43
43
|
requestedAttributes: RequestedAttribute[];
|
|
44
44
|
};
|
|
45
45
|
export type AttrService = AttributeConsumingService[];
|
|
46
|
+
/**
|
|
47
|
+
* Scoping 配置 - 用于代理 SSO
|
|
48
|
+
*/
|
|
49
|
+
export interface ScopingConfig {
|
|
50
|
+
proxyCount?: number;
|
|
51
|
+
requesterID?: string[];
|
|
52
|
+
idpList?: Array<{
|
|
53
|
+
providerID: string;
|
|
54
|
+
name?: string;
|
|
55
|
+
loc?: string;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* RequestedAuthnContext 配置 - 用于 MFA 等场景
|
|
60
|
+
*/
|
|
61
|
+
export interface RequestedAuthnContextConfig {
|
|
62
|
+
comparison?: 'exact' | 'minimum' | 'maximum' | 'better';
|
|
63
|
+
classRefs?: string[];
|
|
64
|
+
declRefs?: string[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* OneTimeUse 条件配置
|
|
68
|
+
*/
|
|
69
|
+
export interface OneTimeUseConfig {
|
|
70
|
+
enabled: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* ProxyRestriction 条件配置
|
|
74
|
+
*/
|
|
75
|
+
export interface ProxyRestrictionConfig {
|
|
76
|
+
count?: number;
|
|
77
|
+
audience?: string[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* SubjectConfirmation 增强配置
|
|
81
|
+
*/
|
|
82
|
+
export interface SubjectConfirmationDataConfig {
|
|
83
|
+
address?: string;
|
|
84
|
+
notBefore?: string;
|
|
85
|
+
inResponseTo?: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Organization 信息配置
|
|
89
|
+
*/
|
|
90
|
+
export interface OrganizationConfig {
|
|
91
|
+
name: {
|
|
92
|
+
'xml:lang'?: string;
|
|
93
|
+
value: string;
|
|
94
|
+
};
|
|
95
|
+
displayName?: {
|
|
96
|
+
'xml:lang'?: string;
|
|
97
|
+
value: string;
|
|
98
|
+
};
|
|
99
|
+
url?: {
|
|
100
|
+
'xml:lang'?: string;
|
|
101
|
+
value: string;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* ContactPerson 信息配置
|
|
106
|
+
*/
|
|
107
|
+
export interface ContactPersonConfig {
|
|
108
|
+
contactType: 'technical' | 'support' | 'administrative' | 'billing' | 'other';
|
|
109
|
+
company?: string;
|
|
110
|
+
givenName?: string;
|
|
111
|
+
surName?: string;
|
|
112
|
+
emailAddress?: string;
|
|
113
|
+
telephoneNumber?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* AuthnRequest 增强配置
|
|
117
|
+
*/
|
|
118
|
+
export interface AuthnRequestEnhancedConfig {
|
|
119
|
+
scoping?: ScopingConfig;
|
|
120
|
+
requestedAuthnContext?: RequestedAuthnContextConfig;
|
|
121
|
+
forceAuthn?: boolean;
|
|
122
|
+
isPassive?: boolean;
|
|
123
|
+
consent?: string;
|
|
124
|
+
attributeConsumingServiceIndex?: number;
|
|
125
|
+
providerName?: string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Conditions 增强配置
|
|
129
|
+
*/
|
|
130
|
+
export interface ConditionsEnhancedConfig {
|
|
131
|
+
oneTimeUse?: OneTimeUseConfig;
|
|
132
|
+
proxyRestriction?: ProxyRestrictionConfig;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 元数据增强配置
|
|
136
|
+
*/
|
|
137
|
+
export interface MetadataEnhancedConfig {
|
|
138
|
+
organization?: OrganizationConfig;
|
|
139
|
+
contactPerson?: ContactPersonConfig[];
|
|
140
|
+
}
|
|
46
141
|
export interface MetadataIdpOptions {
|
|
47
142
|
entityID?: string;
|
|
48
143
|
signingCert?: string | Buffer | (string | Buffer)[];
|
|
@@ -53,6 +148,7 @@ export interface MetadataIdpOptions {
|
|
|
53
148
|
singleLogoutService?: SSOService[];
|
|
54
149
|
artifactResolutionService?: SSOService[];
|
|
55
150
|
requestSignatureAlgorithm?: string;
|
|
151
|
+
metadataEnhancements?: MetadataEnhancedConfig;
|
|
56
152
|
}
|
|
57
153
|
export type MetadataIdpConstructor = MetadataIdpOptions | MetadataFile;
|
|
58
154
|
export interface MetadataSpOptions {
|
|
@@ -72,6 +168,7 @@ export interface MetadataSpOptions {
|
|
|
72
168
|
attributeConsumingService?: AttributeConsumingService[];
|
|
73
169
|
artifactResolutionService?: SSOService[];
|
|
74
170
|
elementsOrder?: string[];
|
|
171
|
+
metadataEnhancements?: MetadataEnhancedConfig;
|
|
75
172
|
}
|
|
76
173
|
export type MetadataSpConstructor = MetadataSpOptions | MetadataFile;
|
|
77
174
|
export type EntitySetting = ServiceProviderSettings & IdentityProviderSettings;
|
|
@@ -111,6 +208,10 @@ export type ServiceProviderSettings = {
|
|
|
111
208
|
allowCreate?: boolean;
|
|
112
209
|
relayState?: string;
|
|
113
210
|
clockDrifts?: [number, number];
|
|
211
|
+
authnRequestEnhancements?: AuthnRequestEnhancedConfig;
|
|
212
|
+
conditionsEnhancements?: ConditionsEnhancedConfig;
|
|
213
|
+
subjectConfirmationEnhancements?: SubjectConfirmationDataConfig;
|
|
214
|
+
metadataEnhancements?: MetadataEnhancedConfig;
|
|
114
215
|
};
|
|
115
216
|
export type IdentityProviderSettings = {
|
|
116
217
|
metadata?: string | Buffer;
|
|
@@ -141,5 +242,9 @@ export type IdentityProviderSettings = {
|
|
|
141
242
|
tagPrefix?: {
|
|
142
243
|
[key: string]: string;
|
|
143
244
|
};
|
|
245
|
+
authnRequestEnhancements?: AuthnRequestEnhancedConfig;
|
|
246
|
+
conditionsEnhancements?: ConditionsEnhancedConfig;
|
|
247
|
+
subjectConfirmationEnhancements?: SubjectConfirmationDataConfig;
|
|
248
|
+
metadataEnhancements?: MetadataEnhancedConfig;
|
|
144
249
|
};
|
|
145
250
|
//# sourceMappingURL=types.d.ts.map
|
package/types/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAQ,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,IAAI,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,WAAW,IAAI,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,eAAe,IAAI,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3C,MAAM,WAAY,yBAAyB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,EAAE;QACJ,GAAG,EAAE,gBAAgB,CAAC;QACtB,EAAE,EAAE,eAAe,CAAC;KACvB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AACD,KAAK,UAAU,GAAG;IACd,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;CAC3C,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/types/src/urn.d.ts
CHANGED
|
@@ -135,15 +135,19 @@ declare const tags: {
|
|
|
135
135
|
AttributeStatement: string;
|
|
136
136
|
ConditionsNotBefore: string;
|
|
137
137
|
ConditionsNotOnOrAfter: string;
|
|
138
|
+
Consent: string;
|
|
138
139
|
Destination: string;
|
|
139
140
|
EntityID: string;
|
|
141
|
+
ForceAuthn: string;
|
|
140
142
|
ID: string;
|
|
143
|
+
IsPassive: string;
|
|
141
144
|
Issuer: string;
|
|
142
145
|
IssueInstant: string;
|
|
143
146
|
InResponseTo: string;
|
|
144
147
|
NameID: string;
|
|
145
148
|
NameIDFormat: string;
|
|
146
149
|
ProtocolBinding: string;
|
|
150
|
+
ProviderName: string;
|
|
147
151
|
SessionIndex: string;
|
|
148
152
|
SubjectRecipient: string;
|
|
149
153
|
SubjectConfirmationDataNotOnOrAfter: string;
|
package/types/src/urn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../src/urn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,gBAAgB;IAC1B,QAAQ,uDAAuD;IAC/D,IAAI,mDAAmD;IACvD,UAAU,8DAA8D;IACxE,QAAQ,uDAAuD;CAChE;AACD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAK/F,CAAC;AAGD,iBAAS,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAEjG;AAED,oBAAY,qBAAqB;IAC/B,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;CAC1B;AAED,oBAAY,UAAU;IAEpB,OAAO,+CAA+C;IACtD,SAAS,iDAAiD;IAC1D,SAAS,iDAAiD;IAC1D,eAAe,uDAAuD;IAEtE,UAAU,mDAAmD;IAC7D,sBAAsB,8DAA8D;IACpF,mBAAmB,2DAA2D;IAC9E,cAAc,sDAAsD;IACpE,cAAc,sDAAsD;IACpE,SAAS,iDAAiD;IAC1D,cAAc,sDAAsD;IACpE,aAAa,qDAAqD;IAClE,kBAAkB,0DAA0D;IAC5E,aAAa,qDAAqD;IAClE,kBAAkB,0DAA0D;IAC5E,wBAAwB,gEAAgE;IACxF,qBAAqB,6DAA6D;IAClF,oBAAoB,4DAA4D;IAChF,qBAAqB,6DAA6D;IAClF,gBAAgB,wDAAwD;IACxE,kBAAkB,0DAA0D;IAC5E,gBAAgB,wDAAwD;IACxE,kBAAkB,0DAA0D;CAC7E;AAED,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoGd,CAAC;AAEF,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../src/urn.ts"],"names":[],"mappings":"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"}
|