samlesa 4.4.0 → 4.5.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/README.md +19 -19
- package/build/src/extractor.js +1 -0
- package/build/src/flow.js +190 -230
- package/build/src/saml2-enhancements-integration.js +5 -6
- package/build/src/saml2-enhancements.js +14 -15
- package/package.json +87 -87
- package/types/src/extractor.d.ts.map +1 -1
- package/types/src/flow.d.ts.map +1 -1
- package/types/src/saml2-enhancements-integration.d.ts.map +1 -1
- package/types/src/saml2-enhancements.d.ts.map +1 -1
- package/types/src/types.d.ts +2 -0
- package/types/src/types.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -154,25 +154,25 @@ const { context: samlResponse } = await idp.createLoginResponse({
|
|
|
154
154
|
});
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
### Artifact Binding Support
|
|
158
|
-
|
|
159
|
-
```typescript
|
|
160
|
-
import { ServiceProvider, IdentityProvider } from 'samlesa';
|
|
161
|
-
|
|
162
|
-
// Create front-channel artifact login request
|
|
163
|
-
const loginRequest = sp.createLoginRequest(idp, 'artifact');
|
|
164
|
-
|
|
165
|
-
// Parse ArtifactResolve request on the SP artifact resolution endpoint
|
|
166
|
-
const artifactResolve = await sp.parseArtifactResolveRequest(idp, soapXml);
|
|
167
|
-
|
|
168
|
-
// Create ArtifactResponse with the resolved SAML message
|
|
169
|
-
const artifactResponse = await sp.createArtifactResolveResponse(idp, {
|
|
170
|
-
inResponseTo: artifactResolve.extract.request.id,
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
// Parse artifact-based login response from the ACS endpoint
|
|
174
|
-
const responseResult = await sp.parseLoginResponse(idp, 'artifact', request);
|
|
175
|
-
```
|
|
157
|
+
### Artifact Binding Support
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
import { ServiceProvider, IdentityProvider } from 'samlesa';
|
|
161
|
+
|
|
162
|
+
// Create front-channel artifact login request
|
|
163
|
+
const loginRequest = sp.createLoginRequest(idp, 'artifact');
|
|
164
|
+
|
|
165
|
+
// Parse ArtifactResolve request on the SP artifact resolution endpoint
|
|
166
|
+
const artifactResolve = await sp.parseArtifactResolveRequest(idp, soapXml);
|
|
167
|
+
|
|
168
|
+
// Create ArtifactResponse with the resolved SAML message
|
|
169
|
+
const artifactResponse = await sp.createArtifactResolveResponse(idp, {
|
|
170
|
+
inResponseTo: artifactResolve.extract.request.id,
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// Parse artifact-based login response from the ACS endpoint
|
|
174
|
+
const responseResult = await sp.parseLoginResponse(idp, 'artifact', request);
|
|
175
|
+
```
|
|
176
176
|
|
|
177
177
|
---
|
|
178
178
|
|
package/build/src/extractor.js
CHANGED
|
@@ -177,6 +177,7 @@ export const logoutResponseStatusFields = [
|
|
|
177
177
|
export const loginResponseFields = assertion => [
|
|
178
178
|
{ key: 'conditions', localPath: ['Assertion', 'Conditions'], attributes: ['NotBefore', 'NotOnOrAfter'], shortcut: assertion },
|
|
179
179
|
{ key: 'response', localPath: ['Response'], attributes: ['ID', 'IssueInstant', 'Destination', 'InResponseTo', 'Version'] },
|
|
180
|
+
{ key: 'responseIssuer', localPath: ['Response', 'Issuer'], attributes: [] },
|
|
180
181
|
{ key: 'audience', localPath: ['Assertion', 'Conditions', 'AudienceRestriction', 'Audience'], attributes: [], shortcut: assertion },
|
|
181
182
|
{ key: 'issuer', localPath: ['Assertion', 'Issuer'], attributes: [], shortcut: assertion },
|
|
182
183
|
{ key: 'nameID', localPath: ['Assertion', 'Subject', 'NameID'], attributes: [], shortcut: assertion },
|
package/build/src/flow.js
CHANGED
|
@@ -24,6 +24,154 @@ function getDefaultExtractorFields(parserType, assertion) {
|
|
|
24
24
|
throw new Error('ERR_UNDEFINED_PARSERTYPE');
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
function collectServiceLocations(entityMeta, serviceKey) {
|
|
28
|
+
const serviceConfig = entityMeta?.meta?.[serviceKey];
|
|
29
|
+
if (!serviceConfig) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
const collectFromEntry = (entry) => {
|
|
33
|
+
if (!entry) {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
if (typeof entry === 'string') {
|
|
37
|
+
return entry.trim() ? [entry.trim()] : [];
|
|
38
|
+
}
|
|
39
|
+
if (typeof entry !== 'object') {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
const directLocation = entry.location ?? entry.Location;
|
|
43
|
+
if (typeof directLocation === 'string' && directLocation.trim()) {
|
|
44
|
+
return [directLocation.trim()];
|
|
45
|
+
}
|
|
46
|
+
return Object.values(entry)
|
|
47
|
+
.filter((value) => typeof value === 'string' && value.trim().length > 0)
|
|
48
|
+
.map(value => value.trim())
|
|
49
|
+
.filter(value => /^https?:/i.test(value));
|
|
50
|
+
};
|
|
51
|
+
if (Array.isArray(serviceConfig)) {
|
|
52
|
+
return serviceConfig.flatMap(collectFromEntry);
|
|
53
|
+
}
|
|
54
|
+
if (typeof serviceConfig === 'object') {
|
|
55
|
+
const directLocations = collectFromEntry(serviceConfig);
|
|
56
|
+
if (directLocations.length > 0) {
|
|
57
|
+
return directLocations;
|
|
58
|
+
}
|
|
59
|
+
return Object.values(serviceConfig).flatMap(collectFromEntry);
|
|
60
|
+
}
|
|
61
|
+
return collectFromEntry(serviceConfig);
|
|
62
|
+
}
|
|
63
|
+
function matchesKnownEndpoint(endpoint, knownEndpoints) {
|
|
64
|
+
return typeof endpoint === 'string' && endpoint.length > 0 && knownEndpoints.includes(endpoint);
|
|
65
|
+
}
|
|
66
|
+
function validateIssuer(parserType, extractedProperties, expectedIssuer) {
|
|
67
|
+
const messageIssuer = extractedProperties?.issuer;
|
|
68
|
+
if (parserType === ParserType.SAMLResponse) {
|
|
69
|
+
const responseIssuer = extractedProperties?.responseIssuer;
|
|
70
|
+
if (responseIssuer && responseIssuer !== expectedIssuer) {
|
|
71
|
+
return 'ERR_UNMATCH_ISSUER';
|
|
72
|
+
}
|
|
73
|
+
if (messageIssuer && messageIssuer !== expectedIssuer) {
|
|
74
|
+
return 'ERR_UNMATCH_ISSUER';
|
|
75
|
+
}
|
|
76
|
+
if (responseIssuer && messageIssuer && responseIssuer !== messageIssuer) {
|
|
77
|
+
return 'ERR_UNMATCH_ISSUER';
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
if (messageIssuer && messageIssuer !== expectedIssuer) {
|
|
82
|
+
return 'ERR_UNMATCH_ISSUER';
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
function validateResponseTimes(parserType, extractedProperties, self) {
|
|
87
|
+
if (parserType !== ParserType.SAMLResponse) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
if (extractedProperties?.sessionIndex?.sessionNotOnOrAfter &&
|
|
91
|
+
!verifyTime(undefined, extractedProperties.sessionIndex.sessionNotOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
92
|
+
return 'ERR_EXPIRED_SESSION';
|
|
93
|
+
}
|
|
94
|
+
if (extractedProperties?.conditions &&
|
|
95
|
+
!verifyTime(extractedProperties.conditions.notBefore, extractedProperties.conditions.notOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
96
|
+
return 'ERR_CONDITION_UNCONFIRMED';
|
|
97
|
+
}
|
|
98
|
+
if (extractedProperties?.subjectConfirmation?.notOnOrAfter &&
|
|
99
|
+
!verifyTime(undefined, extractedProperties.subjectConfirmation.notOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
100
|
+
return 'ERR_SUBJECT_UNCONFIRMED';
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
function validateEndpointConstraints(parserType, extractedProperties, self, from) {
|
|
105
|
+
const requestData = extractedProperties?.request ?? {};
|
|
106
|
+
const responseData = extractedProperties?.response ?? {};
|
|
107
|
+
const subjectConfirmation = extractedProperties?.subjectConfirmation ?? {};
|
|
108
|
+
switch (parserType) {
|
|
109
|
+
case ParserType.SAMLRequest: {
|
|
110
|
+
const validSsoUrls = collectServiceLocations(self?.entityMeta, 'singleSignOnService');
|
|
111
|
+
if (requestData.destination &&
|
|
112
|
+
validSsoUrls.length > 0 &&
|
|
113
|
+
!matchesKnownEndpoint(requestData.destination, validSsoUrls)) {
|
|
114
|
+
return 'ERR_INVALID_DESTINATION';
|
|
115
|
+
}
|
|
116
|
+
const assertionConsumerServiceUrl = requestData.assertionConsumerServiceUrl ??
|
|
117
|
+
requestData.assertionConsumerServiceURL;
|
|
118
|
+
const validAcsUrls = collectServiceLocations(from?.entityMeta, 'assertionConsumerService');
|
|
119
|
+
if (assertionConsumerServiceUrl &&
|
|
120
|
+
validAcsUrls.length > 0 &&
|
|
121
|
+
!matchesKnownEndpoint(assertionConsumerServiceUrl, validAcsUrls)) {
|
|
122
|
+
return 'ERR_INVALID_ASSERTION_CONSUMER_SERVICE';
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
case ParserType.SAMLResponse: {
|
|
127
|
+
const validAcsUrls = collectServiceLocations(self?.entityMeta, 'assertionConsumerService');
|
|
128
|
+
if (validAcsUrls.length === 0) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
if (!matchesKnownEndpoint(responseData.destination, validAcsUrls)) {
|
|
132
|
+
return 'ERR_INVALID_DESTINATION';
|
|
133
|
+
}
|
|
134
|
+
if (!matchesKnownEndpoint(subjectConfirmation.recipient, validAcsUrls)) {
|
|
135
|
+
return 'ERR_INVALID_RECIPIENT';
|
|
136
|
+
}
|
|
137
|
+
if (responseData.destination !== subjectConfirmation.recipient) {
|
|
138
|
+
return 'ERR_DESTINATION_RECIPIENT_MISMATCH';
|
|
139
|
+
}
|
|
140
|
+
if (responseData.inResponseTo &&
|
|
141
|
+
subjectConfirmation.inResponseTo &&
|
|
142
|
+
responseData.inResponseTo !== subjectConfirmation.inResponseTo) {
|
|
143
|
+
return 'ERR_UNMATCH_IN_RESPONSE_TO';
|
|
144
|
+
}
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
case ParserType.LogoutRequest:
|
|
148
|
+
case ParserType.LogoutResponse: {
|
|
149
|
+
const validSloUrls = collectServiceLocations(self?.entityMeta, 'singleLogoutService');
|
|
150
|
+
const destination = parserType === ParserType.LogoutRequest
|
|
151
|
+
? requestData.destination
|
|
152
|
+
: responseData.destination;
|
|
153
|
+
if (destination &&
|
|
154
|
+
validSloUrls.length > 0 &&
|
|
155
|
+
!matchesKnownEndpoint(destination, validSloUrls)) {
|
|
156
|
+
return 'ERR_INVALID_LOGOUT_DESTINATION';
|
|
157
|
+
}
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
default:
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function runCommonValidation(parserType, extractedProperties, self, from) {
|
|
165
|
+
const issuerError = validateIssuer(parserType, extractedProperties, from.entityMeta.getEntityID());
|
|
166
|
+
if (issuerError) {
|
|
167
|
+
return issuerError;
|
|
168
|
+
}
|
|
169
|
+
const timeError = validateResponseTimes(parserType, extractedProperties, self);
|
|
170
|
+
if (timeError) {
|
|
171
|
+
return timeError;
|
|
172
|
+
}
|
|
173
|
+
return validateEndpointConstraints(parserType, extractedProperties, self, from);
|
|
174
|
+
}
|
|
27
175
|
// proceed the redirect binding flow
|
|
28
176
|
async function redirectFlow(options) {
|
|
29
177
|
const { request, parserType, self, checkSignature = true, from } = options;
|
|
@@ -87,39 +235,12 @@ async function redirectFlow(options) {
|
|
|
87
235
|
}
|
|
88
236
|
parseResult.sigAlg = decodeSigAlg;
|
|
89
237
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const issuer = targetEntityMetadata.getEntityID();
|
|
94
|
-
const extractedProperties = parseResult.extract;
|
|
95
|
-
// unmatched issuer
|
|
96
|
-
if ((parserType === 'LogoutResponse' || parserType === 'SAMLResponse')
|
|
97
|
-
&& extractedProperties
|
|
98
|
-
&& extractedProperties.issuer !== issuer) {
|
|
99
|
-
return Promise.reject('ERR_UNMATCH_ISSUER');
|
|
100
|
-
}
|
|
101
|
-
// invalid session time
|
|
102
|
-
// only run the verifyTime when `SessionNotOnOrAfter` exists
|
|
103
|
-
if (parserType === 'SAMLResponse'
|
|
104
|
-
&& extractedProperties.sessionIndex.sessionNotOnOrAfter
|
|
105
|
-
&& !verifyTime(undefined, extractedProperties.sessionIndex.sessionNotOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
106
|
-
return Promise.reject('ERR_EXPIRED_SESSION');
|
|
107
|
-
}
|
|
108
|
-
// invalid time
|
|
109
|
-
// 2.4.1.2 https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
|
|
110
|
-
if (parserType === 'SAMLResponse'
|
|
111
|
-
&& extractedProperties.conditions
|
|
112
|
-
&& !verifyTime(extractedProperties.conditions.notBefore, extractedProperties.conditions.notOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
113
|
-
return Promise.reject('ERR_CONDITION_UNCONFIRMED');
|
|
114
|
-
}
|
|
115
|
-
if (parserType === 'SAMLResponse') {
|
|
116
|
-
let destination = extractedProperties?.response?.destination;
|
|
117
|
-
let isExit = self.entitySetting?.assertionConsumerService?.filter((item) => {
|
|
118
|
-
return item?.location === destination;
|
|
119
|
-
});
|
|
120
|
-
if (isExit?.length === 0) {
|
|
238
|
+
const validationError = runCommonValidation(parserType, parseResult.extract, self, from);
|
|
239
|
+
if (validationError) {
|
|
240
|
+
if (validationError === 'ERR_INVALID_DESTINATION') {
|
|
121
241
|
return Promise.reject('ERR_Destination_URL');
|
|
122
242
|
}
|
|
243
|
+
return Promise.reject(validationError);
|
|
123
244
|
}
|
|
124
245
|
return Promise.resolve(parseResult);
|
|
125
246
|
}
|
|
@@ -170,25 +291,35 @@ async function postFlow(options) {
|
|
|
170
291
|
};
|
|
171
292
|
// 检查验证结果
|
|
172
293
|
if (!verificationResult.status) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
if (verificationResult.encrypted && !verificationResult.decrypted) {
|
|
182
|
-
return Promise.reject('ERR_FAIL_TO_DECRYPT_ASSERTION');
|
|
294
|
+
if (!checkSignature &&
|
|
295
|
+
parserType === urlParams.samlRequest &&
|
|
296
|
+
!verificationResult.isMessageSigned &&
|
|
297
|
+
!verificationResult.isAssertionSigned &&
|
|
298
|
+
!verificationResult.encrypted) {
|
|
299
|
+
verificationResult.status = true;
|
|
300
|
+
verificationResult.samlContent = samlContent;
|
|
183
301
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
302
|
+
else {
|
|
303
|
+
// 如果验证失败,根据具体情况返回错误
|
|
304
|
+
/** 需要判断是不是 */
|
|
305
|
+
if (verificationResult.isMessageSigned && !verificationResult.MessageSignatureStatus) {
|
|
306
|
+
return Promise.reject('ERR_FAIL_TO_VERIFY_MESSAGE_SIGNATURE');
|
|
307
|
+
}
|
|
308
|
+
if (verificationResult.isAssertionSigned && !verificationResult.AssertionSignatureStatus) {
|
|
309
|
+
return Promise.reject('ERR_FAIL_TO_VERIFY_ASSERTION_SIGNATURE');
|
|
310
|
+
}
|
|
311
|
+
if (verificationResult.encrypted && !verificationResult.decrypted) {
|
|
312
|
+
return Promise.reject('ERR_FAIL_TO_DECRYPT_ASSERTION');
|
|
313
|
+
}
|
|
314
|
+
if (!verificationResult.isMessageSigned && verificationResult.type === 'LogoutRequest') {
|
|
315
|
+
return Promise.reject('ERR_LogoutRequest_Need_Signature');
|
|
316
|
+
}
|
|
317
|
+
if (!verificationResult.isMessageSigned && verificationResult.type === 'LogoutResponse') {
|
|
318
|
+
return Promise.reject('ERR_LogoutResponse_Need_Signature');
|
|
319
|
+
}
|
|
320
|
+
// 通用验证失败
|
|
321
|
+
return Promise.reject('ERR_FAIL_TO_VERIFY_SIGNATURE_OR_DECRYPTION');
|
|
189
322
|
}
|
|
190
|
-
// 通用验证失败
|
|
191
|
-
return Promise.reject('ERR_FAIL_TO_VERIFY_SIGNATURE_OR_DECRYPTION');
|
|
192
323
|
}
|
|
193
324
|
// 更新samlContent为验证后的版本(可能已解密)
|
|
194
325
|
samlContent = verificationResult.samlContent;
|
|
@@ -204,121 +335,9 @@ async function postFlow(options) {
|
|
|
204
335
|
samlContent: samlContent,
|
|
205
336
|
extract: extract(samlContent, extractorFields),
|
|
206
337
|
};
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
const targetEntityMetadata = from.entityMeta;
|
|
211
|
-
const issuer = targetEntityMetadata.getEntityID();
|
|
212
|
-
const extractedProperties = parseResult.extract;
|
|
213
|
-
// unmatched issuer
|
|
214
|
-
if ((parserType === 'LogoutResponse' || parserType === 'SAMLResponse')
|
|
215
|
-
&& extractedProperties
|
|
216
|
-
&& extractedProperties.issuer !== issuer) {
|
|
217
|
-
return Promise.reject('ERR_UNMATCH_ISSUER');
|
|
218
|
-
}
|
|
219
|
-
// invalid session time
|
|
220
|
-
// only run the verifyTime when `SessionNotOnOrAfter` exists
|
|
221
|
-
if (parserType === 'SAMLResponse'
|
|
222
|
-
&& extractedProperties.sessionIndex.sessionNotOnOrAfter
|
|
223
|
-
&& !verifyTime(undefined, extractedProperties.sessionIndex.sessionNotOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
224
|
-
return Promise.reject('ERR_EXPIRED_SESSION');
|
|
225
|
-
}
|
|
226
|
-
// invalid time
|
|
227
|
-
// 2.4.1.2 https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
|
|
228
|
-
if (parserType === 'SAMLResponse'
|
|
229
|
-
&& extractedProperties.conditions
|
|
230
|
-
&& !verifyTime(extractedProperties.conditions.notBefore, extractedProperties.conditions.notOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
231
|
-
return Promise.reject('ERR_CONDITION_UNCONFIRMED');
|
|
232
|
-
}
|
|
233
|
-
// invalid subjectConfirmation time
|
|
234
|
-
// invalid time
|
|
235
|
-
// 2.4.1.2 https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
|
|
236
|
-
if (parserType === 'SAMLResponse'
|
|
237
|
-
&& extractedProperties.subjectConfirmation
|
|
238
|
-
&& !verifyTime(undefined, extractedProperties.subjectConfirmation.notOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
239
|
-
return Promise.reject('ERR_SUBJECT_UNCONFIRMED');
|
|
240
|
-
}
|
|
241
|
-
// ============================
|
|
242
|
-
// VALIDATE Destination & Recipient
|
|
243
|
-
// ============================
|
|
244
|
-
const { type } = verificationResult;
|
|
245
|
-
const { response, subjectConfirmation } = extractedProperties || {};
|
|
246
|
-
// 获取 SP 配置的所有合法 ACS URLs(用于比对)
|
|
247
|
-
const validACSUrls = (self?.entityMeta?.meta?.assertionConsumerService || [])
|
|
248
|
-
.map((item) => item.location)
|
|
249
|
-
.filter(Boolean);
|
|
250
|
-
/**
|
|
251
|
-
* Helper: Check if a given URL is in the list of valid ACS endpoints
|
|
252
|
-
*/
|
|
253
|
-
function isValidACSEndpoint(url) {
|
|
254
|
-
return url != null && validACSUrls.includes(url);
|
|
255
|
-
}
|
|
256
|
-
// 根据消息类型执行不同的验证
|
|
257
|
-
switch (type) {
|
|
258
|
-
case 'Response': // SAML Response (Login)
|
|
259
|
-
{
|
|
260
|
-
// 1. 验证协议层 Destination(必须匹配 ACS)
|
|
261
|
-
const destination = response?.destination;
|
|
262
|
-
if (!isValidACSEndpoint(destination)) {
|
|
263
|
-
return Promise.reject('ERR_INVALID_DESTINATION');
|
|
264
|
-
}
|
|
265
|
-
// 2. 验证断言层 Recipient(必须匹配 ACS,且通常应等于 Destination)
|
|
266
|
-
const recipient = subjectConfirmation?.recipient;
|
|
267
|
-
if (!isValidACSEndpoint(recipient)) {
|
|
268
|
-
return Promise.reject('ERR_INVALID_RECIPIENT');
|
|
269
|
-
}
|
|
270
|
-
// 可选:强制 Destination === Recipient(推荐)
|
|
271
|
-
if (destination !== recipient) {
|
|
272
|
-
// 注意:某些 IdP 可能不严格一致,但安全起见建议开启
|
|
273
|
-
return Promise.reject('ERR_DESTINATION_RECIPIENT_MISMATCH');
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
break;
|
|
277
|
-
case 'LogoutRequest': // IdP 发起的单点登出
|
|
278
|
-
{
|
|
279
|
-
// LogoutRequest 是 IdP → SP,SP 是接收方
|
|
280
|
-
// 必须验证 Destination 是否为 SP 的 SLO endpoint(Single Logout Service)
|
|
281
|
-
const destination = response?.destination; // 注意:LogoutRequest 的 root 元素是 <samlp:LogoutRequest>
|
|
282
|
-
/** 必须检查是否为对象*/
|
|
283
|
-
let singleLogoutService = [];
|
|
284
|
-
if (self?.entityMeta?.meta?.singleLogoutService?.binding) {
|
|
285
|
-
// @ts-ignore
|
|
286
|
-
singleLogoutService = [self?.entityMeta?.meta?.singleLogoutService];
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
singleLogoutService = self?.entityMeta?.meta?.singleLogoutService;
|
|
290
|
-
}
|
|
291
|
-
const validSLOUrls = singleLogoutService
|
|
292
|
-
.map((item) => item.location)
|
|
293
|
-
.filter(Boolean);
|
|
294
|
-
if (destination && !validSLOUrls.includes(destination)) {
|
|
295
|
-
return Promise.reject('ERR_INVALID_LOGOUT_DESTINATION');
|
|
296
|
-
}
|
|
297
|
-
// LogoutRequest 通常**不包含 Assertion**,所以无 Recipient
|
|
298
|
-
// 如果有嵌套断言(罕见),可额外处理,但一般不需要
|
|
299
|
-
}
|
|
300
|
-
break;
|
|
301
|
-
case 'LogoutResponse': // SP → IdP 的登出响应
|
|
302
|
-
{
|
|
303
|
-
// LogoutResponse 是 SP → IdP,IdP 是接收方
|
|
304
|
-
// 此时 SP 是发送方,**不应验证 Destination 是否属于自身**
|
|
305
|
-
// 而应由 IdP 验证。因此 SP 端通常**跳过 Destination 验证**
|
|
306
|
-
// 但如果你作为 SP 也要校验(比如防止发错),可对比 IdP 的 SLO URL
|
|
307
|
-
// —— 但你的 entityMeta 是 SP 自身,没有 IdP 的 SLO,所以一般不验
|
|
308
|
-
// ✅ 所以:LogoutResponse 在 SP 端通常**无需验证 Destination/Recipient**
|
|
309
|
-
}
|
|
310
|
-
break;
|
|
311
|
-
case 'AuthnRequest': // SP → IdP 的认证请求
|
|
312
|
-
{
|
|
313
|
-
// AuthnRequest 是 SP 发出的,不是接收的
|
|
314
|
-
// 此验证逻辑运行在 SP 接收响应时,**不会收到 AuthnRequest**
|
|
315
|
-
// 所以这个 case 实际不会触发,保留仅为完整性
|
|
316
|
-
}
|
|
317
|
-
break;
|
|
318
|
-
case 'Unknown':
|
|
319
|
-
default:
|
|
320
|
-
// 未知类型,保守拒绝
|
|
321
|
-
return Promise.reject('ERR_UNKNOWN_SAML_MESSAGE_TYPE');
|
|
338
|
+
const validationError = runCommonValidation(parserType, parseResult.extract, self, from);
|
|
339
|
+
if (validationError) {
|
|
340
|
+
return Promise.reject(validationError);
|
|
322
341
|
}
|
|
323
342
|
return Promise.resolve({
|
|
324
343
|
...parseResult,
|
|
@@ -389,44 +408,12 @@ async function postArtifactFlow(options) {
|
|
|
389
408
|
samlContent: samlContent,
|
|
390
409
|
extract: extract(samlContent, extractorFields),
|
|
391
410
|
};
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
const targetEntityMetadata = from.entityMeta;
|
|
396
|
-
const issuer = targetEntityMetadata.getEntityID();
|
|
397
|
-
const extractedProperties = parseResult.extract;
|
|
398
|
-
// unmatched issuer
|
|
399
|
-
if ((parserType === 'LogoutResponse' || parserType === 'SAMLResponse')
|
|
400
|
-
&& extractedProperties
|
|
401
|
-
&& extractedProperties.issuer !== issuer) {
|
|
402
|
-
return Promise.reject('ERR_UNMATCH_ISSUER');
|
|
403
|
-
}
|
|
404
|
-
// invalid session time
|
|
405
|
-
// only run the verifyTime when `SessionNotOnOrAfter` exists
|
|
406
|
-
if (parserType === 'SAMLResponse'
|
|
407
|
-
&& extractedProperties.sessionIndex.sessionNotOnOrAfter
|
|
408
|
-
&& !verifyTime(undefined, extractedProperties.sessionIndex.sessionNotOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
409
|
-
return Promise.reject('ERR_EXPIRED_SESSION');
|
|
410
|
-
}
|
|
411
|
-
// invalid time
|
|
412
|
-
// 2.4.1.2 https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
|
|
413
|
-
if (parserType === 'SAMLResponse'
|
|
414
|
-
&& extractedProperties.conditions
|
|
415
|
-
&& !verifyTime(extractedProperties.conditions.notBefore, extractedProperties.conditions.notOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
416
|
-
return Promise.reject('ERR_CONDITION_UNCONFIRMED');
|
|
417
|
-
}
|
|
418
|
-
//valid destination
|
|
419
|
-
//There is no validation of the response here. The upper-layer application
|
|
420
|
-
// should verify the result by itself to see if the destination is equal to the SP acs and
|
|
421
|
-
// whether the response.id is used to prevent replay attacks.
|
|
422
|
-
if (parserType === 'SAMLResponse') {
|
|
423
|
-
let destination = extractedProperties?.response?.destination;
|
|
424
|
-
let isExit = self?.entityMeta?.meta?.assertionConsumerService?.filter((item) => {
|
|
425
|
-
return item?.location === destination;
|
|
426
|
-
});
|
|
427
|
-
if (isExit?.length === 0) {
|
|
411
|
+
const validationError = runCommonValidation(parserType, parseResult.extract, self, from);
|
|
412
|
+
if (validationError) {
|
|
413
|
+
if (validationError === 'ERR_INVALID_DESTINATION') {
|
|
428
414
|
return Promise.reject('ERR_Destination_URL');
|
|
429
415
|
}
|
|
416
|
+
return Promise.reject(validationError);
|
|
430
417
|
}
|
|
431
418
|
return Promise.resolve(parseResult);
|
|
432
419
|
}
|
|
@@ -491,39 +478,12 @@ async function postSimpleSignFlow(options) {
|
|
|
491
478
|
}
|
|
492
479
|
parseResult.sigAlg = sigAlg;
|
|
493
480
|
}
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
const issuer = targetEntityMetadata.getEntityID();
|
|
498
|
-
const extractedProperties = parseResult.extract;
|
|
499
|
-
// unmatched issuer
|
|
500
|
-
if ((parserType === 'LogoutResponse' || parserType === 'SAMLResponse')
|
|
501
|
-
&& extractedProperties
|
|
502
|
-
&& extractedProperties.issuer !== issuer) {
|
|
503
|
-
return Promise.reject('ERR_UNMATCH_ISSUER');
|
|
504
|
-
}
|
|
505
|
-
// invalid session time
|
|
506
|
-
// only run the verifyTime when `SessionNotOnOrAfter` exists
|
|
507
|
-
if (parserType === 'SAMLResponse'
|
|
508
|
-
&& extractedProperties.sessionIndex.sessionNotOnOrAfter
|
|
509
|
-
&& !verifyTime(undefined, extractedProperties.sessionIndex.sessionNotOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
510
|
-
return Promise.reject('ERR_EXPIRED_SESSION');
|
|
511
|
-
}
|
|
512
|
-
// invalid time
|
|
513
|
-
// 2.4.1.2 https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
|
|
514
|
-
if (parserType === 'SAMLResponse'
|
|
515
|
-
&& extractedProperties.conditions
|
|
516
|
-
&& !verifyTime(extractedProperties.conditions.notBefore, extractedProperties.conditions.notOnOrAfter, self.entitySetting.clockDrifts)) {
|
|
517
|
-
return Promise.reject('ERR_CONDITION_UNCONFIRMED');
|
|
518
|
-
}
|
|
519
|
-
if (parserType === 'SAMLResponse') {
|
|
520
|
-
let destination = extractedProperties?.response?.destination;
|
|
521
|
-
let isExit = self?.entityMeta?.meta?.assertionConsumerService?.filter((item) => {
|
|
522
|
-
return item?.location === destination;
|
|
523
|
-
});
|
|
524
|
-
if (isExit?.length === 0) {
|
|
481
|
+
const validationError = runCommonValidation(parserType, parseResult.extract, self, from);
|
|
482
|
+
if (validationError) {
|
|
483
|
+
if (validationError === 'ERR_INVALID_DESTINATION') {
|
|
525
484
|
return Promise.reject('ERR_Destination_URL');
|
|
526
485
|
}
|
|
486
|
+
return Promise.reject(validationError);
|
|
527
487
|
}
|
|
528
488
|
return Promise.resolve(parseResult);
|
|
529
489
|
}
|
|
@@ -29,16 +29,15 @@ export function applyAuthnRequestEnhancements(rawSamlRequest, enhancements) {
|
|
|
29
29
|
if (enhancements.providerName) {
|
|
30
30
|
authnRequestElement.setAttribute('ProviderName', enhancements.providerName);
|
|
31
31
|
}
|
|
32
|
-
//
|
|
33
|
-
if (enhancements.scoping) {
|
|
34
|
-
const scopingElement = buildScopingElement(enhancements.scoping, doc);
|
|
35
|
-
authnRequestElement.appendChild(scopingElement);
|
|
36
|
-
}
|
|
37
|
-
// 3. 添加 RequestedAuthnContext 元素
|
|
32
|
+
// AuthnRequestType 要求 RequestedAuthnContext 先于 Scoping
|
|
38
33
|
if (enhancements.requestedAuthnContext) {
|
|
39
34
|
const contextElement = buildRequestedAuthnContextElement(enhancements.requestedAuthnContext, doc);
|
|
40
35
|
authnRequestElement.appendChild(contextElement);
|
|
41
36
|
}
|
|
37
|
+
if (enhancements.scoping) {
|
|
38
|
+
const scopingElement = buildScopingElement(enhancements.scoping, doc);
|
|
39
|
+
authnRequestElement.appendChild(scopingElement);
|
|
40
|
+
}
|
|
42
41
|
return new XMLSerializer().serializeToString(doc);
|
|
43
42
|
}
|
|
44
43
|
/**
|
|
@@ -30,15 +30,7 @@ export function buildScoping(config) {
|
|
|
30
30
|
if (config.proxyCount !== undefined) {
|
|
31
31
|
scoping['samlp:Scoping'][0]._attr.ProxyCount = config.proxyCount.toString();
|
|
32
32
|
}
|
|
33
|
-
//
|
|
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 元素
|
|
33
|
+
// SAML Core 要求 IDPList 先于 RequesterID 出现
|
|
42
34
|
if (config.idpList && config.idpList.length > 0) {
|
|
43
35
|
const idpList = { 'samlp:IDPList': [] };
|
|
44
36
|
config.idpList.forEach(entry => {
|
|
@@ -55,6 +47,14 @@ export function buildScoping(config) {
|
|
|
55
47
|
});
|
|
56
48
|
scoping['samlp:Scoping'].push(idpList);
|
|
57
49
|
}
|
|
50
|
+
// RequesterID 的类型是 anyURI,值必须写在元素文本中而不是属性里
|
|
51
|
+
if (config.requesterID && config.requesterID.length > 0) {
|
|
52
|
+
config.requesterID.forEach(id => {
|
|
53
|
+
scoping['samlp:Scoping'].push({
|
|
54
|
+
'samlp:RequesterID': [id]
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
58
|
return scoping;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
@@ -86,7 +86,7 @@ export function buildRequestedAuthnContext(config) {
|
|
|
86
86
|
if (config.declRefs && config.declRefs.length > 0) {
|
|
87
87
|
config.declRefs.forEach(ref => {
|
|
88
88
|
requestedAuthnContext['samlp:RequestedAuthnContext'].push({
|
|
89
|
-
'saml:AuthnContextDeclRef': [
|
|
89
|
+
'saml:AuthnContextDeclRef': [ref]
|
|
90
90
|
});
|
|
91
91
|
});
|
|
92
92
|
}
|
|
@@ -292,14 +292,13 @@ export function enhanceAuthnRequest(baseAuthnRequest, enhancedConfig) {
|
|
|
292
292
|
}
|
|
293
293
|
authnRequestContent[0]._attr.ProviderName = enhancedConfig.providerName;
|
|
294
294
|
}
|
|
295
|
-
//
|
|
296
|
-
if (enhancedConfig.scoping) {
|
|
297
|
-
authnRequestContent.push(buildScoping(enhancedConfig.scoping));
|
|
298
|
-
}
|
|
299
|
-
// 添加 RequestedAuthnContext 元素
|
|
295
|
+
// AuthnRequestType 的序列顺序为 RequestedAuthnContext 在前、Scoping 在后
|
|
300
296
|
if (enhancedConfig.requestedAuthnContext) {
|
|
301
297
|
authnRequestContent.push(buildRequestedAuthnContext(enhancedConfig.requestedAuthnContext));
|
|
302
298
|
}
|
|
299
|
+
if (enhancedConfig.scoping) {
|
|
300
|
+
authnRequestContent.push(buildScoping(enhancedConfig.scoping));
|
|
301
|
+
}
|
|
303
302
|
return authnRequest;
|
|
304
303
|
}
|
|
305
304
|
/**
|
package/package.json
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "samlesa",
|
|
3
|
-
"version": "4.
|
|
4
|
-
"description": "High-level API for Single Sign On (SAML 2.0) baseed on samlify ",
|
|
5
|
-
"main": "build/index.js",
|
|
6
|
-
"keywords": [
|
|
7
|
-
"nodejs",
|
|
8
|
-
"saml2",
|
|
9
|
-
"sso",
|
|
10
|
-
"slo",
|
|
11
|
-
"metadata"
|
|
12
|
-
],
|
|
13
|
-
"type": "module",
|
|
14
|
-
"typings": "types/index.d.ts",
|
|
15
|
-
"homepage": "https://saml.veclea.com",
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "tsc && copyfiles -u 1 src/schema/**/* build/src",
|
|
18
|
-
"build:fast": "tsc",
|
|
19
|
-
"build:clean": "tsc --build --clean && pnpm run build",
|
|
20
|
-
"docs:dev": "cd docs && npm run docs:dev",
|
|
21
|
-
"docs:build": "cd docs && npm run docs:build",
|
|
22
|
-
"docs:preview": "cd docs && npm run docs:preview",
|
|
23
|
-
"docs:deploy": "vercel --prod",
|
|
24
|
-
"lint": "tslint -p .",
|
|
25
|
-
"lint:fix": "tslint -p . --fix",
|
|
26
|
-
"test": "vitest run",
|
|
27
|
-
"test:watch": "vitest",
|
|
28
|
-
"test:coverage": "vitest run --coverage",
|
|
29
|
-
"test:fast": "vitest run --pool=forks",
|
|
30
|
-
"test:artifact": "vitest run test/artifact.test.ts",
|
|
31
|
-
"generate-certs": "node scripts/generate-certs.js",
|
|
32
|
-
"hooks:postinstall": "mklink /J .git\\hooks\\pre-commit .pre-commit.sh || copy .pre-commit.sh .git\\hooks\\pre-commit"
|
|
33
|
-
},
|
|
34
|
-
"exports": {
|
|
35
|
-
".": {
|
|
36
|
-
"types": "./types/index.d.ts",
|
|
37
|
-
"import": "./build/index.js"
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
"files": [
|
|
41
|
-
"build",
|
|
42
|
-
"types"
|
|
43
|
-
],
|
|
44
|
-
"contributors": [
|
|
45
|
-
"Veclea <vemocle@gmail.com>"
|
|
46
|
-
],
|
|
47
|
-
"author": "Veclea",
|
|
48
|
-
"repository": {
|
|
49
|
-
"url": "https://github.com/Veclea/samlify.git",
|
|
50
|
-
"type": "git"
|
|
51
|
-
},
|
|
52
|
-
"bugs": {
|
|
53
|
-
"url": "https://github.com/Veclea/samlify/issues"
|
|
54
|
-
},
|
|
55
|
-
"docs": "https://saml.veclea.com",
|
|
56
|
-
"license": "MIT",
|
|
57
|
-
"dependencies": {
|
|
58
|
-
"@xmldom/xmldom": "^0.9.10",
|
|
59
|
-
"axios": "^1.15.2",
|
|
60
|
-
"camelcase": "^9.0.0",
|
|
61
|
-
"cross-env": "^10.1.0",
|
|
62
|
-
"iconv-lite": "^0.7.2",
|
|
63
|
-
"ts-node": "^10.9.2",
|
|
64
|
-
"vite-tsconfig-paths": "^6.1.1",
|
|
65
|
-
"xml": "^1.0.1",
|
|
66
|
-
"xml-crypto-next": "^8.0.0",
|
|
67
|
-
"xml-encryption-next": "^5.0.0",
|
|
68
|
-
"xml-escape": "^1.1.0",
|
|
69
|
-
"xml2js": "^0.6.2",
|
|
70
|
-
"xmllint-wasm": "^5.2.0",
|
|
71
|
-
"xpath": "^0.0.34"
|
|
72
|
-
},
|
|
73
|
-
"devDependencies": {
|
|
74
|
-
"@types/node": "^25.6.0",
|
|
75
|
-
"@types/pako": "2.0.4",
|
|
76
|
-
"@types/uuid": "11.0.0",
|
|
77
|
-
"@vitest/coverage-istanbul": "^4.1.5",
|
|
78
|
-
"@vitest/coverage-v8": "4.1.5",
|
|
79
|
-
"copyfiles": "^2.4.1",
|
|
80
|
-
"coveralls": "^3.1.1",
|
|
81
|
-
"esbuild": "^0.28.0",
|
|
82
|
-
"jsdom": "^29.0.2",
|
|
83
|
-
"timekeeper": "^2.3.1",
|
|
84
|
-
"typescript": "6.0.3",
|
|
85
|
-
"vitest": "^4.1.5"
|
|
86
|
-
}
|
|
87
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "samlesa",
|
|
3
|
+
"version": "4.5.0",
|
|
4
|
+
"description": "High-level API for Single Sign On (SAML 2.0) baseed on samlify ",
|
|
5
|
+
"main": "build/index.js",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"nodejs",
|
|
8
|
+
"saml2",
|
|
9
|
+
"sso",
|
|
10
|
+
"slo",
|
|
11
|
+
"metadata"
|
|
12
|
+
],
|
|
13
|
+
"type": "module",
|
|
14
|
+
"typings": "types/index.d.ts",
|
|
15
|
+
"homepage": "https://saml.veclea.com",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc && copyfiles -u 1 src/schema/**/* build/src",
|
|
18
|
+
"build:fast": "tsc",
|
|
19
|
+
"build:clean": "tsc --build --clean && pnpm run build",
|
|
20
|
+
"docs:dev": "cd docs && npm run docs:dev",
|
|
21
|
+
"docs:build": "cd docs && npm run docs:build",
|
|
22
|
+
"docs:preview": "cd docs && npm run docs:preview",
|
|
23
|
+
"docs:deploy": "vercel --prod",
|
|
24
|
+
"lint": "tslint -p .",
|
|
25
|
+
"lint:fix": "tslint -p . --fix",
|
|
26
|
+
"test": "vitest run",
|
|
27
|
+
"test:watch": "vitest",
|
|
28
|
+
"test:coverage": "vitest run --coverage",
|
|
29
|
+
"test:fast": "vitest run --pool=forks",
|
|
30
|
+
"test:artifact": "vitest run test/artifact.test.ts",
|
|
31
|
+
"generate-certs": "node scripts/generate-certs.js",
|
|
32
|
+
"hooks:postinstall": "mklink /J .git\\hooks\\pre-commit .pre-commit.sh || copy .pre-commit.sh .git\\hooks\\pre-commit"
|
|
33
|
+
},
|
|
34
|
+
"exports": {
|
|
35
|
+
".": {
|
|
36
|
+
"types": "./types/index.d.ts",
|
|
37
|
+
"import": "./build/index.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"build",
|
|
42
|
+
"types"
|
|
43
|
+
],
|
|
44
|
+
"contributors": [
|
|
45
|
+
"Veclea <vemocle@gmail.com>"
|
|
46
|
+
],
|
|
47
|
+
"author": "Veclea",
|
|
48
|
+
"repository": {
|
|
49
|
+
"url": "https://github.com/Veclea/samlify.git",
|
|
50
|
+
"type": "git"
|
|
51
|
+
},
|
|
52
|
+
"bugs": {
|
|
53
|
+
"url": "https://github.com/Veclea/samlify/issues"
|
|
54
|
+
},
|
|
55
|
+
"docs": "https://saml.veclea.com",
|
|
56
|
+
"license": "MIT",
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"@xmldom/xmldom": "^0.9.10",
|
|
59
|
+
"axios": "^1.15.2",
|
|
60
|
+
"camelcase": "^9.0.0",
|
|
61
|
+
"cross-env": "^10.1.0",
|
|
62
|
+
"iconv-lite": "^0.7.2",
|
|
63
|
+
"ts-node": "^10.9.2",
|
|
64
|
+
"vite-tsconfig-paths": "^6.1.1",
|
|
65
|
+
"xml": "^1.0.1",
|
|
66
|
+
"xml-crypto-next": "^8.0.0",
|
|
67
|
+
"xml-encryption-next": "^5.0.0",
|
|
68
|
+
"xml-escape": "^1.1.0",
|
|
69
|
+
"xml2js": "^0.6.2",
|
|
70
|
+
"xmllint-wasm": "^5.2.0",
|
|
71
|
+
"xpath": "^0.0.34"
|
|
72
|
+
},
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@types/node": "^25.6.0",
|
|
75
|
+
"@types/pako": "2.0.4",
|
|
76
|
+
"@types/uuid": "11.0.0",
|
|
77
|
+
"@vitest/coverage-istanbul": "^4.1.5",
|
|
78
|
+
"@vitest/coverage-v8": "4.1.5",
|
|
79
|
+
"copyfiles": "^2.4.1",
|
|
80
|
+
"coveralls": "^3.1.1",
|
|
81
|
+
"esbuild": "^0.28.0",
|
|
82
|
+
"jsdom": "^29.0.2",
|
|
83
|
+
"timekeeper": "^2.3.1",
|
|
84
|
+
"typescript": "6.0.3",
|
|
85
|
+
"vitest": "^4.1.5"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AA4B/C,eAAO,MAAM,kBAAkB,EAAE,eAsFhC,CAAC;AAKF,eAAO,MAAM,qBAAqB,EAAE,eAsBnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAsBpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAGvC,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,eAG/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eAGxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AA4B/C,eAAO,MAAM,kBAAkB,EAAE,eAsFhC,CAAC;AAKF,eAAO,MAAM,qBAAqB,EAAE,eAsBnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAsBpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAGvC,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,eAG/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eAGxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,KAAK,eAAe,CAYrE,CAAC;AAqMF,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAIlC,CAAC;AAKF,eAAO,MAAM,iBAAiB,EAAE,eAiI/B,CAAC;AAOF,eAAO,MAAM,gBAAgB,EAAE,eAyL9B,CAAC;AAEF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,OAiN/D;AASD,eAAO,MAAM,2BAA2B,EAAE,eAkZzC,CAAC;AAIF;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,OAkRrE;AAKD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,OAE5C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,OAEzC;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,OAExC;AACD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,OAEjD;AACD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,OAE9C;AACD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,OAErD"}
|
package/types/src/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAynBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BhG;AAED,wBAAgB,IAAI,CAAC,OAAO,KAAA,GAAG,OAAO,CAAC,UAAU,CAAC,CA0BjD"}
|
|
@@ -1 +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,
|
|
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,CAqCR;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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saml2-enhancements.d.ts","sourceRoot":"","sources":["../../src/saml2-enhancements.ts"],"names":[],"mappings":"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
|
|
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
package/types/src/types.d.ts.map
CHANGED
|
@@ -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":"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"}
|