keycloak-api-manager 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Handlers/attackDetectionHandler.js +64 -0
- package/Handlers/clientPoliciesHandler.js +120 -0
- package/Handlers/groupsHandler.js +32 -0
- package/Handlers/organizationsHandler.js +243 -0
- package/Handlers/serverInfoHandler.js +36 -0
- package/Handlers/userProfileHandler.js +121 -0
- package/README.md +83 -7157
- package/docs/architecture.md +47 -0
- package/docs/deployment.md +32 -0
- package/docs/keycloak-setup.md +47 -0
- package/docs/test-configuration.md +43 -0
- package/docs/testing.md +60 -0
- package/index.js +156 -240
- package/package.json +28 -15
- package/test/.mocharc.json +2 -2
- package/test/config/secrets.json +12 -0
- package/test/docker-keycloak/certs/keycloak.crt +58 -0
- package/test/docker-keycloak/certs/keycloak.key +28 -0
- package/test/docker-keycloak/docker-compose-https.yml +2 -0
- package/test/docker-keycloak/docker-compose.yml +4 -4
- package/test/helpers/matrix.js +16 -0
- package/test/matrix/auth.json +27 -0
- package/test/matrix/clients.json +45 -0
- package/test/matrix/realms-components-idp.json +37 -0
- package/test/matrix/users-roles-groups.json +26 -0
- package/test/package-lock.json +3032 -0
- package/test/specs/attackDetection.test.js +102 -0
- package/test/specs/clientCredentials.test.js +79 -0
- package/test/specs/clientPolicies.test.js +162 -0
- package/test/specs/{debugClientLibrary.test.js → diagnostics/debugClientLibrary.test.js} +2 -2
- package/test/specs/groupPermissions.test.js +87 -0
- package/test/specs/matrix/matrix-auth.test.js +112 -0
- package/test/specs/matrix/matrix-clients.test.js +59 -0
- package/test/specs/matrix/matrix-realms-components-idp.test.js +111 -0
- package/test/specs/matrix/matrix-users-roles-groups.test.js +68 -0
- package/test/specs/organizations.test.js +183 -0
- package/test/specs/serverInfo.test.js +140 -0
- package/test/specs/userProfile.test.js +135 -0
- package/test/{enableServerFeatures.js → support/enableServerFeatures.js} +43 -26
- package/test/{setup.js → support/setup.js} +3 -3
- package/test/support/testConfig.js +69 -0
- package/test/testConfig.js +1 -69
- package/test-output.log +72 -0
- package/test/TESTING.md +0 -327
- package/test/config/CONFIGURATION.md +0 -170
- package/test/diagnostic-protocol-mappers.js +0 -189
- package/test/docker-keycloak/DEPLOYMENT_GUIDE.md +0 -262
- package/test/helpers/setup.js +0 -186
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "keycloak-api-manager",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
|
+
"description": "Enhanced Node.js wrapper for Keycloak Admin REST API. Professional alternative to @keycloak/keycloak-admin-client with advanced features, bug fixes, automatic token refresh, Organizations API support, fine-grained permissions, and comprehensive resource management. Battle-tested with 113+ integration tests.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "npm --prefix test install && npm --prefix test test",
|
|
@@ -26,21 +26,34 @@
|
|
|
26
26
|
},
|
|
27
27
|
"keywords": [
|
|
28
28
|
"keycloak",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
29
|
+
"keycloak-admin-client",
|
|
30
|
+
"keycloak-admin",
|
|
31
|
+
"admin-rest-api",
|
|
32
|
+
"keycloak-wrapper",
|
|
33
|
+
"alternative",
|
|
34
|
+
"rest-api",
|
|
35
|
+
"admin-client",
|
|
36
|
+
"user-management",
|
|
37
|
+
"realm-management",
|
|
35
38
|
"authentication",
|
|
36
|
-
"
|
|
37
|
-
"
|
|
39
|
+
"authorization",
|
|
40
|
+
"fine-grained-permissions",
|
|
41
|
+
"organizations",
|
|
38
42
|
"sso",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
43
|
+
"oauth2",
|
|
44
|
+
"oidc",
|
|
45
|
+
"identity-provider",
|
|
46
|
+
"ldap",
|
|
47
|
+
"federation",
|
|
48
|
+
"roles",
|
|
49
|
+
"groups",
|
|
50
|
+
"clients",
|
|
51
|
+
"scopes",
|
|
52
|
+
"session-management",
|
|
53
|
+
"token-refresh",
|
|
54
|
+
"admin-api",
|
|
55
|
+
"express",
|
|
56
|
+
"nodejs"
|
|
44
57
|
],
|
|
45
58
|
"author": "aromanino (Crs4)",
|
|
46
59
|
"license": "MIT",
|
package/test/.mocharc.json
CHANGED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
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
|
|
29
|
+
-----END CERTIFICATE-----
|
|
30
|
+
-----BEGIN CERTIFICATE-----
|
|
31
|
+
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
|
|
58
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDWfjCdJd2oOphk
|
|
3
|
+
ue5qdyQgcslZGQrnm6a+qxN7m7Jk5maHJwaf/fCF9p+E+XZ2hiFcDVAS8Vb8kfRN
|
|
4
|
+
ee4fpmLT/JwPB8yxTu4cfKfiBR2m+uLbDYAwz/HUCS7M3bLy2nWIKo0/3aggv/lc
|
|
5
|
+
5IAtTLlIbVVA1mD6AI6PB9tRKTxHMSsxomWWx+y9CCBtg1MrbEsPmxLvMjASUPQP
|
|
6
|
+
SGPlARjLEcOLidhKgjt4toOhpcChK00T32Bpz4LGWpG20CeZcIbs3f8XLueQ1Xoq
|
|
7
|
+
iBYvAyt/h48vei1RK0BslxfHGuM5sW1/DTLr2rpAJpe2oxzrHMpajzV9qppF/VvF
|
|
8
|
+
NKUtjIN7AgMBAAECggEBALIxl9WWVbWjKGPWC/orDLpgYmJA6cxMhZS1r7PrP6OP
|
|
9
|
+
vfHePCTC5QWGRDRGw2HoQOKmtLVoBqpB30JWX7uvkT8oB8Z85lMPjcXg0eB1+5Jz
|
|
10
|
+
r+/oIW1r9C4Biv3r2PTlBOug3kQGs9yxYEsKEmqP6QYAvujksSBBQi4ViuC8bzV8
|
|
11
|
+
XxbV0nUb6Rba5wz3PzxbrOCsPNSbWpyb7VWz8ApIzb7X/OGFF12tClNUoXN8hMzI
|
|
12
|
+
xoFBG3mDQjb9aDgJCP8RgrS/wfo0Ay+KAhTNUqgqUzj8awtICAaVCZt1ptrQkEsL
|
|
13
|
+
tgmNiEA8zP6Rh+6hIv7o3XuV1GZMBRhAWrg+1PcXp4ECgYEA/fjub3xC3XW5yWqN
|
|
14
|
+
JhB/SsDLGfMyFzRbNk+HPgJww46R6GobB7m3pmXov+xRmjK0PBQA9rdvZFqAsXIy
|
|
15
|
+
67KAWgVpNEBVQnGI8w/sub5aeBJqkGUQzTnRnlA/DWaAf8q64r8Kgzvd8TlWwipB
|
|
16
|
+
uXvLebxoWJL1gHLgDPL4tZKH/aECgYEA2DSSBrwMHcaO9p0bhvXhQAH1jXULntfk
|
|
17
|
+
VcNvTszKPdKOrXyfLKJ8xnEU92tZW8Xw/XyHDrPbmgFJ8evuKvJQfYWUQ3PnPux5
|
|
18
|
+
oVY2BzTRYnjXbPxoGYWpSFu/dlJP4HV/qc4Nar1iB8MtWk0drscoyFq6zcat8CLj
|
|
19
|
+
vhpmrhSDE5sCgYEAjJ0PfmBBMRYmJ/M7dPC7WWsGyDZS7HALdDVx/o4hWtSLyi89
|
|
20
|
+
Cfj0SkewJtqzj3k1OvIkWnTTUq+dAyHkOYUZ9T17svdPfTsZBOIzQd+3fTVNFOcv
|
|
21
|
+
90Bk448wab3vtVFMSZBWRLSXvB/v/g6hVw3IaX08FJZBIL35eJHpy7X2XyECgYAU
|
|
22
|
+
XH8UG0mY1EZKe2lIQIfCG20gsVEy2GosmYc2CJtTTy0YsY/cCEFv/t5Wnsl/lxin
|
|
23
|
+
Br9BZzbbPhvUqL95U/C4oYfhAl1Y07RwuUnFS/gcKf0/ylWTcb8LjXhukDntjaNE
|
|
24
|
+
Pp+M2eENkhgHVRPijecNV14YWwmuf9qq4Jmi81OU2QKBgF22ZG6SH7y34m/v6knX
|
|
25
|
+
h4gCSSF9jKblNJ1Z737XOCYjpKFB2m5B20T/JDlwLca17NcZOR8J3KJZH2X7c2Ne
|
|
26
|
+
utTdZpmcl6HB+zdHijnhgA51g5dBs2tO/G8z0moBxAWK2bwYldX7A6jaiUyM/kix
|
|
27
|
+
e4PsNLp4TNicrABWSTgxOeBD
|
|
28
|
+
-----END PRIVATE KEY-----
|
|
@@ -29,6 +29,8 @@ services:
|
|
|
29
29
|
# HTTPS configuration
|
|
30
30
|
KC_HTTP_ENABLED: 'true' # Admin console accessible via HTTP too
|
|
31
31
|
KC_PROXY: reencrypt # Trust reverse proxy headers
|
|
32
|
+
# Feature flags for testing (match docker-compose.yml)
|
|
33
|
+
KC_FEATURES: 'admin-fine-grained-authz:v1,organization,client-policies'
|
|
32
34
|
volumes:
|
|
33
35
|
# Mount certificates for HTTPS
|
|
34
36
|
- "${KEYCLOAK_CERT_PATH}/keycloak.crt:/etc/keycloak/certs/keycloak.crt:ro"
|
|
@@ -35,15 +35,15 @@ services:
|
|
|
35
35
|
# HTTPS configuration (only applied if KC_SCHEME=https)
|
|
36
36
|
KC_HTTP_ENABLED: 'true' # Admin console accessible via HTTP too
|
|
37
37
|
KC_PROXY: reencrypt # Trust reverse proxy headers
|
|
38
|
+
# Feature flags for advanced functionality
|
|
39
|
+
KC_FEATURES: 'admin-fine-grained-authz:v1,organization,client-policies'
|
|
38
40
|
volumes:
|
|
39
41
|
# Mount certificates if HTTPS is enabled and path is provided
|
|
40
42
|
- "${KEYCLOAK_CERT_PATH:-./certs}:/etc/keycloak/certs:ro"
|
|
41
43
|
command:
|
|
42
44
|
- start-dev
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
# - --https-certificate-file=/etc/keycloak/certs/keycloak.crt
|
|
46
|
-
# - --https-certificate-key-file=/etc/keycloak/certs/keycloak.key
|
|
45
|
+
- --https-certificate-file=/etc/keycloak/certs/keycloak.crt
|
|
46
|
+
- --https-certificate-key-file=/etc/keycloak/certs/keycloak.key
|
|
47
47
|
healthcheck:
|
|
48
48
|
test: ["CMD", "curl", "-f", "http://localhost:8080/health/ready"]
|
|
49
49
|
interval: 5s
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
|
|
4
|
+
function loadMatrix(name) {
|
|
5
|
+
const filePath = path.join(__dirname, '..', 'matrix', `${name}.json`);
|
|
6
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function uniqueName(prefix) {
|
|
10
|
+
return `${prefix}-${Date.now()}-${Math.floor(Math.random() * 1000)}`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
module.exports = {
|
|
14
|
+
loadMatrix,
|
|
15
|
+
uniqueName,
|
|
16
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "auth",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"name": "password-basic",
|
|
6
|
+
"grantType": "password"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "password-with-scope",
|
|
10
|
+
"grantType": "password",
|
|
11
|
+
"scope": "openid profile email"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "password-offline-token",
|
|
15
|
+
"grantType": "password",
|
|
16
|
+
"offlineToken": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "client-credentials",
|
|
20
|
+
"grantType": "client_credentials"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "refresh-token",
|
|
24
|
+
"grantType": "refresh_token"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "clients",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"name": "confidential-service-account",
|
|
6
|
+
"publicClient": false,
|
|
7
|
+
"serviceAccountsEnabled": true,
|
|
8
|
+
"directAccessGrantsEnabled": true,
|
|
9
|
+
"standardFlowEnabled": true,
|
|
10
|
+
"consentRequired": false
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "public-browser",
|
|
14
|
+
"publicClient": true,
|
|
15
|
+
"serviceAccountsEnabled": false,
|
|
16
|
+
"directAccessGrantsEnabled": true,
|
|
17
|
+
"standardFlowEnabled": true,
|
|
18
|
+
"consentRequired": false
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "confidential-no-service",
|
|
22
|
+
"publicClient": false,
|
|
23
|
+
"serviceAccountsEnabled": false,
|
|
24
|
+
"directAccessGrantsEnabled": false,
|
|
25
|
+
"standardFlowEnabled": true,
|
|
26
|
+
"consentRequired": false
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "confidential-client-credentials",
|
|
30
|
+
"publicClient": false,
|
|
31
|
+
"serviceAccountsEnabled": true,
|
|
32
|
+
"directAccessGrantsEnabled": false,
|
|
33
|
+
"standardFlowEnabled": false,
|
|
34
|
+
"consentRequired": false
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "confidential-consent-required",
|
|
38
|
+
"publicClient": false,
|
|
39
|
+
"serviceAccountsEnabled": false,
|
|
40
|
+
"directAccessGrantsEnabled": true,
|
|
41
|
+
"standardFlowEnabled": true,
|
|
42
|
+
"consentRequired": true
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "realms-components-idp",
|
|
3
|
+
"realms": [
|
|
4
|
+
{
|
|
5
|
+
"name": "realm-basic",
|
|
6
|
+
"realmConfig": {
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"registrationAllowed": false,
|
|
9
|
+
"rememberMe": true,
|
|
10
|
+
"loginWithEmailAllowed": true
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "realm-registration",
|
|
15
|
+
"realmConfig": {
|
|
16
|
+
"enabled": true,
|
|
17
|
+
"registrationAllowed": true,
|
|
18
|
+
"rememberMe": false,
|
|
19
|
+
"loginWithEmailAllowed": true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"identityProviders": [
|
|
24
|
+
{
|
|
25
|
+
"name": "oidc-basic",
|
|
26
|
+
"providerId": "oidc",
|
|
27
|
+
"config": {
|
|
28
|
+
"authorizationUrl": "https://example.com/auth",
|
|
29
|
+
"tokenUrl": "https://example.com/token",
|
|
30
|
+
"userInfoUrl": "https://example.com/userinfo",
|
|
31
|
+
"clientId": "dummy-client-id",
|
|
32
|
+
"clientSecret": "dummy-client-secret",
|
|
33
|
+
"defaultScope": "openid profile email"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "users-roles-groups",
|
|
3
|
+
"cases": [
|
|
4
|
+
{
|
|
5
|
+
"name": "user-enabled-verified",
|
|
6
|
+
"user": {
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"emailVerified": true
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "user-enabled-unverified",
|
|
13
|
+
"user": {
|
|
14
|
+
"enabled": true,
|
|
15
|
+
"emailVerified": false
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "user-disabled",
|
|
20
|
+
"user": {
|
|
21
|
+
"enabled": false,
|
|
22
|
+
"emailVerified": false
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|