@bostonuniversity/shibboleth-sp 1.0.2 → 1.0.4
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/dist/cjs/index.js +11726 -4790
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/HandlerSp.js +41 -9
- package/dist/esm/HandlerSp.js.map +1 -1
- package/dist/esm/Http.js +18 -2
- package/dist/esm/Http.js.map +1 -1
- package/dist/esm/index.js +11722 -4789
- package/dist/esm/index.js.map +4 -4
- package/dist/types/HandlerSp.d.ts +7 -0
- package/dist/types/Http.d.ts +6 -0
- package/package.json +1 -2
package/dist/esm/HandlerSp.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.handler = exports.APP_AUTHORIZATION_HEADER_NAME = exports.AUTH_PATHS = void 0;
|
|
12
|
+
exports.handler = exports.SP_OWNED_HEADER_NAMES = exports.APP_AUTHORIZATION_HEADER_NAME = exports.AUTH_PATHS = void 0;
|
|
13
13
|
const Saml_1 = require("./Saml");
|
|
14
14
|
const Jwt_1 = require("./Jwt");
|
|
15
15
|
const Utils_1 = require("./Utils");
|
|
@@ -23,6 +23,21 @@ var AUTH_PATHS;
|
|
|
23
23
|
AUTH_PATHS["FAVICON"] = "/favicon.ico";
|
|
24
24
|
})(AUTH_PATHS || (exports.AUTH_PATHS = AUTH_PATHS = {}));
|
|
25
25
|
exports.APP_AUTHORIZATION_HEADER_NAME = 'app_authorization';
|
|
26
|
+
/**
|
|
27
|
+
* These are the headers whose values are asserted by the shibboleth handler logic.
|
|
28
|
+
* They are exported here so consumers can share the same trust-boundary definition.
|
|
29
|
+
*
|
|
30
|
+
* Configured login, logout, and custom header names complete the set at runtime.
|
|
31
|
+
*/
|
|
32
|
+
exports.SP_OWNED_HEADER_NAMES = [
|
|
33
|
+
'authenticated',
|
|
34
|
+
'user-details',
|
|
35
|
+
'login',
|
|
36
|
+
'eduPersonPrincipalName',
|
|
37
|
+
'buPrincipal',
|
|
38
|
+
'eduPersonAffiliation',
|
|
39
|
+
'eduPersonEntitlement',
|
|
40
|
+
];
|
|
26
41
|
/**
|
|
27
42
|
* This is the sp "switchboard operator" for origin request traffic. It will perform all saml SP operations for ensuring
|
|
28
43
|
* that the user bears JWT proof of saml authentication, else it drives the authentication flow with the IDP.
|
|
@@ -48,11 +63,26 @@ const handler = (originRequest, config) => __awaiter(void 0, void 0, void 0, fun
|
|
|
48
63
|
if (customHdr && 'true' == customHdr) {
|
|
49
64
|
appAuthorization = true;
|
|
50
65
|
}
|
|
66
|
+
// Strip viewer-supplied values from every SP-owned output before forwarding the request. Writes
|
|
67
|
+
// are conditional, and addHeader ignores blank values, so overwriting alone could preserve a value
|
|
68
|
+
// the SP did not assert.
|
|
69
|
+
//
|
|
70
|
+
// app_authorization is an input, not an SP-owned output. It is intentionally read above and
|
|
71
|
+
// preserved, so its provenance must be enforced upstream.
|
|
72
|
+
[
|
|
73
|
+
...exports.SP_OWNED_HEADER_NAMES,
|
|
74
|
+
appLoginHeader,
|
|
75
|
+
appLogoutHeader,
|
|
76
|
+
...customHeaders.map(h => h.key),
|
|
77
|
+
]
|
|
78
|
+
.filter(name => name)
|
|
79
|
+
.forEach(name => (0, Http_1.removeHeader)(originRequest, name));
|
|
51
80
|
try {
|
|
52
81
|
let response;
|
|
53
82
|
const qsparms = querystring ? new URLSearchParams(querystring) : null;
|
|
54
83
|
console.log(`uri: ${uri}`);
|
|
55
|
-
|
|
84
|
+
// Parameter names only: values can carry a SAMLResponse or a return URL.
|
|
85
|
+
console.log(`querystring parameters: ${qsparms ? [...qsparms.keys()].join(', ') : ''}`);
|
|
56
86
|
const { LOGIN, LOGOUT, ASSERT, METADATA, FAVICON } = AUTH_PATHS;
|
|
57
87
|
const getAppLoginUrl = () => {
|
|
58
88
|
const relay_state = encodeURIComponent(relayDomain + uri + (querystring ? `?${querystring}` : ''));
|
|
@@ -102,14 +132,14 @@ const handler = (originRequest, config) => __awaiter(void 0, void 0, void 0, fun
|
|
|
102
132
|
break;
|
|
103
133
|
case ASSERT:
|
|
104
134
|
const result = yield samlTools.sendAssert(originRequest);
|
|
105
|
-
const message = `Authentication successful. result: ${JSON.stringify(result, null, 2)}`;
|
|
106
135
|
var { samlAssertResponse, relayState } = result;
|
|
107
136
|
relayState = decodeURIComponent(relayState || relayDomain);
|
|
108
137
|
if (!samlAssertResponse)
|
|
109
138
|
break;
|
|
110
|
-
(0, Utils_1.debugPrint)(
|
|
111
|
-
console.log(`relayState: ${relayState}`);
|
|
139
|
+
(0, Utils_1.debugPrint)('Authentication successful.');
|
|
112
140
|
const redirectUrl = new URL(relayState);
|
|
141
|
+
// Origin and path only: the relay state can embed the original querystring.
|
|
142
|
+
console.log(`relayState: ${redirectUrl.origin}${redirectUrl.pathname}`);
|
|
113
143
|
redirectUrl.searchParams.append('after_auth', 'true');
|
|
114
144
|
response = {
|
|
115
145
|
status: '302',
|
|
@@ -122,7 +152,8 @@ const handler = (originRequest, config) => __awaiter(void 0, void 0, void 0, fun
|
|
|
122
152
|
sub: samlAssertResponse.user.name_id,
|
|
123
153
|
user: samlAssertResponse.user.attributes
|
|
124
154
|
};
|
|
125
|
-
|
|
155
|
+
// Attribute names only: the values are the user's identity.
|
|
156
|
+
console.log(`Setting JWT with attributes: ${Object.keys(cookieValue.user || {}).join(', ')}`);
|
|
126
157
|
jwtTools.setCookieInResponse(response, cookieValue);
|
|
127
158
|
break;
|
|
128
159
|
case METADATA:
|
|
@@ -166,7 +197,8 @@ const handler = (originRequest, config) => __awaiter(void 0, void 0, void 0, fun
|
|
|
166
197
|
const { key, value } = customHeaders[i];
|
|
167
198
|
(0, Http_1.addHeader)(response, key, encodeURIComponent(value));
|
|
168
199
|
}
|
|
169
|
-
|
|
200
|
+
// Header names only: the cookie and user-details values are the session token.
|
|
201
|
+
console.log(`Valid JWT found - passing through to origin with headers: ${Object.keys(response.headers).join(', ')}`);
|
|
170
202
|
}
|
|
171
203
|
else if (afterAuth.toLocaleLowerCase() === 'true') {
|
|
172
204
|
// The saml exchange has just taken place, and the user has authenticated with the IDP, yet either
|
|
@@ -181,7 +213,7 @@ const handler = (originRequest, config) => __awaiter(void 0, void 0, void 0, fun
|
|
|
181
213
|
'content-type': [{ key: 'Content-Type', value: 'text/plain' }],
|
|
182
214
|
}
|
|
183
215
|
};
|
|
184
|
-
console.log(`No valid JWT found after authentication
|
|
216
|
+
console.log(`No valid JWT found after authentication - responding ${response.status}`);
|
|
185
217
|
}
|
|
186
218
|
else if (appAuthorization) {
|
|
187
219
|
// The application will "decide" if access to it needs to be authenticated or not, so just pass through the request
|
|
@@ -205,7 +237,7 @@ const handler = (originRequest, config) => __awaiter(void 0, void 0, void 0, fun
|
|
|
205
237
|
location: [{ key: 'Location', value: getAppLoginUrl() }],
|
|
206
238
|
},
|
|
207
239
|
};
|
|
208
|
-
console.log(`No valid JWT found - redirecting
|
|
240
|
+
console.log(`No valid JWT found - redirecting to ${LOGIN}`);
|
|
209
241
|
}
|
|
210
242
|
break;
|
|
211
243
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerSp.js","sourceRoot":"","sources":["../../src/HandlerSp.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAqD;AACrD,+BAAiC;AACjC,mCAAqC;AAErC,
|
|
1
|
+
{"version":3,"file":"HandlerSp.js","sourceRoot":"","sources":["../../src/HandlerSp.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Http.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getHost = exports.addHeader = exports.Headers = void 0;
|
|
3
|
+
exports.getHost = exports.removeHeader = exports.addHeader = exports.Headers = void 0;
|
|
4
4
|
const Utils_1 = require("./Utils");
|
|
5
5
|
/**
|
|
6
6
|
* Header accessor wrapper.
|
|
@@ -60,6 +60,22 @@ const addHeader = (obj, keyname, value) => {
|
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
exports.addHeader = addHeader;
|
|
63
|
+
/**
|
|
64
|
+
* Removes a header regardless of its value. Request removals are recorded in headerActivity.
|
|
65
|
+
* @param obj
|
|
66
|
+
* @param keyname
|
|
67
|
+
*/
|
|
68
|
+
const removeHeader = (obj, keyname) => {
|
|
69
|
+
const key = keyname.toLowerCase();
|
|
70
|
+
if (obj.headers && key in obj.headers) {
|
|
71
|
+
const removed = obj.headers[key];
|
|
72
|
+
delete obj.headers[key];
|
|
73
|
+
if ((0, Utils_1.instanceOf)(obj, "uri")) {
|
|
74
|
+
obj.headerActivity.removed[key] = removed;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
exports.removeHeader = removeHeader;
|
|
63
79
|
/**
|
|
64
80
|
* Extracts the host header value from an HTTP request.
|
|
65
81
|
* @param request The HTTP request object
|
|
@@ -75,7 +91,7 @@ const getHost = (request) => {
|
|
|
75
91
|
return headers.get('host');
|
|
76
92
|
}
|
|
77
93
|
catch (e) {
|
|
78
|
-
console.log(`ERROR: Unable to determine host from request: ${
|
|
94
|
+
console.log(`ERROR: Unable to determine host from request with headers: ${Object.keys(request.headers).join(', ')}`);
|
|
79
95
|
}
|
|
80
96
|
return null;
|
|
81
97
|
};
|
package/dist/esm/Http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Http.js","sourceRoot":"","sources":["../../src/Http.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Http.js","sourceRoot":"","sources":["../../src/Http.ts"],"names":[],"mappings":"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"}
|