@node-c/domain-iam 1.0.0-alpha9 → 1.0.0-beta0

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.
Files changed (104) hide show
  1. package/dist/common/definitions/common.constants.d.ts +6 -1
  2. package/dist/common/definitions/common.constants.js +5 -0
  3. package/dist/common/definitions/common.constants.js.map +1 -1
  4. package/dist/module/iam.module.js.map +1 -1
  5. package/dist/services/authentication/iam.authentication.definitions.d.ts +79 -16
  6. package/dist/services/authentication/iam.authentication.definitions.js +6 -9
  7. package/dist/services/authentication/iam.authentication.definitions.js.map +1 -1
  8. package/dist/services/authentication/iam.authentication.service.d.ts +10 -3
  9. package/dist/services/authentication/iam.authentication.service.js +30 -2
  10. package/dist/services/authentication/iam.authentication.service.js.map +1 -1
  11. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.d.ts +38 -0
  12. package/dist/services/{authenticationLocal/iam.authenticationLocal.definitions.js → authenticationOAuth2/iam.authenticationOAuth2.definitions.js} +1 -1
  13. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.js.map +1 -0
  14. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.d.ts +24 -0
  15. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js +299 -0
  16. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js.map +1 -0
  17. package/dist/services/authenticationOAuth2/index.d.ts +2 -0
  18. package/dist/services/authenticationOAuth2/index.js +19 -0
  19. package/dist/services/authenticationOAuth2/index.js.map +1 -0
  20. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.d.ts +12 -0
  21. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.js +3 -0
  22. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.js.map +1 -0
  23. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.d.ts +14 -0
  24. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.js +141 -0
  25. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.js.map +1 -0
  26. package/dist/services/authenticationUserLocal/index.d.ts +2 -0
  27. package/dist/services/{authenticationLocal → authenticationUserLocal}/index.js +2 -2
  28. package/dist/services/authenticationUserLocal/index.js.map +1 -0
  29. package/dist/services/authorization/iam.authorization.definitions.d.ts +33 -23
  30. package/dist/services/authorization/iam.authorization.definitions.js +7 -0
  31. package/dist/services/authorization/iam.authorization.definitions.js.map +1 -1
  32. package/dist/services/authorization/iam.authorization.service.d.ts +28 -13
  33. package/dist/services/authorization/iam.authorization.service.js +231 -125
  34. package/dist/services/authorization/iam.authorization.service.js.map +1 -1
  35. package/dist/services/index.d.ts +4 -2
  36. package/dist/services/index.js +4 -2
  37. package/dist/services/index.js.map +1 -1
  38. package/dist/services/mfa/iam.mfa.definitions.d.ts +21 -0
  39. package/dist/services/mfa/iam.mfa.definitions.js +8 -0
  40. package/dist/services/mfa/iam.mfa.definitions.js.map +1 -0
  41. package/dist/services/mfa/iam.mfa.service.d.ts +9 -0
  42. package/dist/services/mfa/iam.mfa.service.js +31 -0
  43. package/dist/services/mfa/iam.mfa.service.js.map +1 -0
  44. package/dist/services/mfa/index.d.ts +2 -0
  45. package/dist/services/{users → mfa}/index.js +2 -2
  46. package/dist/services/mfa/index.js.map +1 -0
  47. package/dist/services/tokenManager/iam.tokenManager.definitions.d.ts +14 -3
  48. package/dist/services/tokenManager/iam.tokenManager.definitions.js.map +1 -1
  49. package/dist/services/tokenManager/iam.tokenManager.service.d.ts +23 -9
  50. package/dist/services/tokenManager/iam.tokenManager.service.js +111 -43
  51. package/dist/services/tokenManager/iam.tokenManager.service.js.map +1 -1
  52. package/dist/services/userManager/iam.userManager.definitions.d.ts +45 -0
  53. package/dist/services/userManager/iam.userManager.definitions.js +8 -0
  54. package/dist/services/userManager/iam.userManager.definitions.js.map +1 -0
  55. package/dist/services/userManager/iam.userManager.service.d.ts +32 -0
  56. package/dist/services/userManager/iam.userManager.service.js +331 -0
  57. package/dist/services/userManager/iam.userManager.service.js.map +1 -0
  58. package/dist/services/userManager/index.d.ts +2 -0
  59. package/dist/services/userManager/index.js +19 -0
  60. package/dist/services/userManager/index.js.map +1 -0
  61. package/package.json +9 -8
  62. package/src/common/definitions/common.constants.ts +14 -0
  63. package/src/common/definitions/index.ts +1 -0
  64. package/src/index.ts +3 -0
  65. package/src/module/iam.definitions.ts +15 -0
  66. package/src/module/iam.module.ts +29 -0
  67. package/src/module/index.ts +2 -0
  68. package/src/services/authentication/iam.authentication.definitions.ts +100 -0
  69. package/src/services/authentication/iam.authentication.service.ts +103 -0
  70. package/src/services/authentication/index.ts +2 -0
  71. package/src/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.ts +71 -0
  72. package/src/services/authenticationOAuth2/iam.authenticationOAuth2.service.ts +350 -0
  73. package/src/services/authenticationOAuth2/index.ts +2 -0
  74. package/src/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.ts +29 -0
  75. package/src/services/authenticationUserLocal/iam.authenticationUserLocal.service.ts +171 -0
  76. package/src/services/authenticationUserLocal/index.ts +2 -0
  77. package/src/services/authorization/iam.authorization.definitions.ts +55 -0
  78. package/src/services/authorization/iam.authorization.service.ts +384 -0
  79. package/src/services/authorization/index.ts +2 -0
  80. package/src/services/index.ts +7 -0
  81. package/src/services/mfa/iam.mfa.definitions.ts +28 -0
  82. package/src/services/mfa/iam.mfa.service.ts +38 -0
  83. package/src/services/mfa/index.ts +2 -0
  84. package/src/services/tokenManager/iam.tokenManager.definitions.ts +61 -0
  85. package/src/services/tokenManager/iam.tokenManager.service.ts +290 -0
  86. package/src/services/tokenManager/index.ts +2 -0
  87. package/src/services/userManager/iam.userManager.definitions.ts +73 -0
  88. package/src/services/userManager/iam.userManager.service.ts +461 -0
  89. package/src/services/userManager/index.ts +2 -0
  90. package/dist/services/authenticationLocal/iam.authenticationLocal.definitions.d.ts +0 -11
  91. package/dist/services/authenticationLocal/iam.authenticationLocal.definitions.js.map +0 -1
  92. package/dist/services/authenticationLocal/iam.authenticationLocal.service.d.ts +0 -10
  93. package/dist/services/authenticationLocal/iam.authenticationLocal.service.js +0 -70
  94. package/dist/services/authenticationLocal/iam.authenticationLocal.service.js.map +0 -1
  95. package/dist/services/authenticationLocal/index.d.ts +0 -2
  96. package/dist/services/authenticationLocal/index.js.map +0 -1
  97. package/dist/services/users/iam.users.definitions.d.ts +0 -30
  98. package/dist/services/users/iam.users.definitions.js +0 -8
  99. package/dist/services/users/iam.users.definitions.js.map +0 -1
  100. package/dist/services/users/iam.users.service.d.ts +0 -16
  101. package/dist/services/users/iam.users.service.js +0 -93
  102. package/dist/services/users/iam.users.service.js.map +0 -1
  103. package/dist/services/users/index.d.ts +0 -2
  104. package/dist/services/users/index.js.map +0 -1
@@ -13,49 +13,137 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.IAMAuthorizationService = void 0;
16
+ const crypto_1 = __importDefault(require("crypto"));
16
17
  const core_1 = require("@node-c/core");
17
- const general_tools_1 = require("@ramster/general-tools");
18
- const immutable_1 = __importDefault(require("immutable"));
19
- const ramda_1 = require("ramda");
18
+ const lodash_1 = __importDefault(require("lodash"));
19
+ const iam_authorization_definitions_1 = require("./iam.authorization.definitions");
20
20
  class IAMAuthorizationService extends core_1.DomainEntityService {
21
- constructor(persistanceAuthorizationPointsService, defaultMethods = [core_1.DomainMethod.Find], additionalPersistanceEntityServices) {
22
- super(persistanceAuthorizationPointsService, defaultMethods, additionalPersistanceEntityServices);
23
- this.persistanceAuthorizationPointsService = persistanceAuthorizationPointsService;
21
+ constructor(dataAuthorizationPointsService, defaultMethods = [core_1.DomainMethod.Find], additionalDataEntityServices, tokenManager) {
22
+ super(dataAuthorizationPointsService, defaultMethods, additionalDataEntityServices);
23
+ this.dataAuthorizationPointsService = dataAuthorizationPointsService;
24
24
  this.defaultMethods = defaultMethods;
25
- this.additionalPersistanceEntityServices = additionalPersistanceEntityServices;
25
+ this.additionalDataEntityServices = additionalDataEntityServices;
26
+ this.tokenManager = tokenManager;
26
27
  }
27
- static checkAccess(authorizationPoints, inputData, user) {
28
- const mutatedInputData = immutable_1.default.fromJS(inputData).toJS();
29
- const userPermissionsData = user.currentAuthorizationPoints;
28
+ authorizeApiKey(data, options) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const { apiKey, signature, signatureContent } = data;
31
+ const { config: { apiKey: expectedApiKey, apiSecret, apiSecretAlgorithm } } = options;
32
+ if (!apiKey) {
33
+ console.error('Missing api key.');
34
+ return { valid: false };
35
+ }
36
+ if (apiKey !== expectedApiKey) {
37
+ console.error('Invalid api key.');
38
+ return { valid: false };
39
+ }
40
+ if (apiSecret && apiSecretAlgorithm) {
41
+ if (!signature) {
42
+ console.error('Missing authorization signature.');
43
+ return { valid: false };
44
+ }
45
+ if (!signatureContent) {
46
+ console.error('Missing authorization signature content.');
47
+ return { valid: false };
48
+ }
49
+ const calcualtedSignature = crypto_1.default
50
+ .createHmac(apiSecretAlgorithm, apiSecret)
51
+ .update(signatureContent)
52
+ .digest('hex');
53
+ if (calcualtedSignature !== signature) {
54
+ console.error(`Invalid signature provided. Expected: ${calcualtedSignature}. Provided: ${signature}`);
55
+ return { valid: false };
56
+ }
57
+ }
58
+ return { valid: true };
59
+ });
60
+ }
61
+ authorizeBearer(data, options) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const { tokenManager } = this;
64
+ const { authToken, refreshToken } = data;
65
+ const { identifierDataField } = options || {};
66
+ if (!tokenManager) {
67
+ console.error('Token manager not configured.');
68
+ return { valid: false };
69
+ }
70
+ if (!authToken) {
71
+ console.error('Missing auth token.');
72
+ return { valid: false };
73
+ }
74
+ let newAuthToken;
75
+ let tokenContent;
76
+ try {
77
+ const tokenRes = yield tokenManager.verifyAccessToken(authToken, {
78
+ deleteFromStoreIfExpired: true,
79
+ identifierDataField,
80
+ persistNewToken: true,
81
+ purgeStoreOnRenew: true,
82
+ refreshToken,
83
+ refreshTokenAccessTokenIdentifierDataField: 'accessToken'
84
+ });
85
+ tokenContent = tokenRes.content;
86
+ if (tokenRes.newToken) {
87
+ newAuthToken = tokenRes.newToken;
88
+ }
89
+ }
90
+ catch (e) {
91
+ console.error('Failed to parse the access or refresh token:', e);
92
+ return { valid: false };
93
+ }
94
+ return { newAuthToken, tokenContent, valid: true };
95
+ });
96
+ }
97
+ checkAccessWithStorage() {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ throw new core_1.ApplicationError('[IAMAuthorizationService.checkAccessWithStorage]: Method not implemented.');
100
+ });
101
+ }
102
+ static checkAccess(inputData, user, options) {
103
+ var _a;
104
+ const { moduleName, resourceContext, resource } = options;
105
+ let hasResource = false;
106
+ if (resource) {
107
+ if (!resourceContext) {
108
+ throw new core_1.ApplicationError('[IAMAuthorizationService.checkAccess]: A resourceContext is required when providing a resource value.');
109
+ }
110
+ hasResource = true;
111
+ }
112
+ const mutatedInputData = lodash_1.default.cloneDeep(inputData);
113
+ const usedAuthorizationPoints = {};
114
+ const { currentAuthorizationPoints } = user;
115
+ let authorizationPointsCount = 0;
116
+ let authorizationPointsForDifferentModules = 0;
117
+ let authorizationPointsForDifferentContexts = 0;
30
118
  let hasAccess = false;
31
119
  let inputDataToBeMutated = {};
32
- for (const apId in authorizationPoints) {
33
- if (!userPermissionsData[apId]) {
120
+ let noMatchForResource = false;
121
+ for (const apId in currentAuthorizationPoints) {
122
+ const apData = currentAuthorizationPoints[apId];
123
+ authorizationPointsCount++;
124
+ if (moduleName !== apData.moduleName) {
125
+ authorizationPointsForDifferentModules++;
126
+ continue;
127
+ }
128
+ if (hasResource &&
129
+ (!apData.resourceContext ||
130
+ apData.resourceContext !== resourceContext ||
131
+ !((_a = apData.resources) === null || _a === void 0 ? void 0 : _a.includes(resource)))) {
132
+ authorizationPointsForDifferentContexts++;
34
133
  continue;
35
134
  }
36
- const apData = authorizationPoints[apId];
37
135
  const { allowedInputData, forbiddenInputData, inputDataFieldName, requiredStaticData, userFieldName } = apData;
38
136
  const hasStaticData = requiredStaticData && Object.keys(requiredStaticData).length;
39
- const innerMutatedInputData = immutable_1.default.fromJS(mutatedInputData).toJS();
137
+ const innerMutatedInputData = lodash_1.default.cloneDeep(mutatedInputData);
40
138
  const innerInputDataToBeMutated = {};
41
139
  hasAccess = true;
42
- if (allowedInputData && Object.keys(allowedInputData).length) {
43
- const values = IAMAuthorizationService.matchInputValues(innerMutatedInputData, allowedInputData);
44
- for (const key in values) {
45
- innerInputDataToBeMutated[key] = values[key];
46
- (0, general_tools_1.setNested)(innerMutatedInputData, key, values[key], { removeNestedFieldEscapeSign: true });
47
- }
48
- }
49
- if (forbiddenInputData && Object.keys(forbiddenInputData).length) {
50
- const values = IAMAuthorizationService.matchInputValues(innerMutatedInputData, forbiddenInputData);
51
- for (const key in values) {
52
- innerInputDataToBeMutated[key] = undefined;
53
- (0, general_tools_1.setNested)(innerMutatedInputData, key, undefined, { removeNestedFieldEscapeSign: true });
54
- }
140
+ if (!noMatchForResource) {
141
+ noMatchForResource = true;
55
142
  }
56
143
  if (hasStaticData) {
57
144
  for (const fieldName in requiredStaticData) {
58
- if (!IAMAuthorizationService.testValue((0, general_tools_1.getNested)({ inputData: innerMutatedInputData, user }, fieldName, { removeNestedFieldEscapeSign: true }), requiredStaticData[fieldName])) {
145
+ if (!IAMAuthorizationService.testValue((0, core_1.getNested)({ inputData: innerMutatedInputData, user }, fieldName, { removeNestedFieldEscapeSign: true })
146
+ .unifiedValue, requiredStaticData[fieldName])) {
59
147
  hasAccess = false;
60
148
  break;
61
149
  }
@@ -65,49 +153,72 @@ class IAMAuthorizationService extends core_1.DomainEntityService {
65
153
  }
66
154
  }
67
155
  if (userFieldName && inputDataFieldName) {
68
- const inputFieldValue = (0, general_tools_1.getNested)(innerMutatedInputData, inputDataFieldName, {
156
+ const { paths: inputFieldPaths, unifiedValue: inputFieldValue } = (0, core_1.getNested)(innerMutatedInputData, inputDataFieldName, {
69
157
  removeNestedFieldEscapeSign: true
70
158
  });
71
- const userFieldValue = (0, general_tools_1.getNested)(user, userFieldName, { removeNestedFieldEscapeSign: true });
72
- if (typeof userFieldValue === 'undefined' || typeof inputFieldValue === 'undefined') {
159
+ const { unifiedValue: userFieldValue } = (0, core_1.getNested)(user, userFieldName, { removeNestedFieldEscapeSign: true });
160
+ if (typeof userFieldValue === 'undefined') {
73
161
  hasAccess = false;
74
162
  continue;
75
163
  }
76
- const allowedValues = [];
77
- const inputValueIsArray = inputFieldValue instanceof Array;
78
- const valuesToTest = inputValueIsArray ? inputFieldValue : [inputFieldValue];
79
- const valuesToTestAgainst = userFieldValue instanceof Array ? userFieldValue : [userFieldValue];
80
- valuesToTest.forEach((valueToTest) => {
81
- const valueToTestVariants = IAMAuthorizationService.getValuesForTesting(valueToTest);
82
- for (const j in valuesToTestAgainst) {
83
- const valueToTestAgainst = valuesToTestAgainst[j];
84
- let matchFound = false;
85
- for (const k in valueToTestVariants) {
86
- const variant = valueToTestVariants[k];
87
- if (valueToTestAgainst === variant) {
88
- allowedValues.push(variant);
89
- matchFound = true;
90
- break;
91
- }
92
- }
93
- if (matchFound) {
94
- break;
95
- }
164
+ if (typeof inputFieldValue === 'undefined') {
165
+ innerInputDataToBeMutated[inputDataFieldName] = userFieldValue;
166
+ (0, core_1.setNested)(innerMutatedInputData, inputDataFieldName, userFieldValue, {
167
+ removeNestedFieldEscapeSign: true,
168
+ setNestedArraysPerIndex: inputFieldPaths.length > 1
169
+ });
170
+ }
171
+ else {
172
+ const allowedValues = IAMAuthorizationService.matchInputValues(innerMutatedInputData, {
173
+ [inputDataFieldName]: userFieldValue
174
+ })[inputDataFieldName];
175
+ const inputValueIsArray = inputFieldValue instanceof Array;
176
+ if (!(allowedValues === null || allowedValues === void 0 ? void 0 : allowedValues.length)) {
177
+ hasAccess = false;
178
+ continue;
96
179
  }
97
- });
98
- if (!allowedValues.length) {
99
- hasAccess = false;
100
- continue;
180
+ if (inputValueIsArray) {
181
+ innerInputDataToBeMutated[inputDataFieldName] = allowedValues;
182
+ (0, core_1.setNested)(innerMutatedInputData, inputDataFieldName, allowedValues, { removeNestedFieldEscapeSign: true });
183
+ }
184
+ }
185
+ }
186
+ if (allowedInputData && Object.keys(allowedInputData).length) {
187
+ const values = IAMAuthorizationService.matchInputValues(innerMutatedInputData, allowedInputData);
188
+ for (const key in values) {
189
+ innerInputDataToBeMutated[key] = values[key];
190
+ (0, core_1.setNested)(innerMutatedInputData, key, values[key], { removeNestedFieldEscapeSign: true });
101
191
  }
102
- if (inputValueIsArray) {
103
- innerInputDataToBeMutated[inputDataFieldName] = allowedValues;
104
- (0, general_tools_1.setNested)(mutatedInputData, inputDataFieldName, allowedValues, { removeNestedFieldEscapeSign: true });
192
+ }
193
+ if (forbiddenInputData && Object.keys(forbiddenInputData).length) {
194
+ const values = IAMAuthorizationService.matchInputValues(innerMutatedInputData, forbiddenInputData);
195
+ for (const key in values) {
196
+ innerInputDataToBeMutated[key] = undefined;
197
+ (0, core_1.setNested)(innerMutatedInputData, key, undefined, { removeNestedFieldEscapeSign: true });
105
198
  }
106
199
  }
107
- inputDataToBeMutated = (0, ramda_1.mergeDeepRight)(inputDataToBeMutated, innerInputDataToBeMutated);
200
+ inputDataToBeMutated = lodash_1.default.merge(inputDataToBeMutated, innerInputDataToBeMutated);
201
+ usedAuthorizationPoints[apId] = apData;
108
202
  break;
109
203
  }
110
- return { hasAccess, inputDataToBeMutated };
204
+ const returnData = {
205
+ authorizationPoints: usedAuthorizationPoints,
206
+ hasAccess,
207
+ inputDataToBeMutated,
208
+ noMatchForResource
209
+ };
210
+ if (!hasAccess) {
211
+ if (authorizationPointsForDifferentModules === authorizationPointsCount) {
212
+ returnData.errorCode = iam_authorization_definitions_1.AuthorizationCheckErrorCode.RBACNoAccessToModule;
213
+ }
214
+ else if (authorizationPointsForDifferentContexts === authorizationPointsCount) {
215
+ returnData.errorCode = iam_authorization_definitions_1.AuthorizationCheckErrorCode.RBACNoAccessToResource;
216
+ }
217
+ else {
218
+ returnData.errorCode = iam_authorization_definitions_1.AuthorizationCheckErrorCode.FGANoAccessToModule;
219
+ }
220
+ }
221
+ return returnData;
111
222
  }
112
223
  static getValuesForTesting(valueToTest) {
113
224
  const values = [
@@ -123,89 +234,84 @@ class IAMAuthorizationService extends core_1.DomainEntityService {
123
234
  }
124
235
  return values;
125
236
  }
126
- mapAuthorizationPoints(moduleName, additionalServicesOptions) {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- const { result: { items: apList } } = yield this.find(Object.assign(Object.assign({}, (additionalServicesOptions || {})), { filters: { moduleNames: { [core_1.PersistanceSelectOperator.Contains]: moduleName } }, findAll: true }));
129
- const authorizationData = { __all: { __all: {} } };
130
- const moduleGlobalData = authorizationData.__all.__all;
131
- apList.forEach(item => {
132
- if (!item.controllerNames) {
133
- moduleGlobalData[item.id] = item;
134
- return;
135
- }
136
- item.controllerNames.forEach(ctlName => {
137
- let ctlData = authorizationData[ctlName];
138
- if (!ctlData) {
139
- ctlData = { __all: {} };
140
- authorizationData[ctlName] = ctlData;
141
- }
142
- if (!item.handlerNames) {
143
- ctlData.__all[item.id] = item;
144
- return;
145
- }
146
- item.handlerNames.forEach(hName => {
147
- let hData = ctlData[hName];
148
- if (!hData) {
149
- hData = {};
150
- ctlData[hName] = hData;
151
- }
152
- hData[item.id] = item;
153
- });
154
- });
155
- });
156
- return authorizationData;
157
- });
158
- }
159
237
  static matchInputValues(input, values) {
160
- const mutatedInput = immutable_1.default.fromJS(input).toJS();
238
+ const matchedValues = {};
161
239
  for (const fieldName in values) {
162
- const value = (0, general_tools_1.getNested)(input, fieldName, { removeNestedFieldEscapeSign: true });
240
+ const { paths: valuePaths, values: foundValues } = (0, core_1.getNested)(input, fieldName, {
241
+ removeNestedFieldEscapeSign: true
242
+ });
163
243
  const allowedValue = values[fieldName];
164
244
  const allowedValues = allowedValue instanceof Array ? allowedValue : [allowedValue];
165
- let valueIsArray = false;
166
- let valuesToCheck = [];
167
245
  const valuesToSet = [];
168
- if (value instanceof Array) {
169
- valuesToCheck = value;
170
- valueIsArray = true;
171
- }
172
- else {
173
- valuesToCheck.push(value);
174
- }
175
- valuesToCheck.forEach(valueToCheck => {
176
- const valueToCheckVariants = IAMAuthorizationService.getValuesForTesting(valueToCheck);
177
- for (const i in valueToCheckVariants) {
178
- const actualValueToCheck = valueToCheckVariants[i];
179
- let checkPassed = false;
246
+ valuePaths.forEach((valuePath, valuePathIndex) => {
247
+ const valueAtIndex = foundValues[valuePathIndex];
248
+ let valueIsArray = false;
249
+ let valuesToCheck = [];
250
+ if (valueAtIndex instanceof Array) {
251
+ valuesToCheck = valueAtIndex;
252
+ valueIsArray = true;
253
+ }
254
+ else {
255
+ valuesToCheck.push(valueAtIndex);
256
+ }
257
+ valuesToCheck.forEach(valueToCheck => {
180
258
  for (const j in allowedValues) {
181
- if (IAMAuthorizationService.testValue(actualValueToCheck, allowedValues[j])) {
259
+ if (IAMAuthorizationService.testValue(valueToCheck, allowedValues[j])) {
182
260
  valuesToSet.push(valueToCheck);
183
- checkPassed = true;
184
261
  break;
185
262
  }
186
263
  }
187
- if (checkPassed) {
188
- break;
189
- }
264
+ });
265
+ if (!valuesToSet.length) {
266
+ matchedValues[valuePath] = undefined;
267
+ return;
190
268
  }
269
+ matchedValues[valuePath] = valueIsArray ? valuesToSet : valuesToSet[0];
191
270
  });
192
- if (!valuesToSet.length) {
193
- (0, general_tools_1.setNested)(mutatedInput, fieldName, undefined, { removeNestedFieldEscapeSign: true });
194
- continue;
271
+ }
272
+ return matchedValues;
273
+ }
274
+ static processOutputData(authorizationPoints, outputData) {
275
+ const mutatedOutputData = lodash_1.default.cloneDeep(outputData);
276
+ let outputDataToBeMutated = {};
277
+ for (const apId in authorizationPoints) {
278
+ const apData = authorizationPoints[apId];
279
+ const { allowedOutputData, forbiddenOutputData } = apData;
280
+ const innerMutatedOutputData = lodash_1.default.cloneDeep(mutatedOutputData);
281
+ const innerOutputDataToBeMutated = {};
282
+ if (allowedOutputData && Object.keys(allowedOutputData).length) {
283
+ const values = IAMAuthorizationService.matchInputValues(innerMutatedOutputData, allowedOutputData);
284
+ for (const key in values) {
285
+ innerOutputDataToBeMutated[key] = values[key];
286
+ (0, core_1.setNested)(innerMutatedOutputData, key, values[key], { removeNestedFieldEscapeSign: true });
287
+ }
195
288
  }
196
- (0, general_tools_1.setNested)(mutatedInput, fieldName, valueIsArray ? valuesToSet : valuesToSet[0], {
197
- removeNestedFieldEscapeSign: true
198
- });
289
+ if (forbiddenOutputData && Object.keys(forbiddenOutputData).length) {
290
+ const values = IAMAuthorizationService.matchInputValues(innerMutatedOutputData, forbiddenOutputData);
291
+ for (const key in values) {
292
+ innerOutputDataToBeMutated[key] = undefined;
293
+ (0, core_1.setNested)(innerMutatedOutputData, key, undefined, { removeNestedFieldEscapeSign: true });
294
+ }
295
+ }
296
+ outputDataToBeMutated = lodash_1.default.merge(outputDataToBeMutated, innerOutputDataToBeMutated);
199
297
  }
200
- return mutatedInput;
298
+ return { outputDataToBeMutated };
201
299
  }
202
300
  static testValue(valueToTest, valueToTestAgainst) {
203
- if (typeof valueToTest === 'string' &&
204
- typeof valueToTestAgainst === 'string' &&
301
+ if (typeof valueToTestAgainst === 'string' &&
205
302
  valueToTestAgainst.charAt(0) === '/' &&
206
303
  valueToTestAgainst.charAt(valueToTestAgainst.length - 1) === '/') {
207
- const regex = new RegExp(valueToTestAgainst.substring(1, valueToTestAgainst.length - 2));
208
- return regex.test(valueToTest);
304
+ const regex = new RegExp(valueToTestAgainst.substring(1, valueToTestAgainst.length - 1));
305
+ if (typeof valueToTest === 'undefined') {
306
+ return false;
307
+ }
308
+ return regex.test(typeof valueToTest === 'string' ? valueToTest : JSON.stringify(valueToTest));
309
+ }
310
+ if (typeof valueToTest === 'object' &&
311
+ valueToTest !== null &&
312
+ typeof valueToTestAgainst === 'object' &&
313
+ valueToTestAgainst !== null) {
314
+ return JSON.stringify(valueToTest) === JSON.stringify(valueToTestAgainst);
209
315
  }
210
316
  const possibleValidValues = IAMAuthorizationService.getValuesForTesting(valueToTest);
211
317
  let hasMatch = false;
@@ -1 +1 @@
1
- {"version":3,"file":"iam.authorization.service.js","sourceRoot":"","sources":["../../../src/services/authorization/iam.authorization.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iam.authorization.service.js","sourceRoot":"","sources":["../../../src/services/authorization/iam.authorization.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export * from './authentication';
2
- export * from './authenticationLocal';
2
+ export * from './authenticationOAuth2';
3
+ export * from './authenticationUserLocal';
3
4
  export * from './authorization';
5
+ export * from './mfa';
4
6
  export * from './tokenManager';
5
- export * from './users';
7
+ export * from './userManager';
@@ -15,8 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./authentication"), exports);
18
- __exportStar(require("./authenticationLocal"), exports);
18
+ __exportStar(require("./authenticationOAuth2"), exports);
19
+ __exportStar(require("./authenticationUserLocal"), exports);
19
20
  __exportStar(require("./authorization"), exports);
21
+ __exportStar(require("./mfa"), exports);
20
22
  __exportStar(require("./tokenManager"), exports);
21
- __exportStar(require("./users"), exports);
23
+ __exportStar(require("./userManager"), exports);
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,wDAAsC;AACtC,kDAAgC;AAChC,iDAA+B;AAC/B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,yDAAuC;AACvC,4DAA0C;AAC1C,kDAAgC;AAChC,wCAAsB;AACtB,iDAA+B;AAC/B,gDAA8B"}
@@ -0,0 +1,21 @@
1
+ export interface IAMMFACompleteData {
2
+ type?: IAMMFAType;
3
+ }
4
+ export interface IAMMFACompleteOptions<Context> {
5
+ context: Context;
6
+ }
7
+ export declare enum IAMMFAType {
8
+ Local = "local"
9
+ }
10
+ export interface IAMMFACompleteResult {
11
+ valid: boolean;
12
+ }
13
+ export interface IAMMFAInitiateData {
14
+ type?: IAMMFAType;
15
+ }
16
+ export interface IAMMFAInitiateOptions<Context> {
17
+ context: Context;
18
+ }
19
+ export interface IAMMFAInitiateResult {
20
+ valid: boolean;
21
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IAMMFAType = void 0;
4
+ var IAMMFAType;
5
+ (function (IAMMFAType) {
6
+ IAMMFAType["Local"] = "local";
7
+ })(IAMMFAType || (exports.IAMMFAType = IAMMFAType = {}));
8
+ //# sourceMappingURL=iam.mfa.definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iam.mfa.definitions.js","sourceRoot":"","sources":["../../../src/services/mfa/iam.mfa.definitions.ts"],"names":[],"mappings":";;;AAQA,IAAY,UAGX;AAHD,WAAY,UAAU;IAEpB,6BAAe,CAAA;AACjB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
@@ -0,0 +1,9 @@
1
+ import { ConfigProviderService } from '@node-c/core';
2
+ import { IAMMFACompleteData, IAMMFACompleteOptions, IAMMFACompleteResult, IAMMFAInitiateData, IAMMFAInitiateOptions, IAMMFAInitiateResult } from './iam.mfa.definitions';
3
+ export declare class IAMMFAService<CompleteContext extends object, InitiateContext extends object = object> {
4
+ protected configProvider: ConfigProviderService;
5
+ protected moduleName: string;
6
+ constructor(configProvider: ConfigProviderService, moduleName: string);
7
+ complete(_data: IAMMFACompleteData, _options: IAMMFACompleteOptions<CompleteContext>): Promise<IAMMFACompleteResult>;
8
+ initiate(_data: IAMMFAInitiateData, _options: IAMMFAInitiateOptions<InitiateContext>): Promise<IAMMFAInitiateResult>;
9
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.IAMMFAService = void 0;
13
+ const core_1 = require("@node-c/core");
14
+ class IAMMFAService {
15
+ constructor(configProvider, moduleName) {
16
+ this.configProvider = configProvider;
17
+ this.moduleName = moduleName;
18
+ }
19
+ complete(_data, _options) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ throw new core_1.ApplicationError(`[${this.moduleName}][IAMMFAService]: Method "complete" not implemented.`);
22
+ });
23
+ }
24
+ initiate(_data, _options) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ throw new core_1.ApplicationError(`[${this.moduleName}][IAMMFAService]: Method "initiate" not implemented.`);
27
+ });
28
+ }
29
+ }
30
+ exports.IAMMFAService = IAMMFAService;
31
+ //# sourceMappingURL=iam.mfa.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iam.mfa.service.js","sourceRoot":"","sources":["../../../src/services/mfa/iam.mfa.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAuE;AAYvE,MAAa,aAAa;IACxB,YAEY,cAAqC,EAErC,UAAkB;QAFlB,mBAAc,GAAd,cAAc,CAAuB;QAErC,eAAU,GAAV,UAAU,CAAQ;IAC3B,CAAC;IAEE,QAAQ,CAEZ,KAAyB,EAEzB,QAAgD;;YAEhD,MAAM,IAAI,uBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,sDAAsD,CAAC,CAAC;QACxG,CAAC;KAAA;IAEK,QAAQ,CAEZ,KAAyB,EAEzB,QAAgD;;YAEhD,MAAM,IAAI,uBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,sDAAsD,CAAC,CAAC;QACxG,CAAC;KAAA;CACF;AAzBD,sCAyBC"}
@@ -0,0 +1,2 @@
1
+ export * from './iam.mfa.definitions';
2
+ export * from './iam.mfa.service';
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./iam.users.definitions"), exports);
18
- __exportStar(require("./iam.users.service"), exports);
17
+ __exportStar(require("./iam.mfa.definitions"), exports);
18
+ __exportStar(require("./iam.mfa.service"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/mfa/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,oDAAkC"}
@@ -1,25 +1,36 @@
1
1
  import { DomainCreateOptions } from '@node-c/core';
2
+ import { IAMAuthenticationType, IAMAuthenticationVerifyExternalAccessTokenResult } from '../authentication';
3
+ export interface BaseTokenEntityFields {
4
+ externalToken?: string;
5
+ externalTokenAuthService?: IAMAuthenticationType;
6
+ }
2
7
  export type DecodedTokenContent<TokenEntityFields> = {
3
8
  exp?: number;
4
9
  iat: number;
5
- data?: TokenEntityFields;
10
+ data?: TokenEntityFields & BaseTokenEntityFields;
6
11
  };
7
12
  export type TokenEntity<TokenEntityFields extends object> = {
8
13
  token: string;
9
14
  type: TokenType;
10
- } & TokenEntityFields;
15
+ } & TokenEntityFields & BaseTokenEntityFields;
11
16
  export type TokenManagerCreateData<TokenEntityFields extends object> = Partial<Omit<TokenEntity<TokenEntityFields>, 'token'>>;
12
17
  export type TokenManagerCreateOptions = {
13
18
  expiresInMinutes?: number;
14
19
  identifierDataField?: string;
15
20
  persist?: boolean;
16
- purgeOldFromPersistance?: boolean;
21
+ purgeOldFromData?: boolean;
22
+ tokenContentOnlyFields?: string[];
17
23
  ttl?: number;
18
24
  } & DomainCreateOptions;
19
25
  export declare enum TokenType {
20
26
  Access = "access",
21
27
  Refresh = "refresh"
22
28
  }
29
+ export interface TokenManagerVerifyResult<TokenEntityFields> {
30
+ content?: DecodedTokenContent<TokenEntityFields>;
31
+ externalTokenData?: IAMAuthenticationVerifyExternalAccessTokenResult;
32
+ error?: unknown;
33
+ }
23
34
  export interface VerifyAccessTokenOptions {
24
35
  deleteFromStoreIfExpired?: boolean;
25
36
  identifierDataField?: string;