node-opcua-role-set-server 2.187.3 → 2.187.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/bind_role_methods.d.ts.map +1 -1
- package/dist/bind_role_methods.js +13 -3
- package/dist/bind_role_methods.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/install_role_based_security.d.ts.map +1 -1
- package/dist/install_role_based_security.js +15 -2
- package/dist/install_role_based_security.js.map +1 -1
- package/dist/install_role_set.d.ts +3 -1
- package/dist/install_role_set.d.ts.map +1 -1
- package/dist/install_role_set.js +1 -1
- package/dist/install_role_set.js.map +1 -1
- package/dist/role_set_resolver.d.ts +12 -1
- package/dist/role_set_resolver.d.ts.map +1 -1
- package/dist/role_set_resolver.js +7 -11
- package/dist/role_set_resolver.js.map +1 -1
- package/package.json +4 -4
- package/source/bind_role_methods.ts +14 -3
- package/source/index.ts +1 -1
- package/source/install_role_based_security.ts +19 -2
- package/source/install_role_set.ts +4 -2
- package/source/role_set_resolver.ts +17 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind_role_methods.d.ts","sourceRoot":"","sources":["../source/bind_role_methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,qBAAqB,EAAoB,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"bind_role_methods.d.ts","sourceRoot":"","sources":["../source/bind_role_methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,qBAAqB,EAAoB,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAiDlD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,aAAa,GAAG,gBAAgB,CAAC;IACrH,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,6FAA6F;IAC7F,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,UAIxD,QAAQ,kBACE,OAAO,EAAE,WAChB,eAAe,KACzB,OAAO,CAAC,uBAAuB,CAAC,CAkDtC;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,sBAAsB,UAI3D,QAAQ,kBACE,OAAO,EAAE,WAChB,eAAe,KACzB,OAAO,CAAC,uBAAuB,CAAC,CA0CtC"}
|
|
@@ -20,9 +20,15 @@ function isImmutableRole(roleId) {
|
|
|
20
20
|
function isPrivilegedRole(roleId) {
|
|
21
21
|
return sameNodeId(roleId, WellKnownRoleIds.SecurityAdmin) || sameNodeId(roleId, WellKnownRoleIds.ConfigureAdmin);
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* True for weak criteria that must not be granted to administrative Roles.
|
|
25
|
+
* TrustedApplication is one: it names no application, so it would give the
|
|
26
|
+
* Role to every Client whose certificate the Server trusts.
|
|
27
|
+
*/
|
|
24
28
|
function isWeakCriteria(criteriaType) {
|
|
25
|
-
return criteriaType === IdentityCriteriaType.Anonymous ||
|
|
29
|
+
return (criteriaType === IdentityCriteriaType.Anonymous ||
|
|
30
|
+
criteriaType === IdentityCriteriaType.AuthenticatedUser ||
|
|
31
|
+
criteriaType === IdentityCriteriaType.TrustedApplication);
|
|
26
32
|
}
|
|
27
33
|
/**
|
|
28
34
|
* Extract the IdentityMappingRuleType from the first input argument.
|
|
@@ -69,9 +75,13 @@ export function makeAddIdentityHandler(options) {
|
|
|
69
75
|
statusCode = StatusCodes.BadRequestNotAllowed;
|
|
70
76
|
}
|
|
71
77
|
else if (isWeakCriteria(rule.criteriaType) && isPrivilegedRole(roleNode.nodeId)) {
|
|
72
|
-
// refuse weak (Anonymous/AuthenticatedUser) rules on administrative Roles (§4.4.5)
|
|
78
|
+
// refuse weak (Anonymous/AuthenticatedUser/TrustedApplication) rules on administrative Roles (§4.4.5)
|
|
73
79
|
statusCode = StatusCodes.BadRequestNotAllowed;
|
|
74
80
|
}
|
|
81
|
+
else if (rule.criteriaType === IdentityCriteriaType.Application && !(rule.criteria ?? "").trim()) {
|
|
82
|
+
// an Application rule names an ApplicationUri (§4.4.3): an empty one would match nothing
|
|
83
|
+
statusCode = StatusCodes.BadInvalidArgument;
|
|
84
|
+
}
|
|
75
85
|
else {
|
|
76
86
|
// duplicate rule is reported as Bad_AlreadyExists
|
|
77
87
|
statusCode = store.addIdentity(roleNode.nodeId, rule) ? StatusCodes.Good : StatusCodes.BadAlreadyExists;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind_role_methods.js","sourceRoot":"","sources":["../source/bind_role_methods.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAA8B,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAmB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEvF;;;;;GAKG;AACH,SAAS,eAAe,CAAC,MAAc;IACnC,OAAO,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACpH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACpC,OAAO,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;AACrH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"bind_role_methods.js","sourceRoot":"","sources":["../source/bind_role_methods.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { type BindUserManagementOptions, makeAddUserHandler, makeChangePasswordH
|
|
|
8
8
|
export { type CreateRoleBasedSecurityOptions, createRoleBasedSecurity, type InstallRoleBasedSecurityOptions, type RoleBasedSecurity, type RoleBasedUser } from "./install_role_based_security.js";
|
|
9
9
|
export { type InstallRoleSetOptions, type InstallRoleSetResult, type IServerForRoleSet, installRoleSet } from "./install_role_set.js";
|
|
10
10
|
export { type InstallUserManagementOptions, type InstallUserManagementResult, type IServerForUserManagement, installUserManagement } from "./install_user_management.js";
|
|
11
|
-
export { RoleSetResolver } from "./role_set_resolver.js";
|
|
11
|
+
export { RoleSetResolver, type RoleSetResolverOptions } from "./role_set_resolver.js";
|
|
12
12
|
export { checkEncryptedChannel, checkSecurityAdminAccess } from "./security_checks.js";
|
|
13
13
|
export { createUserManager, type IManagedUserManager } from "./user_management_user_manager.js";
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EACH,KAAK,6BAA6B,EAClC,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,2BAA2B,EACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACH,KAAK,yBAAyB,EAC9B,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,mBAAmB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,KAAK,+BAA+B,EACpC,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,cAAc,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,qBAAqB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EACH,KAAK,6BAA6B,EAClC,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,2BAA2B,EACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACH,KAAK,yBAAyB,EAC9B,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,mBAAmB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,KAAK,+BAA+B,EACpC,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,cAAc,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,qBAAqB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mCAAmC,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA+B,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAEH,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEH,sBAAsB,EACtB,yBAAyB,EAE5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEH,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EAExB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEH,uBAAuB,EAI1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAIH,cAAc,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIH,qBAAqB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA+B,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAEH,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEH,sBAAsB,EACtB,yBAAyB,EAE5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEH,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EAExB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEH,uBAAuB,EAI1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAIH,cAAc,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIH,qBAAqB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAA+B,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install_role_based_security.d.ts","sourceRoot":"","sources":["../source/install_role_based_security.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACH,YAAY,EACZ,KAAK,cAAc,EACnB,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAE5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAiD,qBAAqB,
|
|
1
|
+
{"version":3,"file":"install_role_based_security.d.ts","sourceRoot":"","sources":["../source/install_role_based_security.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACH,YAAY,EACZ,KAAK,cAAc,EACnB,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAE5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAiD,qBAAqB,EAAyB,MAAM,kBAAkB,CAAC;AAC/H,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAkB,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAEhC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAIhG;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC3C,kDAAkD;IAClD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,wEAAwE;IACxE,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,+BAA+B;IAC5C,uFAAuF;IACvF,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAC9B,0DAA0D;IAC1D,SAAS,EAAE,2BAA2B,CAAC;IACvC,6DAA6D;IAC7D,aAAa,EAAE,4BAA4B,CAAC;IAC5C,yEAAyE;IACzE,WAAW,EAAE,mBAAmB,CAAC;IACjC;;;OAGG;IACH,OAAO,CACH,MAAM,EAAE,iBAAiB,GAAG,wBAAwB,EACpD,OAAO,CAAC,EAAE,+BAA+B,GAC1C,OAAO,CAAC;QACP,OAAO,EAAE,oBAAoB,CAAC;QAC9B,wEAAwE;QACxE,cAAc,CAAC,EAAE,2BAA2B,CAAC;KAChD,CAAC,CAAC;CACN;AAKD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgHlH"}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
*/
|
|
27
27
|
import { make_errorLog } from "node-opcua-debug";
|
|
28
28
|
import { ArchiveStore, InMemoryIdentityMappingStore, InMemoryUserManagementStore, validateUserConfiguration } from "node-opcua-role-set-common";
|
|
29
|
-
import { IdentityCriteriaType, IdentityMappingRuleType, UserConfigurationMask } from "node-opcua-types";
|
|
29
|
+
import { IdentityCriteriaType, IdentityMappingRuleType, UserConfigurationMask, UserNameIdentityToken } from "node-opcua-types";
|
|
30
30
|
import { installRoleSet } from "./install_role_set.js";
|
|
31
31
|
import { installUserManagement } from "./install_user_management.js";
|
|
32
32
|
import { createUserManager } from "./user_management_user_manager.js";
|
|
@@ -103,7 +103,20 @@ export async function createRoleBasedSecurity(options) {
|
|
|
103
103
|
});
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
|
-
|
|
106
|
+
// A user who must change the password gets only Anonymous from the
|
|
107
|
+
// userManager; the resolver reads the same store and must not give
|
|
108
|
+
// the mapped Roles back. Read live: they return once it is changed.
|
|
109
|
+
const mustChangePassword = (token) => token instanceof UserNameIdentityToken &&
|
|
110
|
+
userStore
|
|
111
|
+
.getUsers()
|
|
112
|
+
.some((u) => u.userName === token.userName &&
|
|
113
|
+
(u.userConfiguration & UserConfigurationMask.MustChangePassword) ===
|
|
114
|
+
UserConfigurationMask.MustChangePassword);
|
|
115
|
+
const roleSet = await installRoleSet(server, {
|
|
116
|
+
store: identityStore,
|
|
117
|
+
persistence,
|
|
118
|
+
excludeToken: mustChangePassword
|
|
119
|
+
});
|
|
107
120
|
if (installOptions?.userManagement === false) {
|
|
108
121
|
// Deliberately no UserManagement Object. Credentials still work:
|
|
109
122
|
// the userManager bridge authenticates from userStore either way.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install_role_based_security.js","sourceRoot":"","sources":["../source/install_role_based_security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACH,YAAY,EAEZ,4BAA4B,EAC5B,2BAA2B,EAG3B,yBAAyB,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"install_role_based_security.js","sourceRoot":"","sources":["../source/install_role_based_security.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { IAddressSpace } from "node-opcua-address-space";
|
|
17
17
|
import { ArchiveStore, type IIdentityMappingStore, type IRoleRestrictionStore } from "node-opcua-role-set-common";
|
|
18
|
-
import { RoleSetResolver } from "./role_set_resolver.js";
|
|
18
|
+
import { RoleSetResolver, type RoleSetResolverOptions } from "./role_set_resolver.js";
|
|
19
19
|
export interface InstallRoleSetOptions {
|
|
20
20
|
/**
|
|
21
21
|
* Path to a single consolidated archive file holding the whole RoleSet
|
|
@@ -45,6 +45,8 @@ export interface InstallRoleSetOptions {
|
|
|
45
45
|
* keeping a single source of truth. Persisted mappings (if any) are merged in.
|
|
46
46
|
*/
|
|
47
47
|
store?: IIdentityMappingStore;
|
|
48
|
+
/** See {@link RoleSetResolverOptions.excludeToken}. */
|
|
49
|
+
excludeToken?: RoleSetResolverOptions["excludeToken"];
|
|
48
50
|
}
|
|
49
51
|
export interface InstallRoleSetResult {
|
|
50
52
|
/** The identity mapping store backing the role set. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install_role_set.d.ts","sourceRoot":"","sources":["../source/install_role_set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,aAAa,EAA0D,MAAM,0BAA0B,CAAC;AAItH,OAAO,EACH,YAAY,EAEZ,KAAK,qBAAqB,EAG1B,KAAK,qBAAqB,EAM7B,MAAM,4BAA4B,CAAC;AAoBpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"install_role_set.d.ts","sourceRoot":"","sources":["../source/install_role_set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,aAAa,EAA0D,MAAM,0BAA0B,CAAC;AAItH,OAAO,EACH,YAAY,EAEZ,KAAK,qBAAqB,EAG1B,KAAK,qBAAqB,EAM7B,MAAM,4BAA4B,CAAC;AAoBpC,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AA+BtF,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,uDAAuD;IACvD,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACjC,uDAAuD;IACvD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,oEAAoE;IACpE,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,uDAAuD;IACvD,QAAQ,EAAE,eAAe,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,aAAa,EAAE,KAAK,CAAC;QAAE,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;IAClE,MAAM,EAAE;QACJ,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;KACtC,CAAC;CACL;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAmT9H"}
|
package/dist/install_role_set.js
CHANGED
|
@@ -75,7 +75,7 @@ export async function installRoleSet(server, options) {
|
|
|
75
75
|
if (archive?.restrictions) {
|
|
76
76
|
deserializeRestrictions(restrictionStore, archive.restrictions);
|
|
77
77
|
}
|
|
78
|
-
const resolver = new RoleSetResolver(store, restrictionStore);
|
|
78
|
+
const resolver = new RoleSetResolver(store, restrictionStore, { excludeToken: options?.excludeToken });
|
|
79
79
|
server.roleResolvers ??= [];
|
|
80
80
|
server.roleResolvers.push(resolver);
|
|
81
81
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install_role_set.js","sourceRoot":"","sources":["../source/install_role_set.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install_role_set.js","sourceRoot":"","sources":["../source/install_role_set.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,21 @@ import type { AnyUserIdentityToken, IIdentityMappingStore, IRoleRestrictionStore
|
|
|
15
15
|
* restriction store is provided and a resolution context is available — the
|
|
16
16
|
* Session's application/endpoint comply with the Role's restrictions.
|
|
17
17
|
*/
|
|
18
|
+
export interface RoleSetResolverOptions {
|
|
19
|
+
/**
|
|
20
|
+
* A token this resolver must grant nothing to, whatever the store maps it
|
|
21
|
+
* to. `createRoleBasedSecurity` uses it for a user who must change the
|
|
22
|
+
* password: the server `userManager` then grants only Anonymous, and
|
|
23
|
+
* without this the resolver, reading the same store, would hand the
|
|
24
|
+
* user's mapped Roles back to the Session.
|
|
25
|
+
*/
|
|
26
|
+
excludeToken?: (userIdentityToken: AnyUserIdentityToken) => boolean;
|
|
27
|
+
}
|
|
18
28
|
export declare class RoleSetResolver {
|
|
19
29
|
private readonly store;
|
|
20
30
|
private readonly restrictionStore?;
|
|
21
|
-
|
|
31
|
+
private readonly options;
|
|
32
|
+
constructor(store: IIdentityMappingStore, restrictionStore?: IRoleRestrictionStore | undefined, options?: RoleSetResolverOptions);
|
|
22
33
|
resolveRoles(userIdentityToken: AnyUserIdentityToken, context?: ResolutionContext): NodeId[];
|
|
23
34
|
}
|
|
24
35
|
//# sourceMappingURL=role_set_resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role_set_resolver.d.ts","sourceRoot":"","sources":["../source/role_set_resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACR,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"role_set_resolver.d.ts","sourceRoot":"","sources":["../source/role_set_resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACR,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACnC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,KAAK,OAAO,CAAC;CACvE;AAED,qBAAa,eAAe;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH5B,YACqB,KAAK,EAAE,qBAAqB,EAC5B,gBAAgB,CAAC,EAAE,qBAAqB,YAAA,EACxC,OAAO,GAAE,sBAA2B,EACrD;IAEG,YAAY,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAUlG;CACJ"}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Adapts an {@link IIdentityMappingStore} (and an optional
|
|
3
|
-
* {@link IRoleRestrictionStore}) to the `IRoleResolver` contract so it can be
|
|
4
|
-
* registered on `OPCUAServer.roleResolvers`.
|
|
5
|
-
*
|
|
6
|
-
* A Role is granted when the UserIdentityToken matches **and** — if a
|
|
7
|
-
* restriction store is provided and a resolution context is available — the
|
|
8
|
-
* Session's application/endpoint comply with the Role's restrictions.
|
|
9
|
-
*/
|
|
10
1
|
export class RoleSetResolver {
|
|
11
2
|
store;
|
|
12
3
|
restrictionStore;
|
|
13
|
-
|
|
4
|
+
options;
|
|
5
|
+
constructor(store, restrictionStore, options = {}) {
|
|
14
6
|
this.store = store;
|
|
15
7
|
this.restrictionStore = restrictionStore;
|
|
8
|
+
this.options = options;
|
|
16
9
|
}
|
|
17
10
|
resolveRoles(userIdentityToken, context) {
|
|
18
|
-
|
|
11
|
+
if (this.options.excludeToken?.(userIdentityToken)) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const roles = this.store.resolveRoles(userIdentityToken, context);
|
|
19
15
|
if (!this.restrictionStore || !context) {
|
|
20
16
|
return roles;
|
|
21
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role_set_resolver.js","sourceRoot":"","sources":["../source/role_set_resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"role_set_resolver.js","sourceRoot":"","sources":["../source/role_set_resolver.ts"],"names":[],"mappings":"AAkCA,MAAM,OAAO,eAAe;IAEH,KAAK;IACL,gBAAgB;IAChB,OAAO;IAH5B,YACqB,KAA4B,EAC5B,gBAAwC,EACxC,OAAO,GAA2B,EAAE;qBAFpC,KAAK;gCACL,gBAAgB;uBAChB,OAAO;IACzB,CAAC;IAEG,YAAY,CAAC,iBAAuC,EAAE,OAA2B;QACpF,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-role-set-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.187.
|
|
4
|
+
"version": "2.187.4",
|
|
5
5
|
"description": "pure nodejs OPCUA SDK - server-side role-set management (OPC 10000-18)",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc -b",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"node": ">=22.13.0"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"node-opcua-address-space": "2.187.
|
|
19
|
+
"node-opcua-address-space": "2.187.4",
|
|
20
20
|
"node-opcua-address-space-base": "2.187.0",
|
|
21
21
|
"node-opcua-constants": "2.185.0",
|
|
22
22
|
"node-opcua-data-model": "2.187.0",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"node-opcua-leak-detector": "2.186.7",
|
|
33
|
-
"node-opcua-nodesets": "2.187.
|
|
33
|
+
"node-opcua-nodesets": "2.187.4",
|
|
34
34
|
"node-opcua-test-helpers": "2.184.0"
|
|
35
35
|
},
|
|
36
36
|
"author": "Etienne Rossignon",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"internet of things"
|
|
49
49
|
],
|
|
50
50
|
"homepage": "http://node-opcua.github.io/",
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "9d58ebf75edfa05c412b279c1955a540b285901b",
|
|
52
52
|
"files": [
|
|
53
53
|
"dist",
|
|
54
54
|
"source"
|
|
@@ -39,9 +39,17 @@ function isPrivilegedRole(roleId: NodeId): boolean {
|
|
|
39
39
|
return sameNodeId(roleId, WellKnownRoleIds.SecurityAdmin) || sameNodeId(roleId, WellKnownRoleIds.ConfigureAdmin);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* True for weak criteria that must not be granted to administrative Roles.
|
|
44
|
+
* TrustedApplication is one: it names no application, so it would give the
|
|
45
|
+
* Role to every Client whose certificate the Server trusts.
|
|
46
|
+
*/
|
|
43
47
|
function isWeakCriteria(criteriaType: IdentityCriteriaType): boolean {
|
|
44
|
-
return
|
|
48
|
+
return (
|
|
49
|
+
criteriaType === IdentityCriteriaType.Anonymous ||
|
|
50
|
+
criteriaType === IdentityCriteriaType.AuthenticatedUser ||
|
|
51
|
+
criteriaType === IdentityCriteriaType.TrustedApplication
|
|
52
|
+
);
|
|
45
53
|
}
|
|
46
54
|
|
|
47
55
|
/**
|
|
@@ -119,8 +127,11 @@ export function makeAddIdentityHandler(options: BindRoleMethodsOptions) {
|
|
|
119
127
|
// well-known immutable Roles cannot be changed (§4.3)
|
|
120
128
|
statusCode = StatusCodes.BadRequestNotAllowed;
|
|
121
129
|
} else if (isWeakCriteria(rule.criteriaType) && isPrivilegedRole(roleNode.nodeId)) {
|
|
122
|
-
// refuse weak (Anonymous/AuthenticatedUser) rules on administrative Roles (§4.4.5)
|
|
130
|
+
// refuse weak (Anonymous/AuthenticatedUser/TrustedApplication) rules on administrative Roles (§4.4.5)
|
|
123
131
|
statusCode = StatusCodes.BadRequestNotAllowed;
|
|
132
|
+
} else if (rule.criteriaType === IdentityCriteriaType.Application && !(rule.criteria ?? "").trim()) {
|
|
133
|
+
// an Application rule names an ApplicationUri (§4.4.3): an empty one would match nothing
|
|
134
|
+
statusCode = StatusCodes.BadInvalidArgument;
|
|
124
135
|
} else {
|
|
125
136
|
// duplicate rule is reported as Bad_AlreadyExists
|
|
126
137
|
statusCode = store.addIdentity(roleNode.nodeId, rule) ? StatusCodes.Good : StatusCodes.BadAlreadyExists;
|
package/source/index.ts
CHANGED
|
@@ -43,6 +43,6 @@ export {
|
|
|
43
43
|
type IServerForUserManagement,
|
|
44
44
|
installUserManagement
|
|
45
45
|
} from "./install_user_management.js";
|
|
46
|
-
export { RoleSetResolver } from "./role_set_resolver.js";
|
|
46
|
+
export { RoleSetResolver, type RoleSetResolverOptions } from "./role_set_resolver.js";
|
|
47
47
|
export { checkEncryptedChannel, checkSecurityAdminAccess } from "./security_checks.js";
|
|
48
48
|
export { createUserManager, type IManagedUserManager } from "./user_management_user_manager.js";
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
type SerializedUserRecord,
|
|
36
36
|
validateUserConfiguration
|
|
37
37
|
} from "node-opcua-role-set-common";
|
|
38
|
-
import { IdentityCriteriaType, IdentityMappingRuleType, UserConfigurationMask } from "node-opcua-types";
|
|
38
|
+
import { IdentityCriteriaType, IdentityMappingRuleType, UserConfigurationMask, UserNameIdentityToken } from "node-opcua-types";
|
|
39
39
|
import { type InstallRoleSetResult, type IServerForRoleSet, installRoleSet } from "./install_role_set.js";
|
|
40
40
|
import {
|
|
41
41
|
type InstallUserManagementResult,
|
|
@@ -224,7 +224,24 @@ export async function createRoleBasedSecurity(options?: CreateRoleBasedSecurityO
|
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
// A user who must change the password gets only Anonymous from the
|
|
228
|
+
// userManager; the resolver reads the same store and must not give
|
|
229
|
+
// the mapped Roles back. Read live: they return once it is changed.
|
|
230
|
+
const mustChangePassword = (token: unknown): boolean =>
|
|
231
|
+
token instanceof UserNameIdentityToken &&
|
|
232
|
+
userStore
|
|
233
|
+
.getUsers()
|
|
234
|
+
.some(
|
|
235
|
+
(u) =>
|
|
236
|
+
u.userName === token.userName &&
|
|
237
|
+
(u.userConfiguration & UserConfigurationMask.MustChangePassword) ===
|
|
238
|
+
UserConfigurationMask.MustChangePassword
|
|
239
|
+
);
|
|
240
|
+
const roleSet = await installRoleSet(server, {
|
|
241
|
+
store: identityStore,
|
|
242
|
+
persistence,
|
|
243
|
+
excludeToken: mustChangePassword
|
|
244
|
+
});
|
|
228
245
|
if (installOptions?.userManagement === false) {
|
|
229
246
|
// Deliberately no UserManagement Object. Credentials still work:
|
|
230
247
|
// the userManager bridge authenticates from userStore either way.
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
type RoleMappingRuleChangedAudit
|
|
52
52
|
} from "./bind_role_methods.js";
|
|
53
53
|
import { hardenAdminOnly } from "./harden.js";
|
|
54
|
-
import { RoleSetResolver } from "./role_set_resolver.js";
|
|
54
|
+
import { RoleSetResolver, type RoleSetResolverOptions } from "./role_set_resolver.js";
|
|
55
55
|
import { checkEncryptedChannel, checkSecurityAdminAccess } from "./security_checks.js";
|
|
56
56
|
import { asString } from "./variant_args.js";
|
|
57
57
|
|
|
@@ -111,6 +111,8 @@ export interface InstallRoleSetOptions {
|
|
|
111
111
|
* keeping a single source of truth. Persisted mappings (if any) are merged in.
|
|
112
112
|
*/
|
|
113
113
|
store?: IIdentityMappingStore;
|
|
114
|
+
/** See {@link RoleSetResolverOptions.excludeToken}. */
|
|
115
|
+
excludeToken?: RoleSetResolverOptions["excludeToken"];
|
|
114
116
|
}
|
|
115
117
|
|
|
116
118
|
export interface InstallRoleSetResult {
|
|
@@ -165,7 +167,7 @@ export async function installRoleSet(server: IServerForRoleSet, options?: Instal
|
|
|
165
167
|
deserializeRestrictions(restrictionStore, archive.restrictions);
|
|
166
168
|
}
|
|
167
169
|
|
|
168
|
-
const resolver = new RoleSetResolver(store, restrictionStore);
|
|
170
|
+
const resolver = new RoleSetResolver(store, restrictionStore, { excludeToken: options?.excludeToken });
|
|
169
171
|
server.roleResolvers ??= [];
|
|
170
172
|
server.roleResolvers.push(resolver);
|
|
171
173
|
|
|
@@ -21,14 +21,29 @@ import type {
|
|
|
21
21
|
* restriction store is provided and a resolution context is available — the
|
|
22
22
|
* Session's application/endpoint comply with the Role's restrictions.
|
|
23
23
|
*/
|
|
24
|
+
export interface RoleSetResolverOptions {
|
|
25
|
+
/**
|
|
26
|
+
* A token this resolver must grant nothing to, whatever the store maps it
|
|
27
|
+
* to. `createRoleBasedSecurity` uses it for a user who must change the
|
|
28
|
+
* password: the server `userManager` then grants only Anonymous, and
|
|
29
|
+
* without this the resolver, reading the same store, would hand the
|
|
30
|
+
* user's mapped Roles back to the Session.
|
|
31
|
+
*/
|
|
32
|
+
excludeToken?: (userIdentityToken: AnyUserIdentityToken) => boolean;
|
|
33
|
+
}
|
|
34
|
+
|
|
24
35
|
export class RoleSetResolver {
|
|
25
36
|
constructor(
|
|
26
37
|
private readonly store: IIdentityMappingStore,
|
|
27
|
-
private readonly restrictionStore?: IRoleRestrictionStore
|
|
38
|
+
private readonly restrictionStore?: IRoleRestrictionStore,
|
|
39
|
+
private readonly options: RoleSetResolverOptions = {}
|
|
28
40
|
) {}
|
|
29
41
|
|
|
30
42
|
public resolveRoles(userIdentityToken: AnyUserIdentityToken, context?: ResolutionContext): NodeId[] {
|
|
31
|
-
|
|
43
|
+
if (this.options.excludeToken?.(userIdentityToken)) {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
const roles = this.store.resolveRoles(userIdentityToken, context);
|
|
32
47
|
if (!this.restrictionStore || !context) {
|
|
33
48
|
return roles;
|
|
34
49
|
}
|