@node-c/domain-iam 1.0.0-alpha61 → 1.0.0-alpha63
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/services/authenticationLocal/iam.authenticationLocal.service.d.ts +3 -3
- package/dist/services/authenticationLocal/iam.authenticationLocal.service.js +5 -5
- package/dist/services/authenticationLocal/iam.authenticationLocal.service.js.map +1 -1
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.d.ts +14 -0
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.js +3 -0
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.js.map +1 -0
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.d.ts +12 -0
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js +47 -0
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js.map +1 -0
- package/dist/services/authenticationOAuth2/index.d.ts +2 -0
- package/dist/services/authenticationOAuth2/index.js +19 -0
- package/dist/services/authenticationOAuth2/index.js.map +1 -0
- package/dist/services/authorization/iam.authorization.definitions.d.ts +12 -0
- package/dist/services/authorization/iam.authorization.service.d.ts +21 -6
- package/dist/services/authorization/iam.authorization.service.js +77 -6
- package/dist/services/authorization/iam.authorization.service.js.map +1 -1
- package/dist/services/tokenManager/iam.tokenManager.definitions.d.ts +1 -1
- package/dist/services/tokenManager/iam.tokenManager.service.d.ts +4 -4
- package/dist/services/tokenManager/iam.tokenManager.service.js +12 -12
- package/dist/services/tokenManager/iam.tokenManager.service.js.map +1 -1
- package/dist/services/users/iam.users.service.d.ts +6 -6
- package/dist/services/users/iam.users.service.js +7 -7
- package/dist/services/users/iam.users.service.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ConfigProviderService,
|
|
1
|
+
import { ConfigProviderService, DataEntityService } from '@node-c/core';
|
|
2
2
|
import { LocalAuthenticateUserAuthData, LocalAuthenticateUserResult, LocalAuthenticateUserUserData, LocalAuthenticationUserMFAEntity } from './iam.authenticationLocal.definitions';
|
|
3
3
|
import { IAMAuthenticationService } from '../authentication';
|
|
4
4
|
export declare class IAMAuthenticationLocalService<AuthenticationUserFields extends object, UserMFAEntityFields extends object | undefined = undefined> extends IAMAuthenticationService<AuthenticationUserFields> {
|
|
5
5
|
protected configProvider: ConfigProviderService;
|
|
6
6
|
protected moduleName: string;
|
|
7
|
-
protected
|
|
8
|
-
constructor(configProvider: ConfigProviderService, moduleName: string,
|
|
7
|
+
protected dataUsersMFAService?: DataEntityService<LocalAuthenticationUserMFAEntity<UserMFAEntityFields>> | undefined;
|
|
8
|
+
constructor(configProvider: ConfigProviderService, moduleName: string, dataUsersMFAService?: DataEntityService<LocalAuthenticationUserMFAEntity<UserMFAEntityFields>> | undefined);
|
|
9
9
|
authenticateUser(userData: LocalAuthenticateUserUserData<AuthenticationUserFields>, authData: LocalAuthenticateUserAuthData): Promise<LocalAuthenticateUserResult>;
|
|
10
10
|
}
|
|
@@ -17,15 +17,15 @@ const crypto_1 = __importDefault(require("crypto"));
|
|
|
17
17
|
const core_1 = require("@node-c/core");
|
|
18
18
|
const authentication_1 = require("../authentication");
|
|
19
19
|
class IAMAuthenticationLocalService extends authentication_1.IAMAuthenticationService {
|
|
20
|
-
constructor(configProvider, moduleName,
|
|
20
|
+
constructor(configProvider, moduleName, dataUsersMFAService) {
|
|
21
21
|
super(configProvider, moduleName);
|
|
22
22
|
this.configProvider = configProvider;
|
|
23
23
|
this.moduleName = moduleName;
|
|
24
|
-
this.
|
|
24
|
+
this.dataUsersMFAService = dataUsersMFAService;
|
|
25
25
|
}
|
|
26
26
|
authenticateUser(userData, authData) {
|
|
27
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
const { configProvider, moduleName,
|
|
28
|
+
const { configProvider, moduleName, dataUsersMFAService } = this;
|
|
29
29
|
const { defaultUserIdentifierField, userPasswordHMACAlgorithm, userPasswordSecret } = configProvider.config.domain[moduleName];
|
|
30
30
|
const { mfaEnabled, password: userPassword } = userData;
|
|
31
31
|
const { mfaCode, mfaType, password: authPassword } = authData;
|
|
@@ -51,10 +51,10 @@ class IAMAuthenticationLocalService extends authentication_1.IAMAuthenticationSe
|
|
|
51
51
|
throw new core_1.ApplicationError('Invalid user identifier or password.');
|
|
52
52
|
}
|
|
53
53
|
if (mfaEnabled) {
|
|
54
|
-
if (!mfaCode || mfaType !== authentication_1.UserMFAKnownType.Local || !
|
|
54
|
+
if (!mfaCode || mfaType !== authentication_1.UserMFAKnownType.Local || !dataUsersMFAService) {
|
|
55
55
|
throw new core_1.ApplicationError('Invalid MFA code.');
|
|
56
56
|
}
|
|
57
|
-
const storedCodeData = yield
|
|
57
|
+
const storedCodeData = yield dataUsersMFAService.findOne({
|
|
58
58
|
filters: { [userMFAIdentifierField]: userIdentifierValue }
|
|
59
59
|
});
|
|
60
60
|
if (!(storedCodeData === null || storedCodeData === void 0 ? void 0 : storedCodeData.code) || mfaCode !== (storedCodeData === null || storedCodeData === void 0 ? void 0 : storedCodeData.code)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iam.authenticationLocal.service.js","sourceRoot":"","sources":["../../../src/services/authenticationLocal/iam.authenticationLocal.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAA4B;AAE5B,
|
|
1
|
+
{"version":3,"file":"iam.authenticationLocal.service.js","sourceRoot":"","sources":["../../../src/services/authenticationLocal/iam.authenticationLocal.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAA4B;AAE5B,uCAA8G;AAS9G,sDAA+E;AAE/E,MAAa,6BAGX,SAAQ,yCAAkD;IAC1D,YACY,cAAqC,EACrC,UAAkB,EAElB,mBAA8F;QAExG,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QALxB,mBAAc,GAAd,cAAc,CAAuB;QACrC,eAAU,GAAV,UAAU,CAAQ;QAElB,wBAAmB,GAAnB,mBAAmB,CAA2E;IAG1G,CAAC;IAEK,gBAAgB,CACpB,QAAiE,EACjE,QAAuC;;YAEvC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;YACjE,MAAM,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAChH,UAAU,CACW,CAAC;YACxB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;YACxD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;YAC9D,MAAM,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,IAAI,0BAA0B,CAAC;YACvF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,mBAAqD,CAAC,CAAC;YAC5F,MAAM,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,IAAI,mBAAmB,CAAC;YACtF,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,yBAAyB,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvE,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,GAAG,gBAAM;qBAC5B,UAAU,CAAC,yBAAyB,EAAE,kBAAkB,CAAC;qBACzD,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;qBACzB,MAAM,CAAC,KAAK,CAAC;qBACb,QAAQ,EAAE,CAAC;gBACd,IAAI,gBAAgB,KAAK,YAAY,EAAE,CAAC;oBACtC,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CACV,mEAAmE,mBAAmB,qBAAqB,CAC5G,CAAC;gBACF,MAAM,IAAI,uBAAgB,CAAC,sCAAsC,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,iCAAgB,CAAC,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3E,MAAM,IAAI,uBAAgB,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;gBACD,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC;oBACvD,OAAO,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,mBAAmB,EAAE;iBAC3D,CAAC,CAAC;gBACH,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAA,IAAI,OAAO,MAAK,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAA,EAAE,CAAC;oBAC9D,OAAO,CAAC,IAAI,CACV,kEAAkE,mBAAmB,+BAA+B,CACrH,CAAC;oBACF,MAAM,IAAI,uBAAgB,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;KAAA;CACF;AA9DD,sEA8DC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AuthenticateUserAuthData, AuthenticateUserResult, AuthenticateUserUserData } from '../authentication';
|
|
2
|
+
export type OAuth2AuthenticateUserUserData<UserFields extends object> = AuthenticateUserUserData<UserFields>;
|
|
3
|
+
export interface OAuth2AuthenticateUserAuthData extends AuthenticateUserAuthData {
|
|
4
|
+
authorizationCode: string;
|
|
5
|
+
challengeCode: string;
|
|
6
|
+
challengeVerifier: string;
|
|
7
|
+
}
|
|
8
|
+
export interface OAuth2AuthenticateUserResult extends AuthenticateUserResult {
|
|
9
|
+
accessCode: string;
|
|
10
|
+
}
|
|
11
|
+
export interface OAuth2GenerateAuthorizationURL {
|
|
12
|
+
authorizationCodeRequestURL: string;
|
|
13
|
+
codeChallenge: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iam.authenticationOAuth2.definitions.js","sourceRoot":"","sources":["../../../src/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ConfigProviderService } from '@node-c/core';
|
|
2
|
+
import { OAuth2GenerateAuthorizationURL } from './iam.authenticationOAuth2.definitions';
|
|
3
|
+
import { IAMAuthenticationService } from '../authentication';
|
|
4
|
+
export declare class IAMAuthenticationOAuth2Service<AuthenticationUserFields extends object> extends IAMAuthenticationService<AuthenticationUserFields> {
|
|
5
|
+
protected configProvider: ConfigProviderService;
|
|
6
|
+
protected moduleName: string;
|
|
7
|
+
constructor(configProvider: ConfigProviderService, moduleName: string);
|
|
8
|
+
protected base64urlEncode(buffer: ArrayBuffer): string;
|
|
9
|
+
generateAuthorizationURL(): Promise<OAuth2GenerateAuthorizationURL>;
|
|
10
|
+
protected generateChallenge(codeVerifier: string): Promise<string>;
|
|
11
|
+
protected generateVerifier(length: number): string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.IAMAuthenticationOAuth2Service = void 0;
|
|
16
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
17
|
+
const authentication_1 = require("../authentication");
|
|
18
|
+
class IAMAuthenticationOAuth2Service extends authentication_1.IAMAuthenticationService {
|
|
19
|
+
constructor(configProvider, moduleName) {
|
|
20
|
+
super(configProvider, moduleName);
|
|
21
|
+
this.configProvider = configProvider;
|
|
22
|
+
this.moduleName = moduleName;
|
|
23
|
+
}
|
|
24
|
+
base64urlEncode(buffer) {
|
|
25
|
+
return Buffer.from(buffer).toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
|
|
26
|
+
}
|
|
27
|
+
generateAuthorizationURL() {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const verifier = this.generateVerifier(128);
|
|
30
|
+
const challenge = yield this.generateChallenge(verifier);
|
|
31
|
+
return { authorizationCodeRequestURL: '', codeChallenge: challenge };
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
generateChallenge(codeVerifier) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const buffer = yield crypto_1.default.subtle.digest('SHA-256', new TextEncoder().encode(codeVerifier));
|
|
37
|
+
return this.base64urlEncode(buffer);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
generateVerifier(length) {
|
|
41
|
+
const octetSize = Math.ceil((length * 3) / 4);
|
|
42
|
+
const octets = crypto_1.default.getRandomValues(new Uint8Array(octetSize));
|
|
43
|
+
return this.base64urlEncode(octets.buffer).slice(0, length);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.IAMAuthenticationOAuth2Service = IAMAuthenticationOAuth2Service;
|
|
47
|
+
//# sourceMappingURL=iam.authenticationOAuth2.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iam.authenticationOAuth2.service.js","sourceRoot":"","sources":["../../../src/services/authenticationOAuth2/iam.authenticationOAuth2.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAA4B;AAY5B,sDAA6D;AAe7D,MAAa,8BAEX,SAAQ,yCAAkD;IAC1D,YACY,cAAqC,EACrC,UAAkB;QAG5B,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAJxB,mBAAc,GAAd,cAAc,CAAuB;QACrC,eAAU,GAAV,UAAU,CAAQ;IAI9B,CAAC;IA0CS,eAAe,CAAC,MAAmB;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1G,CAAC;IAUK,wBAAwB;;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACzD,OAAO,EAAE,2BAA2B,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;QACvE,CAAC;KAAA;IAEe,iBAAiB,CAAC,YAAoB;;YACpD,MAAM,MAAM,GAAG,MAAM,gBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC7F,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;KAAA;IAES,gBAAgB,CAAC,MAAc;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,gBAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;CACF;AA/ED,wEA+EC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./iam.authenticationOAuth2.definitions"), exports);
|
|
18
|
+
__exportStar(require("./iam.authenticationOAuth2.service"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/authenticationOAuth2/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,qEAAmD"}
|
|
@@ -37,3 +37,15 @@ export interface AuthorizationUser<AuthorizationPointId> {
|
|
|
37
37
|
[authorizationPointId: string | number]: AuthorizationPoint<AuthorizationPointId>;
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
+
export interface AuthorizeApiKeyData {
|
|
41
|
+
apiKey: string;
|
|
42
|
+
signature?: string;
|
|
43
|
+
signatureContent?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface AuthorizeApiKeyOptions {
|
|
46
|
+
config: {
|
|
47
|
+
apiKey?: string;
|
|
48
|
+
apiSecret?: string;
|
|
49
|
+
apiSecretAlgorithm?: string;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
|
-
import { DomainEntityService, DomainEntityServiceDefaultData, DomainFindOptions, GenericObject
|
|
2
|
-
import { AuthorizationData, AuthorizationUser, AuthorizationPoint as BaseAuthorizationPoint } from './iam.authorization.definitions';
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { DataEntityService, DomainEntityService, DomainEntityServiceDefaultData, DomainFindOptions, GenericObject } from '@node-c/core';
|
|
2
|
+
import { AuthorizationData, AuthorizationUser, AuthorizeApiKeyData, AuthorizeApiKeyOptions, AuthorizationPoint as BaseAuthorizationPoint } from './iam.authorization.definitions';
|
|
3
|
+
import { DecodedTokenContent, IAMTokenManagerService } from '../tokenManager';
|
|
4
|
+
export declare class IAMAuthorizationService<AuthorizationPoint extends BaseAuthorizationPoint<unknown>, Data extends DomainEntityServiceDefaultData<Partial<AuthorizationPoint>> = DomainEntityServiceDefaultData<Partial<AuthorizationPoint>>, TokenManager extends IAMTokenManagerService<object> = IAMTokenManagerService<object>> extends DomainEntityService<AuthorizationPoint, DataEntityService<AuthorizationPoint>, Data, Record<string, DataEntityService<Partial<AuthorizationPoint>>> | undefined> {
|
|
5
|
+
protected dataAuthorizationPointsService: DataEntityService<AuthorizationPoint>;
|
|
5
6
|
protected defaultMethods: string[];
|
|
6
|
-
protected
|
|
7
|
-
|
|
7
|
+
protected additionalDataEntityServices?: GenericObject<DataEntityService<Partial<AuthorizationPoint>>> | undefined;
|
|
8
|
+
protected tokenManager?: TokenManager | undefined;
|
|
9
|
+
constructor(dataAuthorizationPointsService: DataEntityService<AuthorizationPoint>, defaultMethods?: string[], additionalDataEntityServices?: GenericObject<DataEntityService<Partial<AuthorizationPoint>>> | undefined, tokenManager?: TokenManager | undefined);
|
|
10
|
+
authorizeApiKey(data: AuthorizeApiKeyData, options: AuthorizeApiKeyOptions): Promise<{
|
|
11
|
+
valid: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
authorizeBearer<UserTokenEnityFields = unknown>(data: {
|
|
14
|
+
authToken?: string;
|
|
15
|
+
refreshToken?: string;
|
|
16
|
+
}, options?: {
|
|
17
|
+
identifierDataField?: string;
|
|
18
|
+
}): Promise<{
|
|
19
|
+
newAuthToken?: string;
|
|
20
|
+
tokenContent?: DecodedTokenContent<UserTokenEnityFields>;
|
|
21
|
+
valid: boolean;
|
|
22
|
+
}>;
|
|
8
23
|
static checkAccess(authorizationPoints: {
|
|
9
24
|
[id: number]: BaseAuthorizationPoint<unknown>;
|
|
10
25
|
}, inputData: GenericObject, user: AuthorizationUser<unknown>): {
|
|
@@ -13,14 +13,85 @@ 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
18
|
const lodash_1 = __importDefault(require("lodash"));
|
|
18
19
|
class IAMAuthorizationService extends core_1.DomainEntityService {
|
|
19
|
-
constructor(
|
|
20
|
-
super(
|
|
21
|
-
this.
|
|
20
|
+
constructor(dataAuthorizationPointsService, defaultMethods = [core_1.DomainMethod.Find], additionalDataEntityServices, tokenManager) {
|
|
21
|
+
super(dataAuthorizationPointsService, defaultMethods, additionalDataEntityServices);
|
|
22
|
+
this.dataAuthorizationPointsService = dataAuthorizationPointsService;
|
|
22
23
|
this.defaultMethods = defaultMethods;
|
|
23
|
-
this.
|
|
24
|
+
this.additionalDataEntityServices = additionalDataEntityServices;
|
|
25
|
+
this.tokenManager = tokenManager;
|
|
26
|
+
}
|
|
27
|
+
authorizeApiKey(data, options) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const { apiKey, signature, signatureContent } = data;
|
|
30
|
+
const { config: { apiKey: expectedApiKey, apiSecret, apiSecretAlgorithm } } = options;
|
|
31
|
+
if (!apiKey) {
|
|
32
|
+
console.error('Missing api key.');
|
|
33
|
+
return { valid: false };
|
|
34
|
+
}
|
|
35
|
+
if (apiKey !== expectedApiKey) {
|
|
36
|
+
console.error('Invalid api key.');
|
|
37
|
+
return { valid: false };
|
|
38
|
+
}
|
|
39
|
+
if (apiSecret && apiSecretAlgorithm) {
|
|
40
|
+
if (!signature) {
|
|
41
|
+
console.error('Missing authorization signature.');
|
|
42
|
+
return { valid: false };
|
|
43
|
+
}
|
|
44
|
+
if (!signatureContent) {
|
|
45
|
+
console.error('Missing authorization signature content.');
|
|
46
|
+
return { valid: false };
|
|
47
|
+
}
|
|
48
|
+
const calcualtedSignature = crypto_1.default
|
|
49
|
+
.createHmac(apiSecretAlgorithm, apiSecret)
|
|
50
|
+
.update(signatureContent)
|
|
51
|
+
.digest('hex');
|
|
52
|
+
if (calcualtedSignature !== signature) {
|
|
53
|
+
console.error(`Invalid signature provided. Expected: ${calcualtedSignature}. Provided: ${signature}`);
|
|
54
|
+
return { valid: false };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return { valid: true };
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
authorizeBearer(data, options) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
const { tokenManager } = this;
|
|
63
|
+
const { authToken, refreshToken } = data;
|
|
64
|
+
const { identifierDataField } = options || {};
|
|
65
|
+
if (!tokenManager) {
|
|
66
|
+
console.error('Token manager not configured.');
|
|
67
|
+
return { valid: false };
|
|
68
|
+
}
|
|
69
|
+
if (!authToken) {
|
|
70
|
+
console.error('Missing auth token.');
|
|
71
|
+
return { valid: false };
|
|
72
|
+
}
|
|
73
|
+
let newAuthToken;
|
|
74
|
+
let tokenContent;
|
|
75
|
+
try {
|
|
76
|
+
const tokenRes = yield tokenManager.verifyAccessToken(authToken, {
|
|
77
|
+
deleteFromStoreIfExpired: true,
|
|
78
|
+
identifierDataField,
|
|
79
|
+
persistNewToken: true,
|
|
80
|
+
purgeStoreOnRenew: true,
|
|
81
|
+
refreshToken,
|
|
82
|
+
refreshTokenAccessTokenIdentifierDataField: 'accessToken'
|
|
83
|
+
});
|
|
84
|
+
tokenContent = tokenRes.content;
|
|
85
|
+
if (tokenRes.newToken) {
|
|
86
|
+
newAuthToken = tokenRes.newToken;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
console.error('Failed to parse the access or refresh token:', e);
|
|
91
|
+
return { valid: false };
|
|
92
|
+
}
|
|
93
|
+
return { newAuthToken, tokenContent, valid: true };
|
|
94
|
+
});
|
|
24
95
|
}
|
|
25
96
|
static checkAccess(authorizationPoints, inputData, user) {
|
|
26
97
|
const mutatedInputData = lodash_1.default.cloneDeep(inputData);
|
|
@@ -68,8 +139,8 @@ class IAMAuthorizationService extends core_1.DomainEntityService {
|
|
|
68
139
|
}
|
|
69
140
|
else {
|
|
70
141
|
const allowedValues = IAMAuthorizationService.matchInputValues(innerMutatedInputData, {
|
|
71
|
-
[
|
|
72
|
-
});
|
|
142
|
+
[inputDataFieldName]: userFieldValue
|
|
143
|
+
})[inputDataFieldName];
|
|
73
144
|
const inputValueIsArray = inputFieldValue instanceof Array;
|
|
74
145
|
if (!allowedValues.length) {
|
|
75
146
|
hasAccess = 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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"}
|
|
@@ -13,7 +13,7 @@ export type TokenManagerCreateOptions = {
|
|
|
13
13
|
expiresInMinutes?: number;
|
|
14
14
|
identifierDataField?: string;
|
|
15
15
|
persist?: boolean;
|
|
16
|
-
|
|
16
|
+
purgeOldFromData?: boolean;
|
|
17
17
|
ttl?: number;
|
|
18
18
|
} & DomainCreateOptions;
|
|
19
19
|
export declare enum TokenType {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ConfigProviderService, DomainCreateResult, DomainEntityService
|
|
1
|
+
import { ConfigProviderService, DataEntityService, DomainCreateResult, DomainEntityService } from '@node-c/core';
|
|
2
2
|
import { DecodedTokenContent, TokenEntity, TokenManagerCreateData, TokenManagerCreateOptions, VerifyAccessTokenOptions, VerifyAccessTokenReturnData } from './iam.tokenManager.definitions';
|
|
3
|
-
export declare class IAMTokenManagerService<TokenEntityFields extends object> extends DomainEntityService<TokenEntity<TokenEntityFields>,
|
|
3
|
+
export declare class IAMTokenManagerService<TokenEntityFields extends object> extends DomainEntityService<TokenEntity<TokenEntityFields>, DataEntityService<TokenEntity<TokenEntityFields>>> {
|
|
4
4
|
protected configProvider: ConfigProviderService;
|
|
5
5
|
protected moduleName: string;
|
|
6
|
-
protected
|
|
7
|
-
constructor(configProvider: ConfigProviderService, moduleName: string,
|
|
6
|
+
protected dataEntityService: DataEntityService<TokenEntity<TokenEntityFields>>;
|
|
7
|
+
constructor(configProvider: ConfigProviderService, moduleName: string, dataEntityService: DataEntityService<TokenEntity<TokenEntityFields>>);
|
|
8
8
|
create(data: TokenManagerCreateData<TokenEntityFields>, options: TokenManagerCreateOptions): Promise<DomainCreateResult<TokenEntity<TokenEntityFields>>>;
|
|
9
9
|
verifyAccessToken(token: string, options?: VerifyAccessTokenOptions): Promise<VerifyAccessTokenReturnData<TokenEntityFields>>;
|
|
10
10
|
protected verify(token: string, secret: string): Promise<{
|
|
@@ -62,21 +62,21 @@ const jwt = __importStar(require("jsonwebtoken"));
|
|
|
62
62
|
const lodash_1 = __importDefault(require("lodash"));
|
|
63
63
|
const iam_tokenManager_definitions_1 = require("./iam.tokenManager.definitions");
|
|
64
64
|
class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
65
|
-
constructor(configProvider, moduleName,
|
|
66
|
-
super(
|
|
65
|
+
constructor(configProvider, moduleName, dataEntityService) {
|
|
66
|
+
super(dataEntityService, ['create', 'delete']);
|
|
67
67
|
this.configProvider = configProvider;
|
|
68
68
|
this.moduleName = moduleName;
|
|
69
|
-
this.
|
|
69
|
+
this.dataEntityService = dataEntityService;
|
|
70
70
|
}
|
|
71
71
|
create(data, options) {
|
|
72
72
|
const _super = Object.create(null, {
|
|
73
73
|
create: { get: () => super.create }
|
|
74
74
|
});
|
|
75
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const { configProvider, moduleName,
|
|
76
|
+
const { configProvider, moduleName, dataEntityService } = this;
|
|
77
77
|
const moduleConfig = configProvider.config.domain[moduleName];
|
|
78
78
|
const { type } = data, tokenData = __rest(data, ["type"]);
|
|
79
|
-
const { expiresInMinutes, identifierDataField, persist,
|
|
79
|
+
const { expiresInMinutes, identifierDataField, persist, purgeOldFromData } = options;
|
|
80
80
|
const signOptions = {};
|
|
81
81
|
let secret;
|
|
82
82
|
if (type === iam_tokenManager_definitions_1.TokenType.Access) {
|
|
@@ -111,11 +111,11 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
|
111
111
|
});
|
|
112
112
|
});
|
|
113
113
|
const objectToSave = Object.assign(Object.assign({}, tokenData), { token, type });
|
|
114
|
-
if (persist &&
|
|
115
|
-
if (
|
|
114
|
+
if (persist && dataEntityService) {
|
|
115
|
+
if (purgeOldFromData && identifierDataField) {
|
|
116
116
|
const identifierValue = lodash_1.default.get(data, identifierDataField);
|
|
117
117
|
if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
|
|
118
|
-
yield
|
|
118
|
+
yield dataEntityService.delete({
|
|
119
119
|
filters: { [identifierDataField]: identifierValue, type }
|
|
120
120
|
}, { requirePrimaryKeys: false });
|
|
121
121
|
}
|
|
@@ -127,7 +127,7 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
|
127
127
|
}
|
|
128
128
|
verifyAccessToken(token, options) {
|
|
129
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
const { configProvider, moduleName,
|
|
130
|
+
const { configProvider, moduleName, dataEntityService } = this;
|
|
131
131
|
const moduleConfig = configProvider.config.domain[moduleName];
|
|
132
132
|
const { deleteFromStoreIfExpired, identifierDataField, newTokenExpiresInMinutes, persistNewToken, purgeStoreOnRenew, refreshToken, refreshTokenAccessTokenIdentifierDataField } = options || {};
|
|
133
133
|
const { content, error } = yield this.verify(token, moduleConfig.jwtAccessSecret);
|
|
@@ -136,7 +136,7 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
|
136
136
|
if (error) {
|
|
137
137
|
let errorToThrow;
|
|
138
138
|
let throwError = true;
|
|
139
|
-
if (error === 'Token expired' && identifierDataField && (content === null || content === void 0 ? void 0 : content.data) &&
|
|
139
|
+
if (error === 'Token expired' && identifierDataField && (content === null || content === void 0 ? void 0 : content.data) && dataEntityService) {
|
|
140
140
|
if (refreshToken && refreshTokenAccessTokenIdentifierDataField) {
|
|
141
141
|
const { content: refreshTokenContent, error: refreshTokenError } = yield this.verify(refreshToken, moduleConfig.jwtRefreshSecret);
|
|
142
142
|
if (refreshTokenError) {
|
|
@@ -160,7 +160,7 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
|
160
160
|
if (deleteFromStoreIfExpired) {
|
|
161
161
|
const identifierValue = lodash_1.default.get(content.data, identifierDataField);
|
|
162
162
|
if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
|
|
163
|
-
yield
|
|
163
|
+
yield dataEntityService.delete({
|
|
164
164
|
filters: { [identifierDataField]: identifierValue, type: iam_tokenManager_definitions_1.TokenType.Access }
|
|
165
165
|
}, { requirePrimaryKeys: false });
|
|
166
166
|
}
|
|
@@ -181,7 +181,7 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
|
181
181
|
expiresInMinutes: newTokenExpiresInMinutes,
|
|
182
182
|
identifierDataField,
|
|
183
183
|
persist: persistNewToken,
|
|
184
|
-
|
|
184
|
+
purgeOldFromData: purgeStoreOnRenew
|
|
185
185
|
});
|
|
186
186
|
newToken = result.token;
|
|
187
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iam.tokenManager.service.js","sourceRoot":"","sources":["../../../src/services/tokenManager/iam.tokenManager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCASsB;AAEtB,kDAAoC;AACpC,oDAAwB;AAExB,iFAQwC;AAGxC,MAAa,sBAAyD,SAAQ,0BAG7E;IACC,YAEY,cAAqC,EAErC,UAAkB,EAElB,
|
|
1
|
+
{"version":3,"file":"iam.tokenManager.service.js","sourceRoot":"","sources":["../../../src/services/tokenManager/iam.tokenManager.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { ConfigProviderService,
|
|
1
|
+
import { ConfigProviderService, DataEntityService, DataFindOneOptions, DomainEntityService, DomainEntityServiceDefaultData } from '@node-c/core';
|
|
2
2
|
import { CreateAccessTokenOptions, CreateAccessTokenReturnData, GetUserWithPermissionsDataOptions, UserTokenEnityFields, UserWithPermissionsData } from './iam.users.definitions';
|
|
3
3
|
import { IAMAuthenticationService, UserAuthType } from '../authentication';
|
|
4
4
|
import { IAMTokenManagerService } from '../tokenManager';
|
|
5
|
-
export declare class IAMUsersService<User extends object, Data extends DomainEntityServiceDefaultData<Partial<User>> = DomainEntityServiceDefaultData<Partial<User>>> extends DomainEntityService<User,
|
|
5
|
+
export declare class IAMUsersService<User extends object, Data extends DomainEntityServiceDefaultData<Partial<User>> = DomainEntityServiceDefaultData<Partial<User>>> extends DomainEntityService<User, DataEntityService<User>, Data, Record<string, DataEntityService<Partial<User>>> | undefined> {
|
|
6
6
|
protected configProvider: ConfigProviderService;
|
|
7
7
|
protected moduleName: string;
|
|
8
|
-
protected
|
|
8
|
+
protected dataUsersService: DataEntityService<User>;
|
|
9
9
|
protected tokenManager: IAMTokenManagerService<UserTokenEnityFields>;
|
|
10
10
|
protected userAuthServices: Record<UserAuthType, IAMAuthenticationService<User>>;
|
|
11
11
|
protected defaultMethods: string[];
|
|
12
|
-
protected
|
|
13
|
-
constructor(configProvider: ConfigProviderService, moduleName: string,
|
|
12
|
+
protected additionalDataEntityServices?: Record<string, DataEntityService<Partial<User>>> | undefined;
|
|
13
|
+
constructor(configProvider: ConfigProviderService, moduleName: string, dataUsersService: DataEntityService<User>, tokenManager: IAMTokenManagerService<UserTokenEnityFields>, userAuthServices: Record<UserAuthType, IAMAuthenticationService<User>>, defaultMethods?: string[], additionalDataEntityServices?: Record<string, DataEntityService<Partial<User>>> | undefined);
|
|
14
14
|
createAccessToken(options: CreateAccessTokenOptions): Promise<CreateAccessTokenReturnData<User>>;
|
|
15
|
-
getUserWithPermissionsData(_options:
|
|
15
|
+
getUserWithPermissionsData(_options: DataFindOneOptions, _privateOptions?: GetUserWithPermissionsDataOptions): Promise<UserWithPermissionsData<User, unknown> | null>;
|
|
16
16
|
}
|
|
@@ -25,22 +25,22 @@ const core_1 = require("@node-c/core");
|
|
|
25
25
|
const iam_users_definitions_1 = require("./iam.users.definitions");
|
|
26
26
|
const tokenManager_1 = require("../tokenManager");
|
|
27
27
|
class IAMUsersService extends core_1.DomainEntityService {
|
|
28
|
-
constructor(configProvider, moduleName,
|
|
28
|
+
constructor(configProvider, moduleName, dataUsersService, tokenManager, userAuthServices, defaultMethods = [
|
|
29
29
|
core_1.DomainMethod.BulkCreate,
|
|
30
30
|
core_1.DomainMethod.Create,
|
|
31
31
|
core_1.DomainMethod.Delete,
|
|
32
32
|
core_1.DomainMethod.Find,
|
|
33
33
|
core_1.DomainMethod.FindOne,
|
|
34
34
|
core_1.DomainMethod.Update
|
|
35
|
-
],
|
|
36
|
-
super(
|
|
35
|
+
], additionalDataEntityServices) {
|
|
36
|
+
super(dataUsersService, defaultMethods, additionalDataEntityServices);
|
|
37
37
|
this.configProvider = configProvider;
|
|
38
38
|
this.moduleName = moduleName;
|
|
39
|
-
this.
|
|
39
|
+
this.dataUsersService = dataUsersService;
|
|
40
40
|
this.tokenManager = tokenManager;
|
|
41
41
|
this.userAuthServices = userAuthServices;
|
|
42
42
|
this.defaultMethods = defaultMethods;
|
|
43
|
-
this.
|
|
43
|
+
this.additionalDataEntityServices = additionalDataEntityServices;
|
|
44
44
|
}
|
|
45
45
|
createAccessToken(options) {
|
|
46
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -71,13 +71,13 @@ class IAMUsersService extends core_1.DomainEntityService {
|
|
|
71
71
|
expiresInMinutes: rememberUser ? undefined : refreshTokenExpiryTimeInMinutes,
|
|
72
72
|
identifierDataField: iam_users_definitions_1.UserTokenUserIdentifier.FieldName,
|
|
73
73
|
persist: true,
|
|
74
|
-
|
|
74
|
+
purgeOldFromData: true
|
|
75
75
|
});
|
|
76
76
|
const { result: { token: accessToken } } = yield this.tokenManager.create({ refreshToken, type: tokenManager_1.TokenType.Access, [iam_users_definitions_1.UserTokenUserIdentifier.FieldName]: userIdentifierValue }, {
|
|
77
77
|
expiresInMinutes: accessTokenExpiryTimeInMinutes,
|
|
78
78
|
identifierDataField: iam_users_definitions_1.UserTokenUserIdentifier.FieldName,
|
|
79
79
|
persist: true,
|
|
80
|
-
|
|
80
|
+
purgeOldFromData: true
|
|
81
81
|
});
|
|
82
82
|
console.info(`[Domain.${moduleName}.Users]: Login attempt successful for ${mainFilterField} ${mainFilterValue}.`);
|
|
83
83
|
return { accessToken, refreshToken, user };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iam.users.service.js","sourceRoot":"","sources":["../../../src/services/users/iam.users.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,uCASsB;AAEtB,mEAOiC;AAGjC,kDAAoE;AAMpE,MAAa,eAGX,SAAQ,0BAKT;IACC,YAEY,cAAqC,EAErC,UAAkB,EAElB,
|
|
1
|
+
{"version":3,"file":"iam.users.service.js","sourceRoot":"","sources":["../../../src/services/users/iam.users.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-c/domain-iam",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-alpha63",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -8,13 +8,14 @@
|
|
|
8
8
|
"build:clean": "rm -rf dist/* && rm -f *.tsbuildinfo && npm run build",
|
|
9
9
|
"check-types": "tsc -p tsconfig.build.json --noEmit",
|
|
10
10
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
11
|
+
"lint": "eslint src",
|
|
11
12
|
"publish-package": "npm run build:clean && npm publish --access public",
|
|
12
13
|
"test": "vitest --config src/vitest.config.ts",
|
|
13
14
|
"test:coverage": "vitest --config src/vitest.config.ts --coverage"
|
|
14
15
|
},
|
|
15
16
|
"dependencies": {
|
|
16
17
|
"@nestjs/common": "^10.4.12",
|
|
17
|
-
"@node-c/core": "^1.0.0-
|
|
18
|
+
"@node-c/core": "^1.0.0-alpha63",
|
|
18
19
|
"jsonwebtoken": "^9.0.2",
|
|
19
20
|
"lodash": "^4.17.21"
|
|
20
21
|
},
|