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 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;
@@ -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.0.0",
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": "^7.0.4",
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
@@ -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;AA0BvD;;;;;;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,CAsGhB;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
+ {"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,6 +1,5 @@
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 type { BindingContext } from './entity.js';
@@ -1 +1 @@
1
- {"version":3,"file":"binding-post.d.ts","sourceRoot":"","sources":["../../src/binding-post.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAQhD,OAAO,EAAC,yBAAyB,EAAC,MAAM,YAAY,CAAC;AAKrD;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,cAAc,CAiE/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
+ {"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;AAOrD,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,CA0CnE;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,CAyFnE;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
+ {"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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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
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;AAMtD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qBAAqB,CAAC,EAAE,2BAA2B,CAAC;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,yBAAyB,CAAC,EAAC,UAAU,EAAE,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C;AAED,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,YAAY,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,wBAAwB,CAAC,EAAE,UAAU,EAAE,CAAC;IACxC,yBAAyB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACxD,yBAAyB,CAAC,EAAC,UAAU,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C;AAED,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,YAAY,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,wBAAwB,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;KACpD,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,wBAAwB,CAAC,EAAE,UAAU,EAAE,CAAC;IACxC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/B,wBAAwB,CAAC,EAAE,0BAA0B,CAAC;IACtD,sBAAsB,CAAC,EAAE,wBAAwB,CAAC;IAClD,+BAA+B,CAAC,EAAE,6BAA6B,CAAC;IAChE,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,0BAA0B;IAC1B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,iCAAiC;IACjC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAE9C,iCAAiC;IACjC,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAE7C,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAEtC,wBAAwB,CAAC,EAAE,0BAA0B,CAAC;IACtD,sBAAsB,CAAC,EAAE,wBAAwB,CAAC;IAClD,+BAA+B,CAAC,EAAE,6BAA6B,CAAC;IAChE,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C,CAAC"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../src/urn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../src/urn.ts"],"names":[],"mappings":"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"}